Metadata-Version: 2.4
Name: emeraldtriangles
Version: 0.1.7
Summary: Triangle mesh transforms
Author-email: "Egil Moeller, Craig W. Christensen, et al." <em@emrld.no>
License-Expression: MIT
Project-URL: Homepage, https://github.com/EMeraldGeo/EmeraldTriangles
Project-URL: Repository, https://github.com/EMeraldGeo/EmeraldTriangles
Keywords: triangles,mesh,geospatial,landxml,delaunay
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Cython
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: pandasio
Requires-Dist: lxml
Requires-Dist: matplotlib
Requires-Dist: shapely
Requires-Dist: geoalchemy2
Requires-Dist: pyproj
Requires-Dist: pyvista
Requires-Dist: scikit-gstat
Requires-Dist: bokeh
Requires-Dist: rasterio
Requires-Dist: triangle
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Dynamic: license-file

<img src="example.png" align="right"></image>

# EmeraldTriangles

This library provides transformations for 2d triangle meshes built on top
of
[scipy.spatial.Delaunay](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Delaunay.html)
and [Triangle](https://rufat.be/triangle/):

  * Insert points (nodes) in an existing mesh, splitting any triangles
    that points fall into.
    * Meshes created this way might not be Delaunay, but any new
      connected set of triangles added will be Delaunay if viewed in
      isolation (without the pre-existing mesh).
  * Extend a mesh outwards to include new points.
    * The extension to the mesh will be a constrained delaunay.
  * Calculate the boundary polygon of a mesh.
  
This library uses a similar data structure to the Triangles library
above, but replaces numpy arrays with pandas dataframes, preserving
any extra columns across operations. It also contains a plotting
function similar to the one in the Triangle library, that supports
color attributes for vertices as well as triangle faces.

In addition, EmeraldTriangles provides import and export functionality
for

  * LandXML (import and export, no extra columns)
  * SQL (import and export, same supported databases as pandas)
  * [PyVista](https://docs.pyvista.org/) (Only export)
    * VTK (only export)

as well as some data transforms

  * Reprojection of coordinates using [pyproj](https://pyproj4.github.io/pyproj/stable/)
  * Spatial interpolation (Kriging) of data using [scikit-gstat](https://scikit-gstat.readthedocs.io/)
  * Sampling of data from a raster to triangulation vertices using [RasterIO](https://rasterio.readthedocs.io/en/latest/)
  * Sampling of data from a triangulation to new point locations (linear interpolation between vertices of the surrounding triangle)

# Documentation

Documentation is provided in the form of a [jupyter notebook with
example
usages](https://github.com/EMeraldGeo/EmeraldTriangles/blob/master/Example%20usage.ipynb)
as well as in docstrings accesible with the python help() function.

# Installation tips

Users have experience issues with using the `setup.py develop` option due to some strange behaviour from cython. Using `pip` instead seems to do this trick. 
