All Projects → underworldcode → stripy

underworldcode / stripy

Licence: LGPL-3.0 License
2D spherical and Cartesian triangulation toolkit using tripack, stripack, srfpack and ssrfpack

Programming Languages

Jupyter Notebook
11667 projects
HTML
75241 projects
fortran
972 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
TeX
3793 projects

Projects that are alternatives of or similar to stripy

bitpit
Open source library for scientific HPC
Stars: ✭ 80 (+142.42%)
Mutual labels:  meshes
intersection-wasm
Mesh-Mesh and Triangle-Triangle Intersection tests based on the algorithm by Tomas Akenine-Möller
Stars: ✭ 17 (-48.48%)
Mutual labels:  meshes
spherical geometry
A Python package for handling spherical polygons that represent arbitrary regions of the sky
Stars: ✭ 45 (+36.36%)
Mutual labels:  spherical-geometry
Cgal
The public CGAL repository, see the README below
Stars: ✭ 2,825 (+8460.61%)
Mutual labels:  meshes
ParallelQSlim
Shape Aware Parallel Mesh Simplification Algorithm
Stars: ✭ 84 (+154.55%)
Mutual labels:  meshes
IsoMesh
IsoMesh is a group of related tools for Unity for converting meshes into signed distance field data, raymarching signed distance fields, and extracting signed distance field data back to meshes via surface nets or dual contouring.
Stars: ✭ 178 (+439.39%)
Mutual labels:  meshes
unity-plumber
A component to procedurally generate pipe-like meshes in Unity
Stars: ✭ 55 (+66.67%)
Mutual labels:  meshes
ConstructiveGeometry.jl
Algorithms and syntax for building CSG objects within Julia.
Stars: ✭ 27 (-18.18%)
Mutual labels:  meshes
mesher-example
An example to illustrate the functionalities of Mesher
Stars: ✭ 16 (-51.52%)
Mutual labels:  meshes
2D 3D PolarFourierTransform
C++, CUDA, and MATLAB codes for the paper "An Exact and Fast Computation of Discrete Fourier Transform for Polar and Spherical Grid"
Stars: ✭ 31 (-6.06%)
Mutual labels:  spherical-geometry
skeletor
3D skeleton extraction from meshes.
Stars: ✭ 115 (+248.48%)
Mutual labels:  meshes
MeshViz.jl
Makie.jl recipes for visualization of Meshes.jl
Stars: ✭ 51 (+54.55%)
Mutual labels:  meshes
PolyDraw
✳️ PTSource PolyDraw is a free 3D polygonal modeller for Windows x86 and x64, for creating or modifying 3D objects using a mesh of 3D points and parametric NURBS Curves .Exports and imports to over 40 formats including WebVR and 3D Printing.
Stars: ✭ 17 (-48.48%)
Mutual labels:  meshes
MeshCore.jl
Curation and manipulation of general unstructured meshes for the Finite Element Methods (FEM).
Stars: ✭ 14 (-57.58%)
Mutual labels:  meshes
BodyParts3D
Clone of the BodyParts3D/Anatomography 3D model files
Stars: ✭ 32 (-3.03%)
Mutual labels:  meshes
vtkbool
A new boolean operations filter for VTK
Stars: ✭ 77 (+133.33%)
Mutual labels:  meshes
navis
Python 3 library for analysis of neuroanatomical data
Stars: ✭ 68 (+106.06%)
Mutual labels:  meshes
ameshref
Efficient Matlab Implementation of Adaptive Mesh Refinement in 2D
Stars: ✭ 28 (-15.15%)
Mutual labels:  meshes
CGoGN 2
n-dimensional Meshes with Combinatorial Maps
Stars: ✭ 19 (-42.42%)
Mutual labels:  meshes
JoSH
[KDD 2020] Hierarchical Topic Mining via Joint Spherical Tree and Text Embedding
Stars: ✭ 55 (+66.67%)
Mutual labels:  spherical-geometry

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].