# PyGMT v0.16.0 released **Announcing PyGMT release v0.16.0! 🎉 This minor release features a new Xarray GMT backend to read netCDF, GeoTIFF and other raster files!** **Here are the highlights** :tada:: * Implement [gmt Xarray BackendEntrypoint](https://www.pygmt.org/v0.16.0/api/generated/pygmt.GMTBackendEntrypoint.html#pygmt.GMTBackendEntrypoint) to load raster files via GMT * Remove the dependency of netCDF4 **Nice enhancements :sparkles:**: * `pygmt.grdclip`: Parameters `between` and `replace` accept a 2-D sequence ([#3883](https://github.com/GenericMappingTools/pygmt/pull/3883)) * `Figure.coast` / `pygmt.select` / `pygmt.grdlandmask`: Use long names (`"crude"`/`"low"`/`"intermediate"`/`"high"`/`"full"`) as argument for the `resolution` parameter ([#3013](https://github.com/GenericMappingTools/pygmt/pull/3013)) Read through the [changelog](https://www.pygmt.org/v0.16.0/changes.html) for the full list of changes. Installation/upgrade :arrow_up: instructions are at https://www.pygmt.org/v0.16.0/install.html! Note that this version is cross-compatible with GMT 6.4 - 6.5, but it requires Python 3.11+ :snake:, NumPy 1.26+, pandas 2.1+, and Xarray 2023.07+ following our [support policy for GMT and other package dependencies](https://www.pygmt.org/v0.16.0/minversions.html). Go try it online at [try-gmt](https://github.com/GenericMappingTools/try-gmt) :rocket:. As usual, please feel free to report any bugs :beetle: 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 bug report at issue [#3803](https://github.com/GenericMappingTools/pygmt/issues/3803) helped detect an inconsistency when parsing text strings with numeric values, that was then fixed by @seisman at PR [#3804](https://github.com/GenericMappingTools/pygmt/pull/3804)! ### :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](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 :sparkles: - Wrap GMT moduls: [clip](https://github.com/GenericMappingTools/pygmt/pull/1779), [coupe](https://github.com/GenericMappingTools/pygmt/issues/2019), [earthtide](https://github.com/GenericMappingTools/pygmt/pull/1824), [fitcircle](https://github.com/GenericMappingTools/pygmt/pull/1550), [movie](https://github.com/GenericMappingTools/pygmt/issues/1347), [polar](https://github.com/GenericMappingTools/pygmt/issues/2358), and [sac](https://github.com/GenericMappingTools/pygmt/issues/2358) - Implement high-level methods of `Figure.plot` and `Figure.plot3d` ([#2797](https://github.com/GenericMappingTools/pygmt/issues/2797)): `Figure.scatter` ([#3602]( https://github.com/GenericMappingTools/pygmt/issues/3602)), `Figure.choropleth` ([#2798](https://github.com/GenericMappingTools/pygmt/pull/2798)), `Figure.errorbar`, `Figure.stem`, `Figure.fill_between` - Implement high-level methods of `Figure.basemap` or `Figure.coast` ([#2831](https://github.com/GenericMappingTools/pygmt/issues/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](https://github.com/GenericMappingTools/pygmt/issues/770)) - Add a tutorial explaining the generally accepted input types ([#1268](https://github.com/GenericMappingTools/pygmt/issues/1268)) Please don't be shy to [reach out on GitHub](https://github.com/GenericMappingTools/pygmt) if you're interested in contributing :smile:! Also have a look at our [Contributors Guide](https://www.pygmt.org/v0.16.0/contributing.html) to figure out how you can help and get started :rocket:. ### :warning: Upcoming deprecations - **v0.17.0 (Planned for September 2025)** - Drop support of numpy<=1.26.0, pandas<=2.1.0 and Xarray<=2023.9 - **v0.18.0 (Planned for December 2025)** - `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) - **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 https://www.pygmt.org/v0.16.0/minversions.html, so make sure you keep things up to date! ### :world_map: Conference presentations/workshops/sprints What conferences would you like to see GMT/PyGMT at next? AGU25? EGU26? 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/) :camera_with_flash: and ResearchGate!