Geodynamicists from Sydney and Australian National universities have developed Stripy, a software module that allows scientists to efficiently place GIS ‘wrapping paper’ around the spherical Earth ‘present’.
This is the first module to be built for a common scientific programming language like Python, that supports such ‘wrapping’, or mapping features. Here, developer Dr Ben Mather explains Stripy’s key functions for the AuScope Earth modelling community.
The Stripy solution
Introducing Stripy: a lightweight object-oriented Python package for building meshes from unstructured data on the sphere. A series of example meshes are provided including such classics as icosahedral, octahedral, and soccer ball meshes.
Stripy includes the following functionality:
- Spherical and Cartesian triangulation of scattered points.
- Construction of Cartesian and Spherical meshes.
- Nearest-neighbour, linear, and hermite cubic interpolation.
- Evaluation of derivatives.
- Smoothing operations.
- Mesh refinement on line segments / triangle centroids.
- Fast point location with k-d tree interface with angular separation metric on the sphere.
In case you weren’t already sold, all these features are also available in Cartesian coordinates. Stripy is bundled with a linked collection of Jupyter notebooks that can act as a user guide and an introduction to the package. The notebooks are split into matching sets for spherical and Cartesian triangulations.
Download Stripy, or make it better
Stripy is a member of the Underworld family of open-source software packages, and is freely available for download by multiple installation methods on GitHub. If you get stuck and need assistance, please open a GitHub issue. If you want to contribute in some way to the project, please see our contributions guide.
If you use the code, please cite our JOSS paper (see here for more options)
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