# PyGMT v0.17.0 released

**URL:** <https://forum.generic-mapping-tools.org/t/pygmt-v0-17-0-released/6221>\
**Category:** Announcements\
**Created:** [October 7, 2025, 8:44am UTC](https://forum.generic-mapping-tools.org/t/pygmt-v0-17-0-released/6221 "2025-10-07T08:44:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![yvonnefroehlich](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/yvonnefroehlich/32/5064_2.png) [@yvonnefroehlich](https://forum.generic-mapping-tools.org/u/yvonnefroehlich)\
**Post date:** [October 7, 2025, 8:44am UTC](https://forum.generic-mapping-tools.org/t/pygmt-v0-17-0-released/6221/1 "2025-10-07T08:44:40Z")

</div>

**Announcing PyGMT release v0.17.0 🎉! This minor release features a newly designed alias system towards a more Pythonic interface.**

**Here are the highlights** 🎉:

- Add support for GMT 6.6.0, while dropping support for GMT 6.4.0 ([#4017](https://github.com/GenericMappingTools/pygmt/issues/4017))
- Implement the new alias system towards a Pythonic interface ([#3986](https://github.com/GenericMappingTools/pygmt/pull/3986), [#4000](https://github.com/GenericMappingTools/pygmt/pull/4000), [#3993](https://github.com/GenericMappingTools/pygmt/pull/3993))
- GMTDataArrayAccessor: Support applying grid operations on the current xarray.DataArray object ([#3854](https://github.com/GenericMappingTools/pygmt/pull/3854))

**Nice enhancements ✨** :

- Add the `Box` class for specifying the box of GMT embellishments ([#3995](https://github.com/GenericMappingTools/pygmt/pull/3995))
- Add the `Pattern` class for specifying bit and hachure patterns to fill symbols and polygons ([#4020](https://github.com/GenericMappingTools/pygmt/pull/4020))
- `Figure.solar`: Support terminator datetime with timezone ([#4112](https://github.com/GenericMappingTools/pygmt/pull/4112))
- `pygmt.binstats`: Let the parameter `statistic` support descriptive arguments ([#3012](https://github.com/GenericMappingTools/pygmt/pull/3012))
- `Figure.logo`: Let the `style` parameter support descriptive arguments ([#4074](https://github.com/GenericMappingTools/pygmt/pull/4074))
- Let the `verbos` parameter support descriptive arguments ([#4039](https://github.com/GenericMappingTools/pygmt/pull/4039))

Read through the [changelog](https://www.pygmt.org/v0.17.0/changes.html) for the full list of changes. Installation/upgrade ⬆ instructions are at [Installing — PyGMT](https://www.pygmt.org/v0.17.0/install.html)! Note that this version is cross-compatible with GMT 6.5.0 - 6.6.0, but it requires Python 3.11+ 🐍, NumPy 1.26+, pandas 2.2+, and Xarray 2023.10+ following our [support policy for GMT and other package dependencies](https://www.pygmt.org/v0.17.0/minversions.html). Go try it online at [try-gmt](https://github.com/GenericMappingTools/try-gmt) 🚀.

As usual, please feel free to report any bugs 🪲 with the [issue template on GitHub](https://github.com/GenericMappingTools/pygmt/issues/new?assignees=&labels=bug&template=bug_report.yaml). Your feedback is what helps us to improve 🙏! For example, this issue [#3041](https://github.com/GenericMappingTools/pygmt/issues/3041) and various forum posts like [this](http://forum.generic-mapping-tools.org/t/multiple-colorbars-changes-the-annotation-fontsize/4945) helped us to realize that GMT’s font size autoscaling for colorbars (introducted in GMT 6.5.0) was potentially confusing, and led us to [document a workaround](https://www.pygmt.org/v0.17.0/api/generated/pygmt.Figure.colorbar.html) in PR [#4126](https://github.com/GenericMappingTools/pygmt/pull/4126)!

### 💡 Addition to Gallery examples and Technical references

| Text formatting   
 [Gallery&nbsp;example](https://www.pygmt.org/v0.17.0/gallery/embellishments/text_formatting.html)   
 [Technical&nbsp;reference](https://www.pygmt.org/v0.17.0/techref/text_formatting.html) | Justification codes   
 [Technical&nbsp;reference](https://www.pygmt.org/v0.17.0/techref/justification_codes.html) | EPSG codes   
 [Gallery&nbsp;example](https://www.pygmt.org/v0.17.0/gallery/maps/epsg_codes.html) |
| --- | --- | --- |
| [![](https://canada1.discourse-cdn.com/flex047/uploads/gmt/original/2X/0/08a7279595d3107b405bc2ef799d839401be51c2.png)](https://www.pygmt.org/v0.17.0/gallery/embellishments/text_formatting.html) | [![](https://canada1.discourse-cdn.com/flex047/uploads/gmt/original/2X/d/d18ca29dfb4b57f1dac1e262f14f7917b23db261.png)](https://www.pygmt.org/v0.17.0/techref/justification_codes.html) | [![](https://canada1.discourse-cdn.com/flex047/uploads/gmt/original/2X/d/d5ecfdda8c2c35c693588636727ce8f98220b9fb.png)](https://www.pygmt.org/v0.17.0/gallery/maps/epsg_codes.html) |

### 🛤 Roadmap to future releases

While the team started to work on a new alias system and continues to enhance functionality, there are still plenty of features and improvements we’d like to add! Check out the [good first issue label](https://github.com/GenericMappingTools/pygmt/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) on GitHub or the list below for things you can help with!

- **PyGMT Logo**  
Thanks to the contributions of [@sfrooti](https://github.com/sfrooti), we’re super close to having an official PyGMT logo. If you’d like to provide any feedback during this stage of the design process, please leave your comments in [issue #1404](https://github.com/GenericMappingTools/pygmt/issues/1404) or [PR #3849](https://github.com/GenericMappingTools/pygmt/pull/3849). Stay tuned!

- Features/enhancements ✨

- Documentation improvements 📖

[Hacktoberfest](https://hacktoberfest.com/) just started 💻! So, please don’t be shy to [reach out on GitHub](https://github.com/GenericMappingTools/pygmt) if you’re interested in contributing 😄! You can have a look at our [Contributors Guide](https://www.pygmt.org/v0.17.0/contributing.html) to figure out how you can help and get started 🚀.

### ⚠ Upcoming deprecations

- **v0.18.0 (Planned for December 2025)**
  - Drop support for Python\<=3.11, numpy\<=1.26, and Xarray\<=2024.6
  - `pygmt.Figure`: Remove the private `_preprocess()` method (FutureWarning raised since PyGMT v0.16.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)
  - `pygmt.grdclip`: Deprecate parameter `new` to `replace` (deprecated since v0.15.0)
  - `utils.sequence_join`: Deprecate parameter `separator` to `sep` (deprecated since v0.17.0)

- **v0.20.0 (Planned for June 2026)**
  - Remove deprecated `pygmt.io.load_dataarray` (deprecated since v0.16.0)
  - `Session.virtualfile_in`: Remove deprecated parameters `required_z`/`extra_arrays`/`required_data` (deprecated since v0.16.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](https://github.com/GenericMappingTools/pygmt/pull/1316))

The compatibility matrix for GMT, Python, and the required core package dependencies NumPy, pandas, and Xarray is listed at [Minimum Supported Versions — PyGMT](https://www.pygmt.org/v0.17.0/minversions.html), so make sure you keep things up to date!

### 🗺 Conference presentations/workshops/sprints

What conferences would you like to see GMT/PyGMT at next? EGU26? IGARSS? FOSS4G? Are you interested in helping to organize a workshop? Let us know in the comments below!

**P.S.** Share the word on Instagram [@genericmappingtools](https://www.instagram.com/genericmappingtools/) 📸 and ResearchGate!

---

<div class="post-metadata">

**Author:** ![andrebelem](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/andrebelem/32/1218_2.png) [@andrebelem](https://forum.generic-mapping-tools.org/u/andrebelem)\
**Post date:** [October 7, 2025, 1:47pm UTC](https://forum.generic-mapping-tools.org/t/pygmt-v0-17-0-released/6221/2 "2025-10-07T13:47:46Z")

</div>

If you want to try **PyGMT** on **Google Colab** , there’s a small **trick** to get it working with the new **PyGMT v0.17.0** using _condacolab_.  
Check it out here 👉 [**PyGMT\_0\_17\_0\_GoogleColab\_Setup.ipynb**](https://github.com/andrebelem/pythonverse/blob/main/PyGMT_0_17_0_GoogleColab_Setup.ipynb)

---

<div class="post-metadata">

**Author:** ![mkononets](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/mkononets/32/4029_2.png) [@mkononets](https://forum.generic-mapping-tools.org/u/mkononets)\
**Post date:** [October 7, 2025, 5:11pm UTC](https://forum.generic-mapping-tools.org/t/pygmt-v0-17-0-released/6221/3 "2025-10-07T17:11:47Z")

</div>

> [@yvonnefroehlich](#):
>
> **v1.0.0**
> 
> - Short form aliases (e.g. `R`) will not work if long form aliases (e.g. `region`) are available

Why banning the short options? You guys seem to still keep changing the long option names.
