Changelog

Release v0.3.0 (2021/02/15)

Digital Object Identifier for the Zenodo archive

Highlights

New Features

  • Wrap grd2cpt (#803), inset (#788), and subplot (#822)

  • Let Figure.text() support record-by-record transparency (#716)

  • Provide basic support for FreeBSD (#700)

Enhancements

  • Let load_earth_relief() support ‘region’ argument for all resolutions (#873)

  • Detect ghostscript and default image viewer in FreeBSD (#878)

  • Improve how PyGMT finds the GMT library (#702)

  • Add dcw (#765) and lakes (#781) aliases to Figure.coast

  • Add the shading parameter to colorbar() in base_plotting.py (#752)

Documentation

  • Update the docstrings in the plotting modules (#881)

  • Update the doc strings in the non-plotting modules (#882)

  • Add alias annotation (A) to Figure.contour() (#883)

  • Revise pygmt development installation instructions (#865)

  • Update the docstrings of common aliases (#862)

  • Add common alias panel (-c) to all plotting functions (#853)

  • Update forum link to pygmt specific category (#858)

  • Wrap grdinfo aliases (#799)

  • Add sphinx-copybutton extension to easily copy codes (#838)

  • Add additional video link in text for clarity (#836)

  • Choosing the thumbnail figures in tutorials (#826)

  • Add a gallery example for logo (#823)

  • Update axis label explanation in frames tutorial (#820)

  • Update GMT arguments in coast doc strings (#798)

  • Add guidelines for types of tests to write (#796)

  • Recommend using SI units in documentation (#795)

  • Create gallery example for datetime inputs (#779)

  • Update GMT argument in the azimuthal (#776), conic (#780), cylindric (#789), and miscellaneous (#790) projections gallery to doc standards

  • Add an example for plotting multi-parameter symbols (#772)

  • Add a gallery example for the fig.image() method (#777)

  • Add a gallery example of setting line colors with a custom CPT (#774)

  • Add a table for compatibility of PyGMT with Python and GMT (#763)

  • Add description for the “columns” arguments (#766)

  • Add table for projections (#753)

  • Add cylindric (#761), conic projection (#721, #757), miscellaneous projections descriptions (#723, #762), logarithmic and power projections (#742) to gallery

  • Add projection description for Lambert Azimuthal Equal-Area (#760)

  • Change text when GMTInvalidInput error is raised for basemap (#729)

  • Add non-geographic plots to projection gallery (#728)

  • Adding cylindrical projections to gallery (#727)

  • Add tutorials, for adding a map title (#720), plotting Earth relief (#712), 3D perspective image (#743), contour maps (#705), plotting lines tutorial (#741), region arguments (#800)

  • Add frame and cmap to the colorbar parameters list (#709)

  • Add frame as a parameter on the grdview documentation (#707)

Bug Fixes

  • Fix a bug of Figure.text() when “text” is a non-string array (#724)

  • Fix the error message when IPython is not available (#701)

Maintenance

  • Add dependabot to keep GitHub Actions up to date (#861)

  • Add authorship policy (#726)

  • Move plotting functions to separate modules (#808)

  • Skip workflows in PRs if only non-source-code files are changed (#839)

  • Move non-plotting modules to separate files in src directory (#832)

  • Show test execution times in pytest (#835)

  • Add slash command ‘/test-gmt-dev’ to test GMT dev version (#831)

  • Add tests for grdfilter (#809)

  • Improve the error message when PyGMT fails to load the GMT library (#814)

  • Add tests for GMTInvalidInput for figure.py (#810)

  • Split meca into a standalone module from base_plotting.py (#686)

  • Update CONTRIBUTING.md with formatting conventions (#775)

  • Use args_in_kwargs for basemap error raising (#797)

  • Add docformatter to format plain text in docstrings (#642)

  • Add GMTInvalidInput Error for Figure.coast (#787)

  • Add args_in_kwargs function (#791)

  • Add a CI job testing GMT master branch on Windows (#756)

  • Add isort to sort imports alphabetically (#745)

  • Convert relative imports to absolute imports (#754)

  • Add a Makefile target ‘distclean’ for deleting project metadata files (#744)

  • Add test test_basemap_map_scale (#739)

  • Check files for UNIX-style line breaks and 644 permission (#736)

  • Rename vercel configuration file from now.json to vercel.json (#738)

  • Migrate pytest configurations to pyproject.toml (#725)

  • Migrate documentation deployment from Travis CI to GitHub Actions (#713)

  • Switch from versioneer to setuptools-scm (#695)

  • Migrate coverage configurations to pyproject.toml (#667)

Deprecations

  • Drop Python 3.6 support (#699)

Contributors

@liamtoney, @meghanrjones, @michaelgrund, @seisman, @weiji14 and @willschlitzer


Release v0.2.1 (2020/11/14)

Digital Object Identifier for the Zenodo archive

Highlights

New Features

  • Wrap plot3d (#471)

  • Wrap grdfilter (#616)

Enhancements

  • Allow np.object dtypes into virtualfile_from_vectors (#684)

  • Let plot() accept record-by-record transparency (#626)

  • Refactor info to allow datetime inputs from xarray.Dataset and pandas.DataFrame tables (#619)

Tutorials & Gallery

  • Add tutorial for pygmt.config (#482)

  • Add an example for different line styles (#604, #664)

  • Add a gallery example for varying transparent points (#654)

  • Add tutorial for pygmt.Figure.text (#480)

  • Add an example for scatter plots with auto legends (#607)

  • Improve colorbar gallery example (#596)

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)

This release contains contributions from:


Release v0.2.0 (2020/09/12)

Digital Object Identifier for the Zenodo archive

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:

  • Wrap GMT_Put_Strings to pass str columns into GMT C API directly (#520)

  • Wrap meca (#516)

  • Wrap x2sys_init and x2sys_cross (#546)

  • Let grdcut() accept xarray.DataArray as input (#541)

  • Initialize a GMTDataArrayAccessor (#500)

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:

  • Link to try-gmt binder repository (#598)

  • Improve docstring of data_kind() to include xarray grid (#588)

  • Improve the documentation of Figure.shift_origin() (#536)

  • Add shading to grdview gallery example (#506)

Bug Fixes:

  • Ensure surface and grdcut loads GMTDataArray accessor info into xarray (#539)

  • Raise an error if short- and long-form arguments coexist (#537)

  • Fix the grdtrack example to avoid crashes on macOS (#531)

  • Properly allow for either pixel or gridline registered grids (#476)

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)

Digital Object Identifier for the Zenodo archive

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:

  • Wrap grdcut (#492)

  • Add show_versions() function for printing debugging information used in issue reports (#466)

Enhancements:

  • Change load_earth_relief()’s default resolution to 01d (#488)

  • Enhance text with extra functionality and aliases (#481)

Documentation:

  • Add gallery example for grdview (#502)

  • Turn all short aliases into long form (#474)

  • Update the plotting example using the colormap generated by pygmt.makecpt (#472)

  • Add instructions to view the test coverage reports locally (#468)

  • Update the instructions for testing pygmt install (#459)

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)

Digital Object Identifier for the Zenodo archive

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:

  • Update install instructions (#430)

  • Add PyGMT AGU 2019 poster to website (#425)

  • Redirect www.pygmt.org to latest, instead of dev (#423)

Bug Fixes:

  • Set GMT_COMPATIBILITY to 6 when pygmt session starts (#432)

  • Improve how PyGMT finds the GMT library (#440)

Maintenance:

  • Finalize fixes on Windows test suite for v0.1.1 (#441)

  • Cache test data on Azure Pipelines (#438)

This release contains contributions from:


Release v0.1.0 (2020/05/03)

Digital Object Identifier for the Zenodo archive

Highlights:

  • 🎉 First official release of PyGMT 🎉

  • Python 3.8 is now supported (#398)

  • PyGMT now uses the stable version of GMT 6.0.0 by default (#363)

  • Use sphinx-gallery to manage examples and tutorials (#268)

New features:

  • Wrap blockmedian (#349)

  • Add pygmt.config() to change gmt defaults locally and globally (#293)

  • Wrap grdview (#330)

  • Wrap grdtrack (#308)

  • Wrap colorbar (#332)

  • Wrap text (#321)

  • Wrap legend (#333)

  • Wrap makecpt (#329)

  • Add a new method to shift plot origins (#289)

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:

  • Let surface return xr.DataArray instead of xr.Dataset (#408)

  • Update GMT constant GMT_STR16 to GMT_VF_LEN for GMT API change in 6.1.0 (#397)

  • Properly trigger pytest matplotlib image comparison (#352)

  • Use uuid.uuid4 to generate unique names (#274)

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)

  • Disable Windows CI builds before PR #313 is merged (#320)

  • Enable Mac and Windows CI on Azure Pipelines (#312)

  • Fixes for using GMT 6.0.0rc1 (#311)

  • Assign authorship to “The PyGMT Developers” (#284)

Deprecations:

  • Remove mention of gitter.im (#405)

  • Remove portrait (-P) from common options (#339)

  • Remove require.js since WorldWind was dropped (#278)

  • Remove Web WorldWind support (#275)

This release contains contributions from: