We’re excited to announce the release of PyGMT v0.15.0! This minor release includes nice enhancements, and documentation improvements.
Here are the highlights :
- One new gallery example and two new tutorials to help users get started and explore new features
Figure.shift_origin
now supports shifting origins temporarily when used as a context manager- PyGMT documentation is now available as HTML ZIP archive and in PDF format for offline reference
Focal mechanisms as beachballs (Figure.meca ) |
Creating complex legends (Figure.legend ) |
Plotting horizontal & vertical lines (Figure.hlines , Figure.vlines ) |
---|---|---|
![]() |
![]() |
![]() |
Nice enhancements :
- Support typesetting apostrophe (') and backtick (`). What you type is what you see! (#3105)
- GMTDataArrayAccessor: Support passing more readable values using enums GridRegistration and GridType for grid registration and type (#3696)
pygmt.grdfill
: Pythonicparameters
constantfill
/gridfill
/neighborfill
/splinefill
for different hole-filling algorithms
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.4 - 6.5, but it requires Python 3.11+
, NumPy 1.25+, pandas 2.0+, and Xarray 2023.04+ following our support policy for GMT and other package dependencies. 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 at PR #3132 that removed a ton of workarounds in PyGMT’s codebase related to spaces and funny characters!
Roadmap to future releases
While the team continues to enhance functionality and fix bugs, there are still plenty of features and improvements we’d like to add! Check out the good first issue label on GitHub or the list below for things you can help with!
-
PyGMT Logo
Thanks to the contributions of @sfrooti, we’re very close to having an official logo for PyGMT. If you’d like to provide feedback during the early stages of the design process, please leave your comments on issue #1404 or PR #3849. Stay tuned! -
Features/enhancements
- Wrap GMT moduls: clip, coupe, earthtide, fitcircle, movie, polar, and sac
- Implement high-level methods of
Figure.plot
andFigure.plot3d
(#2797):Figure.scatter
,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 ! Also have a look at our Contributors Guide to figure out how you can help and get started
.
Upcoming deprecations
-
v0.16.0 (Planned for June 2025)
- Drop support of pandas<=2.0.0 and Xarray<=2023.5
pygmt.clib
: Thevirtualfile_from_vectors
method takes a sequence of vectors as its single argument, rather than passing multiple vectors as positional arguments (FutureWarning raised since PyGMT v0.14.0)
-
v0.19.0 (Planned for March 2026)
pygmt.grdfill
: Deprecate parameterno_data
tohole
(deprecated since v0.15.0)pygmt.grdfill
: Deprecate parametermode
, use parametersconstantfill
/gridfill
/neighborfill
/splinefill
instead (deprecated since v0.15.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 for GMT, Python, and the required core package dependencies NumPy, pandas, and Xarray is listed at Minimum Supported Versions — PyGMT, so make sure you keep things up to date!
Conference presentations/workshops/sprints
- The GMT and PyGMT teams have organized an AGU pre-conference workshop for GMT and PyGMT
in Washington, D.C.
on 2024-12-08: PREWS9 Mastering Geospatial Visualizations with GMT/PyGMT. If you could not make it to the AGU Annual meeting this year in-person, or you missed the workshop for other reasons, you can still go through the workshop on your own, as the materials are freely available from Mastering Geospatial Visualizations with GMT/PyGMT — Mastering Geospatial Visualizations with GMT/PyGMT.
- Besides this workshop there was an union-wide memorial session for Paul Wessel: U019 - The impact of GMT in the Earth, Ocean and Space sciences: What’s next?. Check out the slides for the PyGMT talk PyGMT – Accessing and Integrating GMT with Python and the Scientific Python Ecosystem, which are free available from PyGMT – Accessing and Integrating GMT with Python and the Scientific Python Ecosystem (AGU24, U12B-05).
P.S. Share the word on Instagram @genericmappingtools and ResearchGate!