GithubHelp home page GithubHelp logo

zmalt / gmt.jl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from genericmappingtools/gmt.jl

0.0 0.0 0.0 59 MB

Generic Mapping Tools Library Wrapper for Julia

License: Other

Shell 0.21% Julia 56.71% Jupyter Notebook 43.08%

gmt.jl's Introduction

GMT.jl

Julia wrapper for the Generic Mapping Tools GMT

Documentation Build Status (Julia 1.8) Discourse Forum Collaboration

The Generic Mapping Tools, GMT, is an open source collection of tools for manipulating geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, etc.) and producing PostScript illustrations ranging from simple xโ€“y plots via contour maps to artificially illuminated surfaces and 3D perspective views. This link will take you to an impressive collection of figures made with GMT

This wrapper works with GMT6.4.0 and above and it is intended not only to access to GMT from within the Julia language but also to provide a more modern interface to the GMT modules. For example, instead of using the GMT classic syntax to do a line plot:

gmt psxy filename -R0/10/0/5 -JX12 -W1p -Ba -P > psfile.ps

one can simply do:

plot("filename", show=true)

or, more verbose but easier to read

coast(region=:global, proj=:Winkel, frame=:g, area=10000,
      land=:burlywood4, water=:wheat1, show=true)

instead of

gmt coast -Rd -JR12 -Bg -Dc -A10000 -Gburlywood4 -Swheat1 -P > GMT_winkel.ps

to show

Install

] add GMT

A word about the installation. On Unix (Mac included) we now use a GMT_jll artifact to provide the GMT binary, but for Windows we keep using a MSVC GMT binary. This means that on Windows the GMT (the C lib) is not updated automatically (but GMT.jl is). Updates there are done manually by running upGMT(). Also, for some reasons it may be desirable to use a system wide GMT installation. To swap to a system wide GMT installation, do (in REPL):

  • ENV["SYSTEMWIDE_GMT"] = 1;
  • import Pkg; Pkg.build("GMT")
  • restart Julia

Note the above will work up until some other reason triggers a Julia recompile, where the JLL artifacts will be used again. To make the ENV["SYSTEMWIDE_GMT"] = 1 solution permanent, declare a "SYSTEMWIDE_GMT" environment variable permanently in your .bashrc (or whatever).

Using

The GMT Julia wrapper was designed to work in a way the close as possible to the command line version and yet to provide all the facilities of the Julia language. In this sense, all GMT options are put in a single text string that is passed, plus the data itself when it applies, to the gmt() command. However, we also acknowledge that not every one is comfortable with the GMT syntax. This syntax is needed to accommodate the immense pool of options that let you control all details of a figure but that also makes it harder to read/master.

To make life easier we provide also a new mechanism that use the GMT module name directly and where the program's options are set via keyword arguments. While the monolotic way of using this package is robust and keeps being updated to latestes GMT developments, this By modules alternative is a Work in Progress (several of the GMT supplements were not ported yet) and some things may not work yet. So all help is most than wellcome.

Credits

A lot of the GDAL interface functions rely on code from GDAL.jl by Martijn Visser and ArchGDAL.jl by Yeesian Ng, released under the MIT license.

License

The GMT.jl is free software: you can redistribute it and/or modify it under the terms of the MIT "Expat" License. A copy of this license is provided in LICENSE.txt

gmt.jl's People

Contributors

joa-quim avatar htyeim avatar tkelman avatar seisman avatar jmkuhn avatar zmalt avatar leouieda avatar pallharaldsson avatar adigitoleo avatar sidpku avatar hydrocoast avatar rafael-guerra-www avatar mortenpi avatar michaelgrund avatar juliatagbot avatar fredrikekre avatar staticfloat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.