Skip to main content

Python interface to TRIPACK and STRIPACK fortran code for triangulation/interpolation in Cartesian coordinates and on a sphere

Project description

Stripy

Docker Cloud Automated build PyPI

pip builds

Conda Deployment

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: ocean age data can be triangulated on the sphere with no need for points on land. Once stripy ingests your data points, you can sample another dataset to your grid (bathymetry on the right), smooth, find the derivatives of your data, or interpolate to another set of points.

Documentation

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). There are some worked examples which use the companion package litho1pt0

Stable code

Bleeding edge code

For previous versions, see the changelog

Installation & Running in the cloud

Binder

Launch the demonstration

Binder

(This is the development branch)

Binder-dev

Citation

DOI

Moresi, L. and Mather, B.R., (2019). Stripy: A Python module for (constrained) triangulation in Cartesian coordinates and on a sphere.. Journal of Open Source Software, 4(38), 1410, https://doi.org/10.21105/joss.01410

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

Dependencies

You will need Python 3.6+. Also, the following packages are required:

Recommended Packages for running the notebooks:

All of which should be available from pip or anaconda (conda-forge) for most platforms.

Installing using pip

You can install stripy using the pip package manager with either version of Python:

python3 -m pip install stripy

All the dependencies will be automatically installed by pip, except for gfortran (or any Fortran compiler). It must be installed in your system before installing stripy with pip.

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).

Installing with conda

If you use the anaconda packaging system, then you should be able to

conda install -c geo-down-under 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 meshes.

A series of tests are located in the tests subdirectory. In order to perform these tests clone the repository and run pytest:

git checkout https://github.com/underworldcode/stripy.git
cd stripy
pytest -v

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 Distribution

stripy-2.2.tar.gz (13.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

stripy-2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

stripy-2.2-cp311-cp311-macosx_10_9_universal2.whl (13.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

stripy-2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

stripy-2.2-cp310-cp310-macosx_11_0_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

stripy-2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

stripy-2.2-cp39-cp39-macosx_11_0_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

stripy-2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

stripy-2.2-cp38-cp38-macosx_10_15_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

stripy-2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

stripy-2.2-cp37-cp37m-macosx_10_15_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

stripy-2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

File details

Details for the file stripy-2.2.tar.gz.

File metadata

  • Download URL: stripy-2.2.tar.gz
  • Upload date:
  • Size: 13.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for stripy-2.2.tar.gz
Algorithm Hash digest
SHA256 ce8925c73d1325bfa675029ca752831f9194cc404469933ade3f4e0889441970
MD5 6a9cd8aadef065478d0279fa02bfbc20
BLAKE2b-256 62c839860c0eb6a1b7101e603c9a6e96671701cba6247523f0c369edc060f02a

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f420cb6f4316ea2ffeafc7e93438101b22f74283d012e99939659e55c1af88d
MD5 0078884702cce20d0881a39b25d0c896
BLAKE2b-256 f9288e0fcfe4dfadb9b16d003586a7fcd41ca3386085646c81bfcfe17e053c85

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 92e3641ef0d3fd37ccf611bad3b0ff864ed4e3eab29a0ea8f8d512f4521f4abd
MD5 638f15a2af61eff35da5ecfbe7338329
BLAKE2b-256 b07e7037c9e567f55ada8fda6cf32574e9009a693a705ae740a0b62252adff67

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 774adbb99d4df7b1713a5f9f7fb670f2a90ef14bd03714f6a9ef2a5662a05d1b
MD5 1f12570944e88466fc1c67d927924eba
BLAKE2b-256 2c56568bafe8e8d4e9d6601ad345d33c43aada63ec38a7a1c3d92a887a8bf394

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 13e10cc08fe1b38c692e50d2531d512aed3eddaeabe7d4c52946b4b733ae9872
MD5 77831a9411b8509d7005fbe905e9ad90
BLAKE2b-256 bbfa14eb9f801acaec53fc2443cdde0d6f8a73576861a470d6e53c56c3172dc6

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87c715dff02ec128e9cbf57c031928fa03f24d332f7fdfa00adedac973cefa9d
MD5 e69146546f21d82549d13e7c9f1472aa
BLAKE2b-256 1c2174602b9453ff45115218c0fd008bd7584d6e0ddfd1f22fafa351265d968e

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: stripy-2.2-cp39-cp39-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 13.0 MB
  • Tags: CPython 3.9, macOS 11.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for stripy-2.2-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c75a1ebe30ce676759bcf3b7648702fe45fde58333895ec1c862b893e6fac362
MD5 1a3b2ff27dd12d3d0068db0e2ecb1a7c
BLAKE2b-256 f9ff0a872be74f6d1558158c1465b672702796740b47e29738dda76ac65619f2

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5864b4328ae850d341c7f6c03f5048890719103753cb6e454506512b2ae031b7
MD5 520a742b85447fa524ecd5b590e4f4b9
BLAKE2b-256 044d49fd75b66a4137766e3ac44d27fbe0898a0f3ee541e94e922db98099b669

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2467ff30a28c7bdb9c148181da28653c9763dcc083fdddd6a557355741a00865
MD5 2b76279cc980dfdbd77a9e63a1eba417
BLAKE2b-256 1f78ca572b55d6690cb4a0a36881ea1619d387acc7935724cc966205f7843cd3

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69f2cbc8842f7b3a82309116be75d73c57ac09ca65808600f65b52612e5531e4
MD5 78d7d21a4349a6612c96f25bc9ecaa34
BLAKE2b-256 29063317bf7350c52906c1e9d88af8786d2b7d02c04bf7c86054d47678f58b0a

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 27978b85b2c1ac129af1834642ff16db5c1deed506e6bf65ed4da3e343dfc367
MD5 cc41742234ac2a20d3115ddd6622e779
BLAKE2b-256 4c470bea4b3b27192a20890dbfcd45e740e3dfc477567a8dc7b689f27ca9e922

See more details on using hashes here.

File details

Details for the file stripy-2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for stripy-2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9699f99db220c569e7ae1352cd91bd0406902e7fc8c96bce0dc7bb819d6ea615
MD5 0fcb5ad7c8feafc6e45f025f3aaad5ec
BLAKE2b-256 17d959ae725f7a1834852622ac71047f1e4605282c57dad686fbcb0e8ae2d545

See more details on using hashes here.

Supported by

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