Skip to content

Commit

Permalink
Update paper for JOSS
Browse files Browse the repository at this point in the history
  • Loading branch information
hugoledoux committed May 31, 2024
1 parent 92b95d7 commit da5c284
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ title: 'startinpy: A Python library for modelling and processing 2.5D triangulat
tags:
- Delaunay triangulation
- Python
- GIS
- terrain
- interpolation
- GIS
authors:
- name: Hugo Ledoux
orcid: 0000-0002-1251-8654
affiliations:
- name: Delft University of Technology, the Netherlands
date: 19 April 2024
date: 31 May 2024
bibliography: ref.bib

---
Expand Down Expand Up @@ -70,8 +70,8 @@ More format are possible through the use of other Python libraries, there are a

The two tables below compare startinpy to its main alternatives.

The [Delaunator package](https://github.com/HakanSeven12/Delaunator-Python) is a pure Python port of a proven fast triangulator [written original in JavaScript](https://github.com/mapbox/delaunator).
[SciPy](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Delaunay.html) is `scipy.spatial.Delaunay`, and SciPy-inc is the variation where an incremental algorithm is used.
The [Delaunator package](https://github.com/HakanSeven12/Delaunator-Python) is a pure Python port of a proven fast triangulator [originally written in JavaScript](https://github.com/mapbox/delaunator).
[SciPy](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Delaunay.html) is `scipy.spatial.Delaunay`, and SciPy-inc is the variation where an incremental algorithm is used (instead of a batch process).
[Triangle](https://pypi.org/project/triangle/) is the Python bindings of the C code.

| | Delaunator | SciPy | SciPy-inc | Triangle | startinpy |
Expand All @@ -87,13 +87,13 @@ The [Delaunator package](https://github.com/HakanSeven12/Delaunator-Python) is a
| xy-duplicate handling | -- | -- | -- | -- | + |


Notice that startinpy is the only offering to store z-values and extra attributes, the others are pure 2D Delaunay triangulator.
Notice that startinpy is the only one capable to store z-values and extra attributes, the others are pure 2D Delaunay triangulator.
The parameter 'efficient searches' refers to the availability of a point location function to find the closest triangles to a given point.
The parameter 'xy-duplicate handling' refers to the fact that startinpy allows us to merge vertices that are close to each others (in the xy-plane, the tolerance can be defined by the user), and that if there are xy-duplicates then the z-value can be determined (lowest or highest, depending on the application).
The parameter 'xy-duplicate handling' refers to the fact that startinpy allows us to merge vertices that are close to each others (in the xy-plane, the tolerance can be defined by the user), and that if there are xy-duplicates then a user-defined z-value can be kept (eg lowest or highest, depending on the application).


The table below shows the time it takes to construct the 2D DT--in a batch operation--for different datasets.
The details of the (openly available) datasets are available on the [GitHub repository of startinpy](https://github.com/hugoledoux/startinpy/tree/joss/dt_comparisons), and the Python code to replicate the experiments is available.
The details of the (openly available) datasets are available on the [GitHub repository of startinpy](https://github.com/hugoledoux/startinpy/tree/develop/dt_comparisons), and the Python code to replicate the experiments is available.
The datasets `random_X` are randomly generated points in a unit square, the first one has 10,000 points and the other 50,000 points.
The datasets `LAZ_X` are real-world aerial lidar datasets publicly available in the Netherlands, the `2M` contains exactly 2,144,049 points, and the `33M` contains exactly 33,107,889 points.
The dataset `dem.tiff` is the GeoTIFF file in `/data/` and the centre of each grid cell is inserted by reading sequentially the rows and columns, the total is 277,750 points.
Expand All @@ -106,12 +106,10 @@ The dataset `dem.tiff` is the GeoTIFF file in `/data/` and the centre of each gr
| Triangle | 0.004 | 0.02 | 0.9 | 16.8 | 0.19 |
| startinpy | 0.018 | 0.18 | 4.2 | 41.8 | 0.46 |



If "X" is written, it is because the returned DT was faulty: for large inputs Scipy-inc returns a few triangles only, not the full DT.

Notice that while startinpy is somewhat slower than Triangle, it is expected since, as explained above, it offers more convenience for the modelling of triangulated terrains and its data structure is exposed.
Notice also that startinpy is faster and more stable than the SciPy (no crash or wrong results) for large datasets.
Notice that while startinpy is somewhat slower than Triangle, it is somewhat expected since, as explained above, it offers more convenience for the modelling of triangulated terrains and its data structure is exposed.
Notice also that startinpy is faster and more stable than SciPy (no crash or wrong results) for large datasets.


# Acknowledgements
Expand Down

0 comments on commit da5c284

Please sign in to comment.