startinpy

A Delaunay triangulator where the input are 2.5D points (they have an elevation), the Delaunay triangulation (DT) is computed in 2D but the elevation of the vertices are kept. This is used mostly for the modelling of terrains, but other attributes could be used.

Originally written in Rust (so it’s rather fast; see Rust code), and robust arithmetic is used (so it shouldn’t crash). The Python bindings just wrap the Rust code.

startinpy allows you to:

  • insert incrementally points

  • delete vertices (useful for simplification, interpolation, and other operations)

  • interpolate with a few methods: TIN, natural neighbours, Laplace, etc.

  • read directly LAS/LAZ files

  • outputs the TIN in several formats: GeoJSON, OBJ, and PLY

import startinpy

t = startinpy.DT()
t.insert_one_pt(1.1, 3.3, 4.1)
t.insert_one_pt(15.1, 13.8, 2.9)
...
t.insert_one_pt(4.6, 9.3, 1.2)
t.remove(4)
print("# vertices:", t.number_of_vertices())
print("# triangles:", t.number_of_triangles())
t.write_geojson("/home/elvis/temp/mydt.geojson")

Table of content

Indices and tables