Changelog#

Version 0.7.0#

Released on: 2024/08/12

Digital Object Identifier for the Zenodo archive

Breaking changes:

  • Update the gravitational constant (#412)

  • Remove the harmonica.test() function (#482)

  • Remove depth_type from EquivalentSources (#468)

  • Change default value for depth in EquivalentSourcesGB (#515)

  • Change default for window size in EquivalentSourcesGB (#487)

Bug fixes:

  • Make reduce_to_pole work for arbitrary dimension names (#509)

  • Fix inverted sign in upward derivative filter (#479)

  • Fix coordinate rounding errors in FFT (#398)

New features:

  • Remove horizontal coordinates when ditching thin prisms (#394)

  • Raise error for zero depth value in equivalent sources (#524)

  • Merge magnetic forward functions for prisms (#448)

  • Merge magnetic forward functions for dipoles (#453)

  • Magnetic field of dipoles in Cartesian coordinates (#414)

  • Forward models of prisms gravity fields with Choclo (#400)

  • Drop null prisms when converting a prism layer to pyvista (#393)

  • Add total gradient amplitude transformation (#478)

  • Add total_field_anomaly function (#510)

  • Add progressbar to tesseroid forward modelling (#430)

  • Add new tilt_angle transformation function (#486)

  • Add magnetic field forward modelling of rectangular prisms (#369)

  • Add function to convert magnetic vector to inclination and declination (#402)

  • Add Euler Deconvolution of a single window (#493)

  • Add covariance, change fit data, more docs to Euler Deconvolution (#519)

  • Add associated Legendre function calculations (#505)

Maintenance:

  • Use Dependabot to update GitHub Actions workflows (#455)

  • Use Choclo functions for forward modelling point sources (#422)

  • Use Burocrata to check and add license notices (#469)

  • Use a text field for license in pyproject.toml (#442)

  • Specify nopython=True on jit functions (#435)

  • Setup Trusted Publisher deployment to PyPI (#477)

  • Run serial vs parallel test on prisms without Numba (#434)

  • Rewrite check for point inside tesseroid with Numba (#419)

  • Fix prism_layer test when accessing PyVista cells (#409)

  • Fix broken ICGEM file loader test (#457)

  • Extend support to Python 3.12 (#484)

  • Extend support for Numpy 2.0 (#514)

  • Drop support for Python 3.8 (#497)

  • Drop support for Python 3.7 (#404)

  • Ditch setup.cfg and use only pyproject.toml (#438)

  • Decorate tests for Legendre functions (#521)

  • Continue running doctests after failure (#411)

  • Add Yago M Castro to AUTHORS.md (#489)

  • Add India Uppal to AUTHORS.md (#500)

  • Add Gelson to AUTHORS.md (#520)

Documentation:

  • Update versions of Sphinx and its plugins (#472)

  • Update how to pip install dev version in install.rst (#444)

  • Set hinge to zero in gallery example plot (#408)

  • Replace sphinx napoleon for numpydoc (#492)

  • Replace color for fill in examples using PyGMT (#495)

  • Minor typo in eq sources parameter estimation docs (#389)

  • Minor edits to grid transformations guides (#391)

  • Make gravity units more explicit (#421)

  • Improve installation instructions in the docs (#483)

  • Improve docstrings of prism gravity functions (#429)

  • Improve docstring of prism_magnetic function (#481)

  • Improve coordinates description in forward functions (#413)

  • Fix wrong citations of Cordell (1992) (#518)

  • Fix visualization test using deprecated PyVista method (#433)

  • Fix typo in user guide (#475)

  • Fix typo in Installing (#416)

  • Fix spelling of “Gaussian” in tranformations guide (#464)

  • Fix prism and tesseroid layer in API Reference (#428)

  • Fix multiple typos on DatasetAccessorPrismLayer (#494)

  • Fix missing PyGMT images in user guide (#474)

  • Download User Guides as scripts and notebooks (#405)

This release contains contributions from:

  • Agustina Pesce

  • Federico Esteban

  • Gelson F. Souza-Junior

  • India Uppal

  • Leonardo Miquelutti

  • Leonardo Uieda

  • Lu Li

  • Mariana Gómez

  • Matt Tankersley

  • RichardScottOZ

  • Santiago Soler

  • Sergei Freiman

  • Yago Moreira Castro

Version 0.6.0#

Released on: 2023/03/01

Digital Object Identifier for the Zenodo archive

Deprecations:

  • Deprecate EQLHarmonic and EQLHarmonicSpherical classes (#366)

  • Deprecate isostasy_airy function (#379)

  • Deprecate the synthetic and dataset modules (#380)

New features:

  • Add function to create a tesseroid layer, similar to the one for the prism layer (#316)

  • Add function to read Oasis Montaj© grd files as xarray.DataArray (#348)

  • Add option to discard thin prisms when forward modelling a prism layer (#373)

  • Add FFT-based transformations and filters for horizontal derivatives, upward continuation, reduction to the pole of magnetic grids, and low-pass and high-pass Gaussian filters (#299)

  • Make horizontal derivative functions to compute the derivatives using central finite differences (#378)

Maintenance:

  • Minor optimization in prism forward modelling (#349)

  • Set lower bounds for supported dependency versions following NEP29 (#356)

  • Extend support for Python 3.10 (#240)

  • Bump versions of style checkers like Black and Flake8 (#368)

  • Replace setup.py with PyPA build (#363)

  • Clean Harmonica API: make the forward, equivalent_sources, gravity_corrections, isostasy and transformations submodules private (#362)

Documentation:

  • Replace Cartopy with PyGMT throughout the documentation (#327)

  • Fix typo in equivalent sources tutorial (#351)

  • Add tesseroid_layer to the API reference (#354)

  • Update README to match Verde and Boule (#358)

  • Fix contact link in the documentation side bar (#357)

  • Set v0.4.0 as the last with support for Python 3.6 (#359)

  • Add more papers to “Citing the methods” section in the docs (#375)

  • Add examples and a user guide page for grid transformations (#377)

  • Add examples on how to use horizontal derivative functions to the user guide (#384)

This release contains contributions from:

  • Mariana Gomez

  • Lu Li

  • Agustina Pesce

  • Santiago Soler

  • Matt Tankersley

  • Leonardo Uieda

Version 0.5.1#

Released on: 2022/08/26

Digital Object Identifier for the Zenodo archive

Bug fixes:

  • Fix test function for empty ICGEM gdf file (#345)

  • Add a function to ignore the tesseroid with zero density or volume (#339)

  • Fix equivalent sources figures in gallery examples (#342)

  • Replace PROJECT placeholder in changes.rst for “harmonica” (#341)

This release contains contributions from:

  • Agustina Pesce

  • BenjMy

  • Santiago Soler

Version 0.5.0#

Released on: 2022/08/12

Digital Object Identifier for the Zenodo archive

Deprecations:

  • Add FutureWarning to isostasy_airy function warning of deprecation after next release (#307)

  • Ditch soon-to-be deprecated args of equivalent sources grid method (#311)

  • Remove deprecated point_mass_gravity function (#310)

  • Drop support for Python 3.6 (#309)

  • Add deprecations to datasets and synthetic modules (#304)

New features:

  • Discard prisms with no volume or zero density before running the forward model (#334)

  • Add a new isostatic_moho_airy function to compute Moho depth based on Airy isostasy hypothesis using the rock equivalent topography concept (#307)

  • Add progressbar to prism forward gravity calculations (#315)

  • Add computation of gravitational tensor components for point sources (#288)

  • Add function to compute upward derivative of a grid in the frequency domain (#238)

  • Add conversion of prisms or a prism layer to PyVista objects (#291)

Maintenance:

  • Simplify tests for upward derivative (#328)

  • Avoid checking floats in tesseroid doctests (#326)

  • Update Black to its stable version (#301)

  • Move configuration from setup.py to setup.cfg (#296)

  • Pin style checkers and formatters (#295)

Documentation:

  • Add impostor syndrome disclaimer to docs (#333)

  • Convert README to Markdown, since it’s no longer used to build the docs (#331)

  • Replace sphinx-panels for sphinx-design and refactor the home page of the docs(#329)

  • Specify spherical latitude in point sources guide (#325)

  • Note that spherical and geodetic latitudes are equal in spherical ellipsoids (#324)

  • Specify “spherical latitude” when describing coordinates of point masses (#321)

  • Fix small format errors in the user guide (#319)

  • Update docs and create a proper user guide (#305)

  • Update Sphinx version to 4.5.0 (#302)

  • Link Code of Conduct and Authorship, Contributing, and Maintainers Guides back to the Fatiando-wide pages (#294)

  • Replace Google Analytics for Plausible (#297)

This release contains contributions from:

  • Federico Esteban

  • Lu Li

  • Agustina Pesce

  • Santiago Soler

  • Matt Tankersley

  • Leonardo Uieda

Version 0.4.0#

Released on: 2021/12/02

Digital Object Identifier for the Zenodo archive

New features:

  • Allow EquivalentSources to define block-averaged sources through a new block_size argument [Soler2021]. (#260)

  • Add dtype argument to EquivalentSources. Allows to select the data type used to allocate the Jacobian matrix. (#278)

  • Add a new EquivalentSourcesGB class that implements gradient-boosted equivalent sources. Provides a method to estimate the amount of computer memory needed to allocate the largest Jacobian matrix [Soler2021]. (#275)

  • Allow tesseroid_gravity to compute gravitational fields of variable density tesseroids. Implements the density-based discretization algorithm and takes numba.njit decorated density functions as input [Soler2019]. (#269)

Breaking changes:

  • Rename point_mass_gravity to point_gravity. Having mass and gravity in the same function name is redundant. The function name has the same structure as other forward modelling functions (tesseroid_gravity and prism_gravity). The old point_mass_gravity will be deprecated on the next release. (#280)

Bug fixes:

  • Fix bug with the require_numba pytest mark and rename it to run_only_with_numba for improved readability. (#273)

Documentation:

  • Fix typo on EquivalentSources docstring: replace bloc_size with block_size. (#276)

  • Minor improvements to the docs: fix bad references and links, replace Equivalent Layer for Equivalent Sources on API Index, fix bad RST syntax. (#274)

Maintenance:

  • Rename the default branch: from master to main (#287)

  • Replace pylint for flake8 extensions. Add isort for autoformatting imports. (#285)

  • Replace conda for pip on GitHub Actions and split requirements files for each separate task. (#282)

  • Make GitHub Actions to check if license notice is present in source files. (#277)

This release contains contributions from:

  • Santiago Soler

Version 0.3.3#

Released on: 2021/10/22

Digital Object Identifier for the Zenodo archive

Bug fix:

  • Add EquivalentSources and EquivalentSourcesSph to API index. Replace the old equivalent layer classes. (#270)

This release contains contributions from:

  • Santiago Soler

Version 0.3.2#

Released on: 2021/10/21

Digital Object Identifier for the Zenodo archive

Bug fixes:

  • Fix import of Harmonica version on sample datasets: solves a problem whenbuilding docs for releases. Define the __version__ variable inside a new version.py file. (#264)

This release contains contributions from:

  • Santiago Soler

Version 0.3.1#

Released on: 2021/10/20

Digital Object Identifier for the Zenodo archive

Bug fix:

  • Package requirements.txt and update the dependencies list: remove scipy and add scikit-learn. Exclude license_notice.py and .flake8 from the MANIFEST.in (#261)

This release contains contributions from:

  • Santiago Soler

Version 0.3.0#

Released on: 2021/10/20

Digital Object Identifier for the Zenodo archive

Deprecations:

  • Rename equivalent sources classes to EquivalentSources and EquivalentSourcesSph. The old EQLHarmonic and EQLHarmonicSpherical will be removed on v0.5 (#255)

  • Rename the relative_depth parameters in EquivalentSources to depth. The old relative_depth parameter will be deleted on v0.5 (#236)

New features:

  • Enable parallelization on tesseroids forward modelling and refactor its code (#244)

  • Add option to set EquivalentSources points to constant depth (#236)

  • Allow prism_layer to take Xarray objects as arguments (#243)

Maintenance:

  • Generate version string on _version.py on build (#237)

  • Run CIs only on the two ends of supported Python versions (#256)

  • Transform require_numba decorator into a global variable (#245)

Documentation:

  • Fix typo: replace bellow for below across docstrings (#253)

  • Fix version display in the HTML title (#249)

  • Remove unneeded line in prism_gravity example (#248)

  • Update Fukushima2020 citation on References (#246)

  • Change order of dims in example of prism_layer (#241)

  • Fix class name on See also section in prism_layer (#230)

  • Use the Jupyter book Sphinx theme instead of RTD (#227)

This release contains contributions from:

  • Santiago Soler

  • Leonardo Uieda

Version 0.2.1#

Released on: 2021/04/14

Digital Object Identifier for the Zenodo archive

Minor changes:

  • Rename prisms_layer to prism_layer (#223)

Bug fixes:

  • Unpin Sphinx and fix documentation style (#224)

This release contains contributions from:

  • Santiago Soler

Version 0.2.0#

Released on: 2021/04/09

Digital Object Identifier for the Zenodo archive

New features:

  • Add function to create a layer of prisms and add a new South Africa ETOPO1 dataset (#186)

  • Optimize forward models by parallelizing outer loops for prisms and point masses and refactor the tesseroids forward modelling (#205)

  • Add parallel flag to EQLs (#207)

  • Parallelize EQLs predictions and Jacobian build (#203)

  • Improve EQL harmonic classes by splitting classes and adding upward argument to prediction methods (#190)

  • Add function to compute the distance between points given in geodetic coordinates (#172)

  • Allow load_icgem_gdf to take open file objects (#155)

  • Add new EQLHarmonicSpherical class to interpolate data using EQL in spherical coordinates (#136)

Maintenance:

  • Extend support for Python 3.9 (#219)

  • Separate the Actions jobs into categories (#218)

  • Automatically check for license notice when checking code style (#211)

  • Use the OSI version of item 3 in the license (#206)

  • Add license and copyright notice to every .py file (#201)

  • Replace versioneer with setuptools_scm (#196)

  • Remove configuration files for unused CI: Stickler, Codacy and CodeClimate (#197)

  • Replace TravisCI and Azure for GitHub Actions (#189)

  • Fetch a sample data before testing locate because Pooch creates cache directory only after the first fetch (#193)

  • Require Black>=20.8b1 (#187)

  • Add CI builds for Python 3.8 (#150)

  • Replace global Zenodo DOI on badges and citation (#148)

  • Remove the GitHub templates from the repository and use the shared ones in fatiando/.github (#149)

Documentation:

  • Add example for EQLHarmonicSpherical (#152)

  • Replace Cartesian distance for Euclidean distance in docs (#156)

Bug fixes:

  • Keep metadata of sample datasets in the Xarray objects (#184)

  • Fix infinite loop on CIs after Numba v0.5.0 (#180)

This release contains contributions from:

  • Santiago Soler

  • Leonardo Uieda

  • Nicholas Shea

  • Rowan Cockett

Version 0.1.0#

Released on: 2020/02/27

Digital Object Identifier for the Zenodo archive

Fist release of Harmonica. Forward modeling, inversion, and processing gravity and magnetic data.

Forward models:

  • Point masses in Cartesian coordinates. Gravitational potential with vertical (#71) and horizontal components of acceleration (#119).

  • Point masses in spherical coordinates. (#60)

  • Rectangular prisms. (#86)

  • Tesseroids. (#60)

Available datasets:

  • Great Britain aeromagnetic dataset. (#111)

  • South Africa gravity station data. (#99)

  • Geoid grid from EIGEN-6C4. (#34)

  • Global topography from ETOPO1. (#23)

  • Global gravity data from EIGEN-6C4. (#12)

Other features:

  • Synthetic ground and airborne surveys based on real world data. (#120)

  • Equivalent Layer for harmonic functions. (#78)

  • Planar Bouguer correction. (#38)

  • Airy Isostasy function. (#17)

  • Function to read ICGEM data files. (#11)

This release contains contributions from:

  • Leonardo Uieda

  • Santiago Soler

  • Vanderlei C Oliveira Jr

  • Agustina Pesce

  • Nicholas Shea

  • ziebam