Skip to content

v0.6.0

Latest

Choose a tag to compare

@leouieda leouieda released this 30 Mar 13:52
8666d08

Released on: 2026/03/30

DOI: https://doi.org/10.5281/zenodo.19333956

Breaking changes:

  • Make all methods that rely on coordinates take a single coordinates argument as input. This includes all gravity and coordinate-conversion methods. The argument is a tuple of 3 values (or arrays) representing the 3 dimensions of the given coordinate system. This standardizes the API and simplifies the documentation, making Boule closer to the other Fatiando a Terra libraries. It also makes it possible to allow passing coordinates in any coordinate system (see #265). (#233)
  • Replace the geodetic argument in boule.Ellipsoid.geocentric_radius with the new coordinate_system argument. (#231)
  • Make all keyword arguments in our methods and functions keyword-only. Passing keyword arguments as positional (without the argument name) will now cause errors. This is good because the previous behavior can lead to bugs. For example, WGS84.normal_gravity(coordinates, True) will now have to be WGS84.normal_gravity(coordinates, si_units=True). (#270)

New features:

  • Add a coordinate_system argument to gravity calculations. The gravity, gravitation, and centrifugal calculations in Ellipsoid can now receive inputs in any of the 4 coordinate systems that we support: geodetic (default), spherical, Cartesian, and ellipsoidal harmonic. The methods automatically convert to the ellipsoidal harmonic system since this is where the math is done. (#265)
  • Add coordinate conversion to and from spherical and ellipsoidal harmonic systems. The conversion goes through the geodetic system, so there can be a loss of accuracy when doing round-trip conversions. (#260)
  • Add coordinate conversion to and from geocentric Cartesian and ellipsoidal harmonic systems. Going to Cartesian uses an analytical expression from the Physical Geodesy book. Going back to ellipsoidal harmonic is done by passing through the geodetic system. (#259)
  • Add coordinate conversion to and from geodetic and geocentric Cartesian systems. Uses the method of Zhu (1993) for conversion from Cartesian to geodetic. (#258)
  • Add coordinate conversion to and from spherical and geocentric Cartesian systems. (#234)

Documentation:

  • Update the documentation on coordinates to use new coordinate conversion methods. (#263)
  • Remove reference to "height" in boule.Ellipsoid.geocentric_radius which didn't make sense since this functions calculates radii. (#230)
  • Add a link to the Fatiando a Terra Forum in the README. (#224)
  • Use Bordado instead of Verde to make grid coordinates in the documentation. (#271)

Maintenance:

  • Drop support for Python 3.8 and 3.9, add support for 3.14. (#249)
  • Get test coverage back to 100%. (#253)
  • Stop relying on Codecov for measuring and tracking test coverage changes in pull requests and use GitHub Actions job instead. (#251)
  • Run a single job to check style and format in GitHub Actions to save compute resources. (#252)
  • Use Ruff for formatting and linting instead of black, flake8, isort. (#250)
  • Move to a src layout structure, with the library code in src/boule and tests in test. This means that tests aren't shipped with the source distributions anymore to reduce the upload size. (#248)
  • Fix upload of coverage reports to Codecov. (#235)

This release contains contributions from:

  • Santiago Soler
  • Leonardo Uieda