Skip to main content

Python interface to Litho 1.0 dataset - based on stripy

Project description

litho1pt0

A Python interface to TRIPACK and STRIPACK Fortran code for (constrained) triangulation in Cartesian coordinates and on a sphere. Stripy is an object-oriented package and includes routines from SRFPACK and SSRFPACK for interpolation (nearest neighbor, linear and hermite cubic) and to evaluate derivatives (Renka 1996a,b and 1997a,b).

stripy is bundled with litho1pt0 which is a python interface to the crust 1.0 dataset and the lithospheric part of the litho 1.0 dataset (Laske et al, 2013 and Pasyanos et al, 2014) which both requires and demonstrates the triangulation / searching and interpolation on the sphere that is provided by stripy.

Examples

Sample images created with stripy illustrating the meshing capability, the ability to refine meshes to match criteria such as data density, and the ability to create distance-weighted averages to meshes and continuous interpolating functions

binder

Launch the demonstration at mybinder.org

Binder

Navigation / Notebooks

There are two matching sets of stripy notebooks - one set for Cartesian Triangulations and one for Spherical Triangulations. For most geographical applications, the spherical triangulations are the natural choice as they expect longitude and latitude coordinates (admittedly in radians).

Note: the Cartesian and Spherical notebooks can be obtained / installed from stripy itself as follows:

   python -c 'import stripy; stripy.documentation.install_documentation(path="Notebooks")'   

Cartesian

Spherical

Examples

Note, these examples are the notebooks from litho1pt0 which are installed from the package itself:

   python -c 'import litho1pt0; litho1pt0.documentation.install_documentation(path="Notebooks")'

The first three notebooks are an introduction to litho1pt0 that does not explicitly mention stripy but the next two worked examples show how to search, interpolate and plot with the help of stripy routines.

Installation

To install (numpy and fortran compiler, preferably gfortran, required):

python setup.py build
  • If you change the fortran compiler, you may have to add the flags config_fc --fcompiler=<compiler name> when setup.py is run (see docs for numpy.distutils).
python setup.py install

Alternatively install using pip:

pip install [--user] stripy

Usage

Two classes are included as part of the Stripy package:

  • sTriangulation (Spherical coordinates)
  • Triangulation (Cartesian coordinates)

These classes share similar methods and can be easily interchanged. In addition, there are many helper functions provided for building

A series of tests are located in the tests subdirectory.

Docker

A more straightforward installation which does not depend on specific compilers relies on the docker virtualisation system.

To install the docker image and test it is working:

   docker pull lmoresi/stripy:latest
   docker run --rm lmoresi/stripy:latest help

To install the helper scripts for bash:

   docker run --rm lmoresi/stripy:latest bash_utils > bash_utils.sh
   source bash_utils.sh

( you may find it helpful to move/rename this file and source it from your bash profile at login time )

The bash_utils.sh script installs the following functions which are available through the bash command line:

  stripy-docker-help
  stripy-docker-sh
  stripy-docker-nb
  stripy-docker-browse
  stripy-docker-serve
  stripy-docker-terminal

For more information on these functions, run

  source bash_utils.sh
  stripy-docker-help

To use the docker version as you would, say, using ipython to type on the command line:

   source bash_utils.sh  # (only needs to be done once)
   stripy-docker-terminal
   ls
   ipython

To use the docker version to run a script

   source bash_utils.sh  # (only needs to be done once)
   stripy-docker-sh my_python_script.py

References

  1. Laske, G., G. Masters, and Z. Ma (2013), Update on CRUST1. 0—A 1-degree global model of Earth's crust, Geophys Research Abstracts, 15, EGU2013–2658.

  2. Pasyanos, M. E., T. G. Masters, G. Laske, and Z. Ma (2014), LITHO1.0: An updated crust and lithospheric model of the Earth, Journal of Geophysical Research-Solid Earth, 119(3), 2153–2173, doi:10.1002/2013JB010626.

  3. R. J. Renka, "ALGORITHM 751: TRIPACK: A Constrained Two- Dimensional Delaunay Triangulation Package" ACM Trans. Math. Software, Vol. 22, No. 1, 1996, pp. 1-8.

  4. R. J. Renka, "ALGORITHM 752: SRFPACK: Software for Scattered Data Fitting with a Constrained Surface under Tension", ACM Trans. Math. Software, Vol. 22, No. 1, 1996, pp. 9-17.

  5. R. J. Renka, "ALGORITHM 772: STRIPACK: Delaunay Triangulation and Voronoi Diagram on the Surface of a Sphere" ACM Trans. Math. Software, Vol. 23, No. 3, 1997, pp. 416-434.

  6. R. J. Renka, "ALGORITHM 773: SSRFPACK: Interpolation of Scattered Data on the Surface of a Sphere with a Surface under Tension", ACM Trans. Math. Software, Vol. 23, No. 3, 1997, pp. 437-439.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

litho1pt0-0.7.0-py3-none-any.whl (29.3 MB view details)

Uploaded Python 3

File details

Details for the file litho1pt0-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: litho1pt0-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 29.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for litho1pt0-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da537f8f978762d4752343b4c3bec032f090c9777a06da4d1d277e16d6134824
MD5 25e5221880e342d03cb06fc3207f8598
BLAKE2b-256 300dfdf9c5aef8d0c07dc4e913317ad9a5c16f63864fda98664cb8dfcc08ff76

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page