There is a newer version of this record available.

Software Open Access

SHTOOLS/SHTOOLS: Version 4.6.1

Mark Wieczorek; MMesch; Ilya Oshchepkov; Elliott Sales de Andrade; xoviat; Benda Xu; Akihisa Hattori; Stefan Schröder; Katrin Leinweber; Andrew Walker; Aaryaman Vasishta

MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="">
  <controlfield tag="005">20210126091548.0</controlfield>
  <controlfield tag="001">3697770</controlfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">MMesch</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Center of Geodesy, Cartography and SDI (TsNIIGAiK)</subfield>
    <subfield code="a">Ilya Oshchepkov</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Elliott Sales de Andrade</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">xoviat</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Benda Xu</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Akihisa Hattori</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Universität Bonn</subfield>
    <subfield code="a">Stefan Schröder</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">@TIBHannover</subfield>
    <subfield code="a">Katrin Leinweber</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Andrew Walker</subfield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">University of Tokyo</subfield>
    <subfield code="a">Aaryaman Vasishta</subfield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">61386131</subfield>
    <subfield code="z">md5:450ba1f0b9392cf442137706cc65ee84</subfield>
    <subfield code="u"></subfield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2020-03-05</subfield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">software</subfield>
    <subfield code="o"></subfield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Laboratoire Lagrange - Observatoire de la Côte d'Azur</subfield>
    <subfield code="a">Mark Wieczorek</subfield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">SHTOOLS/SHTOOLS: Version 4.6.1</subfield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="a">Other (Open)</subfield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2"></subfield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">Version 4.6
New extended grids
&lt;p&gt;All grid formats now allow to compute the redundant values at 360 E longitude (GLQ and DH), as well as at 90 S (DH only). These &lt;em&gt;extended&lt;/em&gt; grids are now the default in pyshtools, but remain optional in the Fortran 95 routines. The use of extended grids is controlled by the optional argument &lt;code&gt;extend&lt;/code&gt;. The purpose of these extended grids is to better integrate with the plotting routines that require these points (i.e.., Cartopy and pygmt).&lt;/p&gt;
Improved plotting and map projections
&lt;p&gt;The plotting routine &lt;code&gt;SHGrid.plot()&lt;/code&gt; has been refactored to allow support for projections using &lt;code&gt;Cartopy&lt;/code&gt; and &lt;code&gt;pygmt&lt;/code&gt;.&lt;/p&gt;
&lt;li&gt;An incorrect 0.5 pixel offset was fixed when plotting grids via matplotlib, and grids now correctly plot both 0 and 360 degrees using the new "extended" grids of &lt;code&gt;SHGrid&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Support was added for Cartopy projections, by specifying: &lt;code&gt;SHGrid.plot(projection=ccrs.ProjectionName())&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The argument &lt;code&gt;colorbar&lt;/code&gt; now takes the options 'top', 'bottom', 'left' or 'right'.&lt;/li&gt;
&lt;li&gt;Improved plotting and placement of colorbars. New optional arguments include &lt;code&gt;cb_label&lt;/code&gt; for labels, &lt;code&gt;cb_ylabel&lt;/code&gt; for a label on the y axis of the colorbar, &lt;code&gt;cb_tick_interval&lt;/code&gt; for specifying the major tick interval, &lt;code&gt;cb_minor_tick_interval&lt;/code&gt; for specifying minor tick intervals, &lt;code&gt;cb_triangles&lt;/code&gt; for plotting upper/lower limit triangles at the ends of the colorbar, &lt;code&gt;cb_width&lt;/code&gt; to specify the colorbar width, and &lt;code&gt;cb_offset&lt;/code&gt; to override the default spacing between the map and colorbar.&lt;/li&gt;
&lt;li&gt;Improved colormap handling: New optional arguments include &lt;code&gt;cmap_limits&lt;/code&gt; to specify the lower and upper bounds of the data, as well as an interval for constant color intervals, and &lt;code&gt;cmap_reverse&lt;/code&gt; to reverse the colormap.&lt;/li&gt;
&lt;li&gt;Improved handling of ticks and annotations: The optional argument &lt;code&gt;ticks&lt;/code&gt; specifies which ticks and annotations to show, using a syntax from the generic mapping tools (i.e., &lt;code&gt;'WSen'&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Experimental support for pygmt using the routine &lt;code&gt;SHGrid.plotgmt()&lt;/code&gt;. This function takes nearly the same arguments as &lt;code&gt;plot()&lt;/code&gt;. As soon as pygmt implements projection classes (&lt;a href=""&gt;;/a&gt;), this will be incorporated into the &lt;code&gt;plot&lt;/code&gt; function in the same manner as Cartopy was.&lt;/li&gt;
&lt;li&gt;All gravity, magnetics, tensor, localization windows and slepian function plotting routines incorporate these changes.&lt;/li&gt;
&lt;li&gt;Added a new introductory notebook that shows how to use all features of the &lt;code&gt;plot()&lt;/code&gt; function.&lt;/li&gt;
Improved integration with xarray DataArrays, xarray DataSets, and netcdf files
&lt;li&gt;Added the methods &lt;code&gt;to_netcdf()&lt;/code&gt; and &lt;code&gt;from_netcdf()&lt;/code&gt; to the &lt;code&gt;SHCoeffs&lt;/code&gt;, &lt;code&gt;SHGravCoeffs&lt;/code&gt; and &lt;code&gt;SHMagCoeffs&lt;/code&gt; classes.&lt;/li&gt;
&lt;li&gt;Added the method &lt;code&gt;SHGrid.from_xarray()&lt;/code&gt; to initialize a grid from an xarray DataArray.&lt;/li&gt;
&lt;li&gt;Added improved descriptive attributes for netcdf files that mirror these &lt;a href=""&gt;conventions&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Added the method &lt;code&gt;SHGeoid.to_xarray()&lt;/code&gt; to export an xarray DataArray and &lt;code&gt;to_netcdf()&lt;/code&gt; to export a netcdf object readable by the generic mapping tools.&lt;/li&gt;
&lt;li&gt;Added the methods &lt;code&gt;SHGravGrid.to_xarray()&lt;/code&gt; and &lt;code&gt;SHMagGrid.to_xarray()&lt;/code&gt; to export all gridded data (radial, theta, phi, total, and potential) as an xarray DataSet.&lt;/li&gt;
&lt;li&gt;Added the methods &lt;code&gt;SHGravTensor.to_xarray()&lt;/code&gt; and &lt;code&gt;SHMagTensor.to_xarray()&lt;/code&gt;to export all gridded data (Vxx, invariants, eigenvalues) as an xarray DataSet.&lt;/li&gt;
Gravity routine improvements
&lt;li&gt;Added the method &lt;code&gt;SHGravCoeffs.center_of_mass&lt;/code&gt; to calculate the center of mass of a body.&lt;/li&gt;
&lt;li&gt;Added the method &lt;code&gt;SHGravCoeffs.inertia_tensor()&lt;/code&gt; to calculate the moment of inertia tensor.&lt;/li&gt;
&lt;li&gt;Added the Earth dynamical flattening constant H (IERS Conventions 2010) to the &lt;code&gt;constant&lt;/code&gt; module.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;read_icgem_gfc()&lt;/code&gt; function was extended with the option &lt;code&gt;encoding&lt;/code&gt; as some models in ICGEM are not in UTF-8.&lt;/li&gt;
&lt;li&gt;Addded the method &lt;code&gt;centroid()&lt;/code&gt; to the class &lt;code&gt;SHCoeffs&lt;/code&gt;. The centroid is computed as the center of mass of a homogeneous object.&lt;/li&gt;
Other changes
&lt;li&gt;New methods &lt;code&gt;SHGrid.to_real()&lt;/code&gt; and &lt;code&gt;SHGrid.to_imag()&lt;/code&gt; return the real and imaginary components of a complex &lt;code&gt;SHGrid&lt;/code&gt; instance.&lt;/li&gt;
&lt;li&gt;Added an optional argument &lt;code&gt;copy&lt;/code&gt; to &lt;code&gt;SHCoeffs.pad()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Fixed bugs in the Fortran code of &lt;code&gt;PlBar_d1&lt;/code&gt; and &lt;code&gt;PlON_d1&lt;/code&gt; when calculating the Legendre polynomials at the north and south pole.&lt;/li&gt;
&lt;li&gt;Spherical harmonic coefficients can be read remotely by specifying a URL as the filename. This functionality uses &lt;code&gt;requests.get()&lt;/code&gt;, and has been implemented in the function &lt;code&gt;shread()&lt;/code&gt; and the &lt;code&gt;SHCoeffs&lt;/code&gt; method &lt;code&gt;from_file()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Fixed a bug in the fortran code of &lt;code&gt;Curve2Mask&lt;/code&gt;. As part of this fix, the optional parameter &lt;code&gt;centralmeridian&lt;/code&gt; has been removed as it is no longer required. The longitudes of the curve can possess values from -360 to 720 degrees, and the routine searches for discontinuities that may occur between two successive points as the longitudes pass from 360 to 0, or -180 to 180 degrees.&lt;/li&gt;
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">url</subfield>
    <subfield code="i">isSupplementTo</subfield>
    <subfield code="a"></subfield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.592762</subfield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.3697770</subfield>
    <subfield code="2">doi</subfield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">software</subfield>
All versions This version
Views 1,8734
Downloads 2530
Data volume 5.9 GB0 Bytes
Unique views 1,6233
Unique downloads 1740


Cite as