There is a newer version of this record available.

Software Open Access


markwieczorek; Matthias Meschede; Ilya Oshchepkov; Elliott Sales de Andrade; Armin Corbin; xoviat; Benda Xu; Stefan Schröder; Akihisa Hattori; Aaryaman Vasishta; Andrew Walker; Katrin Leinweber

Version 4.8
  • Several functions have been vectorized using numpy.vectorize(). These include: spharm_lm(), legendre_lm(), MakeGridPoint(), MakeGridPointC(), DownContFilterMA(), DownContFilterMC(), NormalGravity(), SHConfidence(), and PlmIndex().
  • A new Fortran routine MakeGradientDH was added to compute the horizontal gradient of a real scalar function. The method .gradient() was added to the SHCoeffs class, and a new class SHGradient was created to store and plot the two horizontal components of the gradient.
  • Added new Fortran functions MakeGravGridPoint and MakeMagGridPoint to compute the gravity and magnetic field vector at a single point.
  • Added the option to compute the gravity and magnetic field vectors at a single point using the python class methods SHGravCoeffs.expand() and SHMagCoeffs.expand().
  • The plot_spectrum2d() routines have been updated to include more plotting options, including placement of the origin, tick intervals, and colormaps. Most optional parameters are the same as in the SHGrid.plot() method.
  • Added the option to including intensity shading in the SHGrid.plotgmt() routine. The shading can be derived from the gradient of the input grid (by setting shading=True) or from a different map by supplying an SHGrid class instance. Optional parameters include the azimuth of the shading (shading_azimuth), as well as the maximum amplitude of the intensity (shading_amplitude).
  • Modified all the Fortran routines to use a slightly more efficient way to compute the radius of an ellipsoid as a function of geocentric latitude.
  • Fixed a bug in SHCoeffs.expand() when colat was specified in radians.
  • All declarations of integers in the Fortran code are now made using the types defined in the module iso_fortran_env. Furthermore, the python wrapper and signature files have been updated to be explicit when defining the Fortran variables.
  • Fixed a bug where the old module name constant needed to be updated to constants in the method SHCoeffs.centroid().
  • Corrected the parameterization used when generating ellipsoids in SHGrid.from_ellipsoid(). Though this method was introduced in v4.7, it was not mentioned in the release notes.
  • Changed the default behavior of SHCoeffs.to_array() so that the default value is not to return the errors by setting errors=False.
  • Added the optional attribute name to the coefficient classes SHGrid, SHGravCoeffs, SHMagCoeffs and SlepianCoeffs. All datasets now explicity set name to the function call of the dataset.
  • Moved the file shtools.h from src/ to include/ and updated the Makefiles accordingly.

M. A. Wieczorek, M. Meschede, E. Sales de Andrade, A. Corbin, I. Oshchepkov, B. Xu, and A. Walker, A. Hattori, S. Schröder, K. Leinweber, A. Vasishta (2021). SHTOOLS: Version 4.8, Zenodo, doi:10.5281/zenodo.592762

Files (41.3 MB)
Name Size
41.3 MB Download
All versions This version
Views 3,164145
Downloads 44730
Data volume 10.8 GB1.2 GB
Unique views 2,741139
Unique downloads 30616


Cite as