Published July 9, 2024
| Version v4.13.1
Software
Open
SHTOOLS/SHTOOLS: Version 4.13.1
Creators
- markwieczorek1
- Matthias Meschede2
- Elliott Sales de Andrade
- mreineck
- Ethan Mentzer
- Ilya Oshchepkov3
- Armin Corbin4
- xoviat
- David Shin5
- Benda Xu
- Akihisa Hattori
- Adrien Broquet6
- Dominik Kutra7
- Stefan Schröder8
- pphan-imcce
- Pedro Lobo
- Orion Poplawski9
- Katrin Leinweber10
- Juan Sierra11
- Jonathan Kohler12
- Erik Schnetter13
- EricAtORS
- David Minton14
- Andrew Walker
- Aaryaman Vasishta15
- 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
andorbit_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 toangular_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
andShepard2021
. - Added a new ultrahigh degree principal-axis shape model of the Moon
LDEM_pa
, and moved the previousLOLA_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
andSHExpandWLSQ_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 anSHCoeffs
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
inTensor.to_xarray()
byself.units
, and added a demo using the fixedTensor.to_xarray
method in the tutorial notebookgravity-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 definename
, 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 anglealpha
. - Added
legend_title
,legend_titlesize
, andlegend_fontsize
arguments to allplot_spectrum()
andplot_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 fornumpy.plot()
,numpy.errorbar()
, andnumpy.legend()
. - Replaced the deprecated matplotlib
cm.get_cmap()
method with the pyplot methodget_cmap()
. - Fixed a bug when using
SHGrid.plotgmt()
withcmap_scale='log'
but without settingcb_tick_interval
. The default is set to usecb_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)