Published July 9, 2024 | Version v4.13.1
Software Open

SHTOOLS/SHTOOLS: Version 4.13.1

  • 1. Institut de physique du globe de Paris
  • 2. @tweag
  • 3. Center of Geodesy, Cartography and SDI (TsNIIGAiK)
  • 4. University of Bonn
  • 5. Q-CTRL
  • 6. German Aerospace Center
  • 7. European Molecular Biology Laboratory (EMBL)
  • 8. Universität Bonn
  • 9. NWRA
  • 10. @gitlabhq
  • 11. JuanSaudio
  • 12. Vector Atomic
  • 13. Perimeter Institute for Theoretical Physics
  • 14. Purdue University
  • 15. Stability AI

Description

Version 4.13.1

More constants

  • Added mean orbital elements (a, e, i) for all of the planets, Pluto, and the asteroids in the constants submodule.
  • Added the mean orbital elements of the Galilean satellites, Titan, and Enceladus (including the tilt with respect to the Laplace plane).
  • Added constants for the Sun, Pluto, and Charon.
  • Added orbit_period and orbit_angular_velocity, which are estimated using Kepler's third law, the mass of the Sun, the mass of the body, and the semimajor axis.
  • Renamed the omega constant to angular_velocity.
  • Divided the web documentation page "Constants and Datasets" into two separate web pages.

Datasets

  • Added gravity datasets of Jupiter (Kaspi2023_gravity), Saturn (Jacobson2022_gravity), Uranus (Jacobson2014_gravity), and Neptune (Jacobson2009_gravity).
  • Added two shape models of Psyche: Shepard2017 and Shepard2021.
  • Added a new ultrahigh degree principal-axis shape model of the Moon LDEM_pa, and moved the previous LOLA_pa shape model to historical.
  • Allow passing a negative lmax to get the maximum resolution model (when several resolution models are available).

Better least squares

  • The fortran weighted least squares routine in SHExpandLSQ has been modified and is now just as fast as the method without weights. LAPACK DGELS is used to perform the inversion after appropriately scaling the data kernel matrix and input data.
  • Added a new fortran routine LSQ_G and python wrapped function to precompute the data kernel matrix.
  • The fortran routine SHExpandLSQ now accepts as an optional argument a precomputed data matrix kernel, which offers some improvement in speed for high degrees.
  • Added python wrapped functions SHExpandLSQ_G and SHExpandWLSQ_G that require passing the data kernel matrix.
  • Added a new pure python routine shlsq that is a convenience function for calling the various fortran routines with or without data weights, and with or without the data kernel matrix. This function only works with real spherical harmonics.
  • Added a new class method SHCoeffs.from_least_squares() that allows one to initialize an SHCoeffs instance by performing a least squares inversion of irregularly space data.

Change of normal gravity for rotating spheres

  • The normal gravity is defined as the magnitude of the total gravity (gravitation + centrifugal) on the surface of a reference ellipsoid. Previously, the fortran NormalGravity routine set the centrifugal term to zero when the reference ellipsoid was a sphere. For the case of a sphere, it should be noted that the surface does not correspond to an equipotential surface, and the gravity vector is not normal to the surface.

Packaging

  • We have migrated from using multibuild and Appveyor to cibuildwheel to build our wheels for distribution on pypi.org. We are currently distributing wheels for macOS (intel and Apple silicon), windows, and linux (intel and ARM).

Other changes

  • Replaced the undefined attribute self._vii_units in Tensor.to_xarray() by self.units, and added a demo using the fixed Tensor.to_xarray method in the tutorial notebook gravity-and-magnetic-fields.ipynb.
  • isinstance is now used when comparing python types.
  • except Exception is now used to avoid a bare python except.
  • Improved setuptools_scm version detection when working with non-git-versioned projects.
  • Improved handling of the class attribute name. This attribute was added to classes that did not previously define name, and every method that returns a class instance now has the ability to set the name of the new instance. When creating grids from coefficients, the name of the grid class is inherited from the name of the coefficient class.
  • Added the option to rotate the ellipsoid generated by SHGrid.from_ellipsoid() about the z axis by the angle alpha.
  • Added legend_title, legend_titlesize, and legend_fontsize arguments to all plot_spectrum() and plot_cross_spectrum() methods.
  • Allow to pass dictionaries of optional arguments for all methods that previously accepted the generic **kwargs catch all. For the plotting routines, this allows to specify separate optional parameters for numpy.plot(), numpy.errorbar(), and numpy.legend().
  • Replaced the deprecated matplotlib cm.get_cmap() method with the pyplot method get_cmap().
  • Fixed a bug when using SHGrid.plotgmt() with cmap_scale='log' but without setting cb_tick_interval. The default is set to use cb_tick_interval=1 when left unspecified.
  • Updated the fortran documentation to note the accuracy limitations of the SHRotate routines at degrees close to 1200.

Reference

M. A. Wieczorek, M. Meschede, A. Broquet, T. Brugere, A. Corbin, EricAtORS, A. Hattori, A. Kalinin, J. Kohler, D. Kutra, K. Leinweber, P. Lobo, J. Maia, E. Mentzer, D. Minton, I. Oshchepkov, P.-L. Phan, O. Poplawski, M. Reinecke, E. Sales de Andrade, E. Schnetter, S. Schröder, D. Shin, J. Sierra, A. Vasishta, A. Walker, xoviat, B. Xu (2024). SHTOOLS: Version 4.13, Zenodo, doi:10.5281/zenodo.592762.

Files

SHTOOLS/SHTOOLS-v4.13.1.zip

Files (42.6 MB)

Name Size Download all
md5:77a02228230aeb7ef4555849743b4df7
42.6 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/SHTOOLS/SHTOOLS/tree/v4.13.1 (URL)