Changelog
Release v0.4.1 (2021/08/07)
Highlights
- 🎉 Patch release with multiple gallery examples 🎉 
- Change default GitHub branch name from “master” to “main” to increase inclusivity (#1360) 
- Add a “PyGMT Team” page (#1308) 
Enhancements
- Add common alias “verbose” (V) to grdlandmask and savefig (#1343) 
Bug Fixes
Documentation
- Combine documentation and compatibility sections in README.rst (#1415) 
- Add a gallery example for grdclip (#1396) 
- Add a gallery example for different colormaps in subplots (#1394) 
- Add a gallery example for the contour method (#1387) 
- Add a gallery example showing individual custom symbols (#1348) 
- Add common option aliases to COMMON_OPTIONS in decorators.py (#1407) 
- Add return statement to grdclip and grdgradient docstring (#1390) 
- Restructure contributing.md to separate docs/general info from contributing code section (#1339) 
Maintenance
Contributors
Release v0.4.0 (2021/06/20)
Highlights
New Features
- Wrap blockmean (#1092) 
- Wrap grdclip (#1261) 
- Wrap grdfill (#1276) 
- Wrap grdgradient (#1269) 
- Wrap grdlandmask (#1273) 
- Wrap histogram (#1072) 
- Wrap rose (#794) 
- Wrap solar (#804) 
- Wrap velo (#525) 
- Wrap wiggle (#1145) 
- Add new function to load fractures sample data (#1101) 
- Allow load_earth_relief() to load the original land-only 01s or 03s SRTM tiles (#976) 
- Handle geopandas and shapely geometries via geo_interface link (#1000) 
- Support passing string type numbers, geographic coordinates and datetimes (#975) 
Enhancements
- Allow passing an array as intensity for plot3d (#1109) 
- Allow passing an array as intensity for plot (#1065) 
- Allow passing xr.DataArray as shading to grdimage (#750) 
- Allow x/y/z input for blockmedian and blockmean (#1319) 
- Allow pygmt.which to accept a list of filenames as input (#1312) 
- Refactor blockm* to use virtualfile_from_data and improve i/o (#1280) 
- Refactor grdtrack to use virtualfile_from_data and improve i/o to pandas.DataFrame (#1189) 
- Add parameters to histogram (#1249) 
- Add alias ‘aspatial’ to methods blockmedian, info, plot, plot3d, surface (#1090) 
- Add alias ‘registration’ to methods blockmean, info, grdfilter, surface (#1089) 
- Add incols to COMMON_OPTIONS, blockmean, and blockmedian (#1300) 
- Improve Figure.show for displaying previews in Jupyter notebooks and external viewers (#529) 
- Let Figure.savefig recommend .eps or .pdf when .ps extension is used (#1307) 
Deprecations
- Figure.contour: Deprecate parameter “columns” to “incols” (remove in v0.6.0) (#1303) 
- Figure.plot: Deprecate parameter “sizes” to “size” (remove in v0.6.0) (#1254) 
- Figure.plot: Deprecate parameter “columns” to “incols” (remove in v0.6.0) (#1298) 
- Figure.plot3d: Deprecate parameter “sizes” to “size” (remove in v0.6.0) (#1258) 
- Figure.plot3d: Deprecate parameter “columns” to “incols” (remove in v0.6.0) (#1040) 
- Figure.rose: Deprecate parameter “columns” to “incols” (remove in v0.6.0) (#1306) 
- NEP29: Set minimum required versions to NumPy 1.17+ and Python 3.7+ (#1074) 
- Raise a warning for the use of short-form parameters when long-forms are available (#1316) 
Bug Fixes
Documentation
- Add histogram gallery example (#1272) 
- Add a gallery example showing individual basic geometric symbols (#1211) 
- Specify rectangle’s width and height via style parameter in multi-parameter symbols example (#1325) 
- Update the inset gallery example (#1287) 
- Add categorical colorbars for plot, plot3d and line colors gallery examples (#1267) 
- Apply NIST SI unit convention to some gallery examples (#1194) 
- Use colorblind-friendly colors in the scatter plots gallery example (#1013) 
- Added documentation for three oblique mercator projections (#1251) 
- Add a list of external PyGMT resources (#1210) 
- Complete documentation for grdtrack (#1190) 
- Add projection and region to grdview docstring (#1295) 
- Add common alias spacing (-I) for specifying grid increments (#1288) 
- Standardize docstrings for table-like inputs (#1186) 
- Clarify that the “transparency” parameter in plot/plot3d/text can be 1d array (#1265) 
- Clarify that the “color” parameter in plot/plot3d can be 1d array (#1260) 
- Clarify interplay of spacing and per_column in info (#1127) 
- Remove the “full test” section from installation guide (#1206) 
- Clarify position of deprecate_parameter decorator to be above use_alias (#1302) 
- Add guidelines for managing issues to maintenance.md (#1301) 
- Add alias name convention to CONTRIBUTING.md (#1256) 
- Move contributing guide details to website and rename two sections (#1335) 
- Update the check_figures_equal testing section in CONTRIBUTING.md (#1108) 
- Revise Pull Request review process in CONTRIBUTING.md (#1119) 
Maintenance
- Add a workflow to upload baseline images as a release asset (#1317) 
- Add regression test for grdimage plotting an xarray.DataArray grid subset (#1314) 
- Add download_test_data to download data files used in tests (#1310) 
- Remove xfails and workarounds for datetime inputs into pygmt.info (#1236) 
- Improve the DVC image diff workflow to support side-by-side comparison of modified images (#1219) 
- Document the deprecation policy and add the deprecate_parameter decorator to deprecate parameters (#1160) 
- Convert booleans arguments in build_arg_string, not in kwargs_to_strings (#1125) 
- Create Github Action workflow for reporting DVC image diffs (#1104) 
- Update “GMT Dev Tests” workflow to test macOS-11.0 and pre-release Python packages (#1105) 
- Initialize data version control for managing test images (#1036) 
- Separate workflows for running tests and building documentation (#1033) 
Contributors
Release v0.3.1 (2021/03/14)
Highlights
Enhancements
- Support passing a sequence to the spacing parameter of pygmt.info() (#1031) 
Bug Fixes
- Fix issues in loading GMT’s shared library (#977) 
- Let pygmt.info load datetime columns into a str dtype array (#960) 
- Check invalid combinations of resolution and registration in load_earth_relief() (#965) 
- Open figures using the associated application on Windows (#952) 
- Fix bug that stops Figure.coast from plotting with only dcw parameter (#910) 
Documentation
- Add a gallery example showing different line front styles (#1022) 
- Add a gallery example for a double y-axes graph (#1019) 
- Add a gallery example of inset map showing a rectangle region (#1020) 
- Add a gallery example to show coloring of points by categories (#1006) 
- Add gallery example showing different polar projection use cases (#955) 
- Add underscore guideline to CONTRIBUTING.md (#1034) 
- Add instructions to upgrade installed PyGMT version (#1029) 
- Improve the docstring of the pygmt package (#1016) 
- Add common alias coltypes (-f) for specifying i/o data types (#994) 
- Expand documentation linking in CONTRIBUTING.md (#802) 
- Write changelog in markdown using MyST (#941) 
- Update web font to Atkinson Hyperlegible (#938) 
- Improve the gallery example for datetime inputs (#919) 
Maintenance
- Refactor plot and plot3d to use virtualfile_from_data (#990) 
- Explicitly exclude unnecessary files in source distributions (#999) 
- Refactor grd modules to use virtualfile_from_data (#992) 
- Refactor info and grdinfo to use virtualfile_from_data (#961) 
- Onboarding maintainer checklist (#773) 
- Add comprehensive tests for pygmt.clib.loading.clib_full_names (#872) 
- Add a workflow checking links in plaintext and HTML files (#634) 
- Remove nbsphinx extension (#931) 
- Improve the error message for loading an old version of the GMT library (#925) 
- Move requirements-dev.txt dependencies to environment.yml (#812) 
- Ensure proper non-dev version string when publishing to PyPI (#900) 
- Run tests in a single CI job (Ubuntu + Python 3.9) for draft PRs (#906) 
Contributors
Release v0.3.0 (2021/02/15)
Highlights
New Features
Enhancements
- Let load_earth_relief support the ‘region’ parameter for all resolutions (#873) 
- Improve how PyGMT finds the GMT library (#702) 
- Add common alias panel (-c) to all plotting functions (#853) 
- Add alias shading to Figure.colorbar (#752) 
- Add alias annotation (A) to Figure.contour (#883) 
- Wrap Figure.grdinfo aliases (#799) 
- Add aliases frame and cmap to Figure.colorbar (#709) 
- Add alias frame to Figure.grdview (#707) 
- Improve the error message when PyGMT fails to load the GMT library (#814) 
- Add GMTInvalidInput error to Figure.coast (#787) 
Documentation
- Add authorship policy (#726) 
- Update PyGMT development installation instructions (#865) 
- Add a tutorial for adding a map title (#720) 
- Add a tutorial for plotting Earth relief (#712) 
- Add a tutorial for 3D perspective image (#743) 
- Add a tutorial for contour maps (#705) 
- Add a tutorial for plotting lines (#741) 
- Add a tutorial for the region argument (#800) 
- Add a gallery example for datetime inputs (#779) 
- Add a gallery example for Figure.logo (#823) 
- Add a gallery example for plotting multi-parameter symbols (#772) 
- Add a gallery example for Figure.image (#777) 
- Add a gallery example for setting line colors with a custom CPT (#774) 
- Add more gallery examples for projections (#761, #721, #757, #723, #762, #742, #728, #727) 
- Update the docstrings in the plotting modules (#881) 
- Update the docstrings in the non-plotting modules (#882) 
- Update Figure.coast docstrings (#798) 
- Update the docstrings of common aliases (#862) 
- Add sphinx-copybutton extension to easily copy codes (#838) 
- Choose the best figures in tutorials for thumbnails (#826) 
- Update axis label explanation in frames tutorial (#820) 
- Add guidelines for types of tests to write (#796) 
- Recommend using SI units in documentation (#795) 
- Add a table for compatibility of PyGMT with Python and GMT (#763) 
- Add description for the “columns” arguments (#766) 
- Add a table of the available projections (#753) 
- Add projection description for Lambert Azimuthal Equal-Area (#760) 
- Change text when GMTInvalidInput error is raised for basemap (#729) 
Bug Fixes
Maintenance
- Add dependabot to keep GitHub Actions up to date (#861) 
- Skip workflows in PRs if only non-source-code files are changed (#839) 
- Add slash command ‘/test-gmt-dev’ to test GMT dev version (#831) 
- Check files for UNIX-style line breaks and 644 permission (#736) 
- Rename vercel configuration file from now.json to vercel.json (#738) 
- Add a CI job testing GMT master branch on Windows (#756) 
- Migrate documentation deployment from Travis CI to GitHub Actions (#713) 
- Move Figure.meca into a standalone module (#686) 
- Move plotting functions to separate modules (#808) 
- Move non-plotting modules to separate modules (#832) 
- Add isort to sort imports alphabetically (#745) 
- Convert relative imports to absolute imports (#754) 
- Switch from versioneer to setuptools-scm (#695) 
- Add docformatter to format plain text in docstrings (#642) 
- Migrate pytest configurations to pyproject.toml (#725) 
- Migrate coverage configurations to pyproject.toml (#667) 
- Show test execution times in pytest (#835) 
- Add tests for grdfilter (#809) 
- Add tests for GMTInvalidInput of Figure.savefig and Figure.show (#810) 
- Add args_in_kwargs function (#791) 
- Add a Makefile target ‘distclean’ for deleting project metadata files (#744) 
- Add a test for Figure.basemap map_scale (#739) 
- Use args_in_kwargs for Figure.basemap error raising (#797) 
Contributors
Release v0.2.1 (2020/11/14)
Highlights
- 🎉 Patch release with more tutorials and gallery examples! 🎉 
- 🐍 Support Python 3.9 (#689) 
- 📹 Add Liam’s ROSES 2020 PyGMT talk (#643) 
New Features
Enhancements
Tutorials & Gallery
Documentation Improvements
- doc: Fix the description of grdcontour -G option (#681) 
- Refresh Code of Conduct from v1.4 to v2.0 (#673) 
- Add PyGMT Zenodo BibTeX entry to main README.md (#678) 
- Complete most of documentation for makecpt (#676) 
- Complete documentation for plot (#666) 
- Add “no_clip” to plot, text, contour and meca (#661) 
- Add common alias “verbose” (V) to all functions (#662) 
- Improve documentation of Figure.logo() (#651) 
- Add mini-galleries for methods and functions (#648) 
- Complete documentation of grdimage (#620) 
- Add common alias perspective (p) for plotting 3D illustrations (#627) 
- Add common aliases xshift (X) and yshift (Y) (#624) 
- Add common alias cores (x) for grdimage and other multi-threaded modules (#625) 
- Enable switching different versions of documentation (#621) 
- Add common alias transparency (-t) to all plotting functions (#614) 
Bug Fixes
- Disallow passing arguments like -XNone to GMT (#639) 
Maintenance
- Migrate PyPI release to GitHub Actions (#679) 
- Upload artifacts showing diff images on test failure (#675) 
- Add slash command “/format” to automatically format PRs (#646) 
- Add instructions to run specific tests (#660) 
- Add more tests for xarray grid shading (#650) 
- Refactor xfail tests to avoid storing baseline images (#603) 
- Add blackdoc to format Python codes in docstrings (#641) 
- Check and lint sphinx configuration file doc/conf.py (#630) 
- Improve Makefile to clean - __pycache__directory recursively (#611)
- Update release process and checklist template (#602) 
Contributors
Release v0.2.0 (2020/09/12)
Highlights
- 🎉 Second minor release of PyGMT 🎉 
- Minimum required GMT version is now 6.1.1 or newer (#577) 
- Plotting xarray grids using grdimage and grdview should not crash anymore and works for most cases (#560) 
- Easier time-series plots with support for datetime-like inputs to plot (#464) and the region argument (#562) 
New Features
Enhancements
- Allow passing in pandas dataframes to x2sys_cross (#591) 
- Sensible array outputs for pygmt info (#575) 
- Allow pandas.DataFrame table and 1D/2D numpy array inputs into pygmt.info (#574) 
- Add auto-legend feature to grdcontour and contour (#568) 
- Add common alias verbose (V) (#550) 
- Let load_earth_relief() support all resolutions and optional subregion (#542) 
- Allow load_earth_relief() to load pixel or gridline registered data (#509) 
Documentation
Bug Fixes
Maintenance
- Add a test for xarray shading (#581) 
- Remove expected failures on grdview tests (#589) 
- Redesign check_figures_equal testing function to be more explicit (#590) 
- Cut Windows CI build time in half to 15 min (#586) 
- Add a test for Session.write_data() writing netCDF grids (#583) 
- Add a test to make sure shift_origin does not crash (#580) 
- Add testing.check_figures_equal to avoid storing baseline images (#555) 
- Eliminate unnecessary jobs from Travis CI (#567) and Azure Pipelines (#513) 
- Improve the workflow to test both GMT master (#485) and 6.1 branches (#554) 
- Automatically cancel in-progress CI runs of old commits (#544) 
- Remove the Stickler CI configuration file (#538), run style checks using GitHub Actions (#519) 
- Cache GMT remote data as artifacts on GitHub (#530) 
- Let pytest generate both HTML and XML coverage reports (#512) 
- Run Continuous Integration tests on GitHub Actions (#475) 
Contributors
Release v0.1.2 (2020/07/07)
Highlights
- Patch release in preparation for the SciPy 2020 sprint session 
- Last version to support GMT 6.0, future PyGMT versions will require GMT 6.1 or newer 
New Features
Enhancements
Documentation
Bug Fixes
- Fix a bug when passing data to GMT in Session.open_virtual_file() (#490) 
Maintenance
- Temporarily expect failures for some grdcontour and grdview tests (#503) 
- Fix several failures due to updates of earth relief data (#498) 
- Unpin pylint version and fix some lint warnings (#484) 
- Separate tests of gmtinfo and grdinfo (#461) 
- Fix the test for GMT_COMPATIBILITY=6 (#454) 
- Update baseline images for updates of earth relief data (#452) 
- Simplify PyGMT Release process (#446) 
Contributors
Release v0.1.1 (2020/05/22)
Highlights
- 🏁Windows users rejoice, this bugfix release is for you!🏁 
- Let PyGMT work with the conda GMT package on Windows (#434) 
Enhancements
- Handle setting special parameters without default settings for config (#411) 
Documentation
Bug Fixes
Maintenance
Contributors
Release v0.1.0 (2020/05/03)
Highlights
New Features
Enhancements
- Allow text accepting “frame” as an argument (#385) 
- Allow for grids with negative lat/lon increments (#369) 
- Allow passing in list to ‘region’ argument in surface (#378) 
- Allow passing in scalar number to x and y in plot (#376) 
- Implement default position/box for legend (#359) 
- Add sequence_space converter in kwargs_to_string (#325) 
Documentation
- Update PyPI install instructions and API disclaimer message (#421) 
- Fix the link to GMT documentation (#419) 
- Use napoleon instead of numpydoc with sphinx (#383) 
- Document using a list for repeated arguments (#361) 
- Add legend gallery entry (#358) 
- Update instructions to set GMT_LIBRARY_PATH (#324) 
- Fix the link to the GMT homepage (#331) 
- Split projections gallery by projection types (#318) 
- Fix the link to GMT/Matlab API in the README (#297) 
- Use shinx extlinks for linking GMT docs (#294) 
- Comment about country code in projection examples (#290) 
- Add an overview page listing presentations (#286) 
Bug Fixes
Maintenance
- Quickfix Zeit Now miniconda installer link to anaconda.com (#413) 
- Fix GitHub Pages deployment from Travis (#410) 
- Update and clean TravisCI configuration (#404) 
- Quickfix min elevation for new SRTM15+V2.1 earth relief grids (#401) 
- Wrap docstrings to 79 chars and check with flake8 (#384) 
- Update continuous integration scripts to 1.2.0 (#355) 
- Use Zeit Now to deploy doc builds from PRs (#344) 
- Move gmt from requirements.txt to CI scripts instead (#343) 
- Change py.test to pytest (#338) 
- Add Google Analytics to measure site visitors (#314) 
- Register mpl_image_compare marker to remove PytestUnknownMarkWarning (#323) 
- Enable Mac and Windows CI on Azure Pipelines (#312) 
- Fixes for using GMT 6.0.0rc1 (#311) 
- Assign authorship to “The PyGMT Developers” (#284)