Announcing PyGMT v0.12.0, faster than ever with the use of GMT virtual files!
The PyGMT team is pushing forward with version v0.12.0! Here are some of the highlights :
- Almost all module wrappers (with a few exceptions) now use in-memory GMT virtual files instead of intermediate temporary files to improve performance (#2730)
- Almost all module wrappers (with a few exceptions) now have consistent behavior for table-like output (#1318)
- Adopt SPEC 0 policy for minimum supported versions of GMT, Python, and other core dependencies
Read through the changelog for the full list of changes. Installation/upgrade instructions are at Installing — PyGMT! Note that this version is cross-compatible with GMT 6.3 - 6.5, but it requires Python 3.10+, NumPy 1.23+, Pandas 1.5+ and Xarray 2022.06+ following SPEC 0. Go try it online at try-gmt .
As usual, please feel free to report any bugs with the issue template on GitHub. Your feedback is what helps us to improve! For example, this bug report at issue #3104 sparked off a major refactoring by @seisman in PR #3132 that removed a ton of workarounds in PyGMT’s codebase related to spaces and funny characters!
Updates on Intros, Tutorials, and Gallery examples
- Gallery example Custom symbols : Add information on creating and plotting your own Custom symbols by @yvonnefroehlich (PR #3186).
- Tutorial Plotting text : Rewritten to improve the structure and to mention the support of list input for the
angle
,justify
, andfont
parameters by @yvonnefroehlich (PR #2760). - Intro Table inputs : Mention the support of a list of file names, pathlib.Path objects, URLs, or remote files by @seisman (PR #3214).
- External resources Examples from Publications and Posters: Add GitHub repository gmt-pygmt-plotting by @yvonnefroehlich (PR #3213).
In memory of Paul Wessel
We’d like to take a moment here to reflect on the passing of Pål (Paul) Wessel, who has been instrumental in the development and maintenance of the Generic Mapping Tools (GMT) library over the past four decades. More details are at Paul Wessel, 31 August 1959 - 26 March 2024 on how you can visit the memorial website Pål’s family has shared to look over photos, share memories, donate to continue Pål’s legacy at SOEST (University of Hawaiʻi), and find out about the Pål’s Celebration of Life event planned for May 26th.
“I do hope that among the thousands of GMT users there will be a small subset who feel perhaps they should give back by involving themselves at some level in the GMT community and thus ensure GMT will not disappear overnight when I do.”
From: Wessel, P. (2024). The Origins of the Generic Mapping Tools: From Table Tennis to Geoscience. Perspectives of Earth and Space Scientists , 5 (1), e2023CN000231. https://doi.org/10.1029/2023CN000231
Roadmap to v0.13.0
While the team has been busy refactoring the internals of PyGMT in recent releases, there are still lots of documentation and new features we’d like to add! Check out the good first issue label on GitHub or the list below for things you can help with!
-
Features/enhancements
- Wrap clip, coupe, earthtide, fitcircle, movie, polar, and sac
- Implement high-level methods of
Figure.plot
andFigure.plot3d
(#2797):Figure.scatter
,Figure.hlines
(#923) andFigure.vlines
(#670),Figure.choropleth
,Figure.errorbar
,Figure.stem
,Figure.fill_between
- Implement high-level methods of
Figure.basemap
orFigure.coast
(#2831):Figure.scale_bar
,Figure.directionrose
,Figure.magneticrose
-
Documentation improvements
Please don’t be shy to reach out on GitHub if you’re interested in contributing !
Upcoming deprecations
- v0.13.0
Figure.timestamp
: Remove parameterjustification
, usejustify
instead (FutureWarning raised since PyGMT v0.11.0)
- v0.14.0
Figure.grdcontour
: Disallow passinglist[str]
arguments to theannotation
parameter (e.g.[100, "e", "f10p", "gred"]
), pass in a string like100+e+f10p+gred
instead (FutureWarning raised since PyGMT v0.12.0)pygmt.helpers
: Remove thebuild_arg_string
function, usebuild_arg_list
instead (FutureWarning raised since PyGMT v0.12.0)- Remove the
sequence_plus
converter, only used for theannotation
parameter ofFigure.grdcontour
(FutureWarning raised since PyGMT v0.12.0)
- v0.15.0
pygmt.clib
: Remove theopen_virtual_file
method, useopen_virtualfile
instead (FutureWarning raised since PyGMT v0.11.0)pygmt.clib
: Remove thevirtualfile_from_data
method, usevirtualfile_in
instead
- v0.16.0
Figure.grdcontour
: Remove parameterinterval
, uselevels
instead (FutureWarning raised since PyGMT v0.12.0)
- v1.0.0
- Short form aliases (e.g.
R
) will not work if long form aliases (e.g.region
) are available (SyntaxWarning raised since PyGMT v0.4.0, see #1316)
- Short form aliases (e.g.
The compatibility matrix is listed at Minimum Supported Versions — PyGMT, so make sure you keep things up to date!
Conference presentations/workshops/sprints
We’re looking at organizing an AGU pre-conference workshop for GMT/PyGMT this December at Washington D.C. , so mark your calendars! This will be an in-person, full-day workshop, and we will post more details on the forum and at Workshops — The Generic Mapping Tools once the schedule is confirmed around June/July.
P.S. Share the word on Instagram @genericmappingtools and ResearchGate!