PyGMT v0.15.0 released

We’re excited to announce the release of PyGMT v0.15.0! :tada: This minor release includes nice enhancements, and documentation improvements.

Here are the highlights :tada::

  • 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 :sparkles::

  • 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: Pythonic :snake: parameters constantfill/gridfill/neighborfill/splinefill for different hole-filling algorithms

Read through the changelog for the full list of changes. Installation/upgrade :arrow_up: instructions are at Installing — PyGMT! Note that this version is cross-compatible with GMT 6.4 - 6.5, but it requires Python 3.11+ :snake:, 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 :rocket:.

As usual, please feel free to report any bugs :beetle: with the issue template on GitHub. Your feedback is what helps us to improve :pray:! 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!

:railway_track: 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 :sparkles:

    • Wrap GMT moduls: clip, coupe, earthtide, fitcircle, movie, polar, and sac
    • Implement high-level methods of Figure.plot and Figure.plot3d (#2797): Figure.scatter, Figure.choropleth, Figure.errorbar, Figure.stem, Figure.fill_between
    • Implement high-level methods of Figure.basemap or Figure.coast (#2831): Figure.scale_bar, Figure.directionrose, Figure.magneticrose
  • Documentation improvements :book:

    • Add a beginner :beginner: friendly PyGMT tutorial that is a good roadmap for new GMT/PyGMT users (#770)
    • Add a tutorial explaining the generally accepted input types (#1268)

Please don’t be shy to reach out on GitHub if you’re interested in contributing :smile:! Also have a look at our Contributors Guide to figure out how you can help and get started :rocket:.

:warning: Upcoming deprecations

  • v0.16.0 (Planned for June 2025)

    • Drop support of pandas<=2.0.0 and Xarray<=2023.5
    • pygmt.clib: The virtualfile_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 parameter no_data to hole (deprecated since v0.15.0)
    • pygmt.grdfill: Deprecate parameter mode, use parameters constantfill/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)

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!

:world_map: Conference presentations/workshops/sprints

GMT/PyGMT preworkshop PyGMT talk
GMT/PyGMT preworkshop PyGMT talk

P.S. Share the word on Instagram @genericmappingtools :camera_with_flash: and ResearchGate!

1 Like