PyGMT v0.8.0 released

PyGMT v0.8.0 released

Announcing PyGMT v0.8.0, more GMT remote dataset loaders and cross-compatible with GMT 6.3/6.4!

The PyGMT team is closing off the year with version v0.8.0! Here are the highlights :tada: :

  • Added support for tab auto-completion for all GMT default parameters (#2213)
  • Created functions to download GMT remote datasets (#1786)
  • Wrapped the ternary module (#1431)
  • Added an intro tutorial for creating contour maps (#2126)

Read through the changelog for the full list of changes. Installation/upgrade :arrow_up: instructions are at! Note that this version supports GMT 6.4, but is also compatible with GMT 6.3 :exploding_head:. Go try it online at try-gmt.

Ever wanted some grid data to play with fast? Get easy access to several GMT remote datasets :satellite: loaded directly into an xarray.DataArray format, complete with documented inline examples. Big thanks to @willschlitzer for undertaking this massive effort!

EarthByte Global Earth
Seafloor Crustal Age
IGPP Global Earth
Free-Air Anomaly
EarthByte Global Earth Seafloor Crustal Age IGPP Global Earth Free-Air Anomaly
EGM2008 Global Earth Geoid IGPP Global Earth
Vertical Gravity Gradient
EGM2008 Global Earth Geoid IGPP Global Earth Vertical Gravity Gradient
EMAG2 Global Earth
Magnetic Anomaly Model
WDMAM World Digital
Magnetic Anomaly Map
EMAG2 Global Earth Magnetic Anomaly Model
GEBCO Global Earth Relief
(including sub-ice elevation)
IGPP Global Earth Relief
GEBCO Global Earth Relief IGPP Global Earth Relief

For the beachball :soccer: focal mechanism plotters, the pygmt.Figure.meca offset bug :beetle: has been fixed for Python dictionary and pandas.DataFrame inputs, though there are still some issues with numpy.ndarray inputs (see Feel free though to report new bugs using our refreshed bug template on GitHub, your feedback is what helps us to improve!

Indeed, user friendliness :children_crossing: and consistency is a key part of PyGMT. The pygmt.config function now supports auto-completion :fast_forward: for all 136 possible GMT configs (thanks @seisman!) to make your map look just the right way. There has also been dozens of :memo: documentation-related fixes done by @yvonnefroehlich (who also managed this release) from small typos to big improvements :chart_with_upwards_trend: in the gallery examples! Once again, thanks to the entire PyGMT Team for making this release possible :tada:.

:bulb: New gallery examples

Two new gallery examples are showing how to plot vertical and horizontal bars as well as how to set up a ternary diagram by @mgrund. Furthermore, there is a new introduction tutorial regarding contour maps by @willschlitzer.

Vertical and horizontal bars Ternary diagram Contour maps tutorial
Vertical and horizontal bars Ternary diagram Contour maps

:railway_track: Roadmap to v0.9.0

What’s next for 2023? Here’s are a few in the pipeline, but also check out the GitHub issues board for more! Use the good first issue label to filter easy ones you can help out with!

  • Features/enhancements :sparkles:
    • Wrap fitcircle, clip, and earthtide
    • Add a function to load raster basemap tiles using contextily (#2125)
    • Add pygmt.Figure.hlines (#923) and pygmt.Figure.vlines for plotting horizontal and vertical lines (#670)
  • Documentation improvements :book:
    • More inline examples (#1957)
    • Add a beginner :beginner: friendly PyGMT tutorial that is a good roadmap for new GMT/PyGMT users (#770)

We invite you to get involved in these efforts by reaching out on GitHub :rocket:!

:warning: Upcoming deprecations

  • v0.9.0 (Mar 2023)
    • Remove pygmt.dataset.load_hotspots/load_japan_quakes/load_mars_shape/load_ocean_ridge_points/load_sample_bathymetry/load_usgs_quakes, please use pygmt.datasets.load_sample_data() instead (FutureWarning raised since PyGMT v0.6.0)
  • v0.10.0 (Jul 2023)
    • Figure.text: Remove parameter ‘incols’, use ‘use_word’ instead (FutureWarning raised since PyGMT v0.8.0)
  • v0.12.0
    • All plotting methods: Remove aliases xshift (X) and yshift (Y) (FutureWarning raised since PyGMT v0.8.0)
    • pygmt.Figure.plot, pygmt.Figure.plot3d, pygmt.Figure.rose, pygmt.Figure.velo: Remove parameter ‘color’, use ‘fill’ instead (FutureWarning raised since PyGMT v0.8.0)
    • pygmt.Figure.wiggle: Remove parameter ‘color’, use ‘fillnegative’ or ‘fillpositive’ instead (FutureWarning raised since PyGMT v0.8.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 is listed at, so make sure you keep things up to date!

:world_map: Conference presentations/workshops

It’s been an exciting year with the EGU22 PyGMT short course in March and SciPy 2022 talk in July. Oh yes, here’s @maxrjones’s talk in case you missed it, the slides and demo notebook are at

Want to see more events like this? The calendar for 2023 is currently empty, but if anyone is keen to host something for the next EGU General Assembly, FOSS4G, SciPy, AGU Fall Meeting or some other regional conferences, do let us know on the forum and we can add it to the list!

Onwards :rocket:

P.S. Share the word on Twitter @gmt_dev :bird: and Instagram @genericmappingtools :camera_with_flash:


Does GMT Dev have an account on the Open-Source Fediverse such as Mastodon? I am trying to limit my use of Twitter due to the management changes.

Not yet! But I was thinking of opening one for GMT actually. Any recommendations on a suitable instance? I’m thinking of or

Either one of those seem like a good choice. It seems that fosstodon has been around much longer and is larger by a factor of 20 than mapstodon. I am, which is very large (another factor of 10 larger than fosstodon). I think it is better to be on a more targeted instance.

Hello, first of all I wish us all a happy and healthy 2023.

Now an old opinion that I hesitated to post but here it goes. I think the above decision is a bad one. For new-comers it may not make a difference but for those who already know GMT it will mean that they have to relearn all new names. And while the R example is simple remember that GMT has hundreds of options. Main options and sub-options. One thing comfortable in going from GMT CLI into one of the wrappers is that we can (still) tell people: You already know how to use them, just X=“options” instead of -Xoptions
Removing that facility in name of a Zen is a no-win for me.

It’s likely that your opinion on this would be forgotten if it’s only recorded as a respond to the v0.8.0 announcement. I suggest copying your thoughts to the relevant GitHub issue -