#
Implementing Data-Dependent Triangulations with Higher Order Delaunay Triangulations^{ †}

^{1}

^{2}

^{*}

^{†}

## Abstract

**:**

## 1. Introduction

**Contributions.**We present an extensive study on the practical use of HODTs, as a way to build data-dependent triangulations. Our main goal is to evaluate whether the improvements in the data-dependent criteria that can be obtained by using HODTs, compared to the Delaunay triangulation, are significant enough as to justify implementing a more complex triangulation algorithm. Our secondary goal is to describe some of the implementation aspects of HODTs, never considered until now.

## 2. Related Work

#### 2.1. Main Data-Dependent Criteria

**Angle Between Normals (ABN) [1].**${\mu}_{ABN}$ is given by the angle between the normal vectors of the two planes spanned by the triangles adjacent to an edge e. This function measures the local smoothness of e in $\mathcal{T}$, thus minimizing ${\mu}_{ABN}$ should lead to a surface exhibiting little changes when passing through the edges of the triangulation. One could also maximize ${\mu}_{ABN}$ or any of the other measures in this section, if the goal was to produce a rugged surface. However, minimization is the setting for which best results have been reported.

**Jump Normals Derivatives (JND) [1].**${\mu}_{JND}$ is given by the difference of the derivatives of the two planes around e measured in a direction orthogonal to e’s projection (see vector n in Figure 2).

**Refined Angle Between Normals (WABN) [5].**A variation of ABN that takes into account the length of the edge e, given by ${\mu}_{WABN}=\left|\right|e\left|\right|{\mu}_{ABN}$. Its goal is to penalize longer edges, in order to reduce the number of slivers.

**Piecewise Linear analog of Curvature (PLC) [3].**It is a generalization of ABN to vertices instead of edges, given by the sum of the angles between normals of neighboring triangles around a given vertex u.

**Error-based criteria (ERR).**Given that often the goal of using a data-dependent criterion is reducing the approximation error between the TIN and the original surface, it is reasonable to try to use the error itself to guide the triangulation process. Error-based criteria have been considered several times [1,4], essentially by defining the measure of the current triangulation as the total error between the current triangulation and a set of fixed ground truth points.

#### 2.2. Comparisons of Data-Dependent Criteria

## 3. Methodology

#### 3.1. Data

**Kinzel Springs**, Tennessee (KS): this area has a very rough topography. It has been strongly influenced by tectonic movement and fluvial processes with rivers cutting deeply into valleys. Mountains mostly extend from the southwest corner to the northeast corner. Vertical relief of about 850 m. The DEM has dimensions 390 × 473.**Moorehead South East (SE)**, Iowa (MH): this area is flatter and smoother than the previous one because it is a region that was shaped by erosion caused by melting glaciers. Vertical relief of about 100 m. The DEM has dimensions 361 × 474.In a preliminary version of this work [17], we also considered two additional terrains with topographic characteristics in-between those of KS and MH, but the differences in the results obtained did not justify the inclusion in this paper.**Point selection method.**For each DEM, we generated two sets of sample points to be the input to the triangulation algorithms. It is well known that the choice of the sample points has a strong influence on the TIN approximation quality. We used the VIP (very important point) method as implemented in ArcGIS 10 raster to multipoint tool. VIP is a well-known method to generate sample points from a raster terrain that intends to sample the most relevant topographic features (mainly local peaks and pits). In addition, following [4], we generated for each terrain a set of 900 random points to be used as ground truth set, in order to evaluate the approximation error of the generated TINs.**Compensation of boundary effect.**The Delaunay triangles that are close to the boundary of the point sample are often long and skinny. The reason why these slivers can also be Delaunay is that their Delaunay circles face the exterior face of the triangulation, thus are empty of sample points. However, this creates a possible problem for HODT optimization because removing such triangles by flips while keeping the Delaunay order low is sometimes not possible, since all the flips necessary produce high-order intermediate triangles. In a preliminary round of experiments, we noticed that often the maximum values of the criteria were achieved in such boundary slivers. This forced the optimization to end very quickly and with poor results. Since this is due to an artifact caused by the terrain boundary, for the purposes of order computation, data-dependent, and quality measures, we ignored a buffer around the terrain boundary containing 5% of the sample points.

#### Other Aspects Measured

#### 3.2. Implementation Considerations

**Lawson’s optimization method.**Data-dependent triangulations require optimizing a criterion over the space of all possible triangulations of a point set. Since finding global optima is in general an intractable problem, in practice, local optimization is used. The most widely used method to (locally) optimize triangulations is Lawson’s optimization procedure (LOP) [13]. The main advantage of LOP is its simplicity: it only requires a few lines of code, assuming the triangulations are stored in a data structure providing basic topological information. The method works by identifying edges whose flip (i.e., removing the edge and inserting the other diagonal of the quadrilateral formed) improves the triangulation, and flipping them, until no such edge remains. Next, we present the method more formally. Let e be an edge of a triangulation $\mathcal{T}$ of a point set $\mathcal{P}$. We denote the cost of e (i.e., according to some data-dependent criterion) in $\mathcal{T}$ by $\mu (\mathcal{T},e)$, and the cost of $\mathcal{T}$ by $C\left(\mathcal{T}\right)$. For all criteria considered in this paper, $C\left(\mathcal{T}\right)={max}_{e}\mu (\mathcal{T},e)$. If e is an interior edge of $\mathcal{T}$, it is the diagonal of a quadrilateral formed by the two triangles that share e. If such a quadrilateral is convex, then e can be exchanged by the other diagonal ${e}^{\prime}$ of the quadrilateral. This operation is called a flip, and we say that e is flippable. Let ${\mathcal{T}}^{\prime}$ be the triangulation obtained after flipping e in $\mathcal{T}$.

**locally optimal**if: (i) e is not flippable, or (ii) e is flippable and flipping e does not improve the triangulation, i.e., $C\left(\mathcal{T}\right)\le C\left({\mathcal{T}}^{\prime}\right)$. Analogously, a triangulation $\mathcal{T}$ is

**locally optimal**if all its edges are locally optimal. The successive application of the edge-flip method to a triangulation converges, in a finite number of steps, to a locally optimal triangulation. See Algorithm 1.

Algorithm 1: Lawson’s optimization method (LOP) |

**Order-k Delaunay LOP (k-OD LOP).**The modifications needed for LOP to handle HODTs are simple. Following the terminology in Algorithm 1, we can define a locally k-OD optimal triangulation as follows. We say that an edge e of $\mathcal{T}$ is

**locally k-OD optimal**if: (i) e is not flippable, or (ii) e is flippable and flipping e does not improve the triangulation, i.e., $C\left(\mathcal{T}\right)\le C\left({\mathcal{T}}^{\prime}\right)$, or produces a triangle with order larger than k. Analogously, we say that the triangulation $\mathcal{T}$ is

**locally k-OD optimal**if all of its edges are locally k-OD optimal. See Algorithm 2.

Algorithm 2: Lawson’s optimization method for HODTs (k-OD LOP) |

**Standard k-OD LOP (LOP-0):**${\mathcal{T}}^{0}$ is the Delaunay triangulation.**Incremental k-OD LOP (LOP-INC):**${\mathcal{T}}^{0}$ is the result of the previous run for maximum order $k-1$ (or the largest available maximum order if k = inf).

**Exact algorithm for $k=1$.**This work also includes an implementation of the exact algorithm presented in [14] for first order Delaunay Triangulations. The method works for MinMax criteria that are functions of pairs of adjacent triangles (such as the three measures studied in this paper). The algorithm is based on identifying all Delaunay edges that must be present in all order-1 Delaunay triangulations. These form a subdivision of the convex hull of the set of points into triangles and quadrilaterals, such that any order-1 Delaunay triangulation can be produced by choosing one of the two diagonals for each quadrilateral. In [14], it was shown that exact solutions for measures like ABN, JND, and WABN (that are local to pairs of adjacent triangles) can be found by solving a series of instances of the boolean satisfiability problem (2-SAT), which can be solved in time proportional to the number of quadrilaterals. In our implementation, we used the http://minisat.se/ to solve the 2-SAT instances.

**Exact algorithm prioritizing DT edges (1-exact-DT):**Implementation of the exact algorithm for first order Delaunay Triangulations from [14] modified to prioritize Delaunay edges. In particular, the algorithm proceeds as in 1-exact-KLS until obtaining the final solution given by the last 2-SAT instance solved. After that, we find all flipped edges with respect to the Delaunay triangulation and revert all the flips that do not worsen the max value of the optimal triangulation. In this way, all flips that are not necessary to optimize the value are avoided, keeping as many Delaunay edges as possible.

#### 3.3. Research Design

**Point set size n.**For each DEM, we produced two sample points using ArcGIS 10 raster to multipoint tool, containing 1% and 3% of the original data points, respectively (with roughly 1700 and 5100 points, resp.; these sizes are comparable to two of the ones used in [4]).**Maximum order k.**A total of 23 different values for the maximum order k were tested, in three groups. (i) Fixed k: the order the triangulation is at most a fixed value k, for $k=0,1,2,...,20$. The optimization method consisted on two variants of k-OD LOP (presented in Section 3.2). (ii) $k=inf$: the order of the triangulation is not constrained. The optimization method is LOP. That is, a flip is performed every time the measure improves, until the triangulation does not change anymore. This comes down to the pure data-dependent triangulation method originally proposed by Dyn et al. [1]. (iii) $k=1$, exact algorithm: implementation of two variants of the exact algorithm in [14], described in Section 3.2.**Criteria analysis and selection.**Based on the study of previous literature on different criteria (see Section 2.1), we selected three data-dependent criteria to be tested: ABN, JND, and WABN. The first two are the most mentioned data-dependent criteria in the context of terrain interpolation (e.g., see [1,2,3,4,5,6]), while WABN is a simple variation of ABN that addresses explicitly the presence of slivers, thus it seemed appropriate to include it in this comparison.

## 4. Results

#### 4.1. Maximum Value

#### 4.2. Quality of Approximation

#### 4.3. Presence of Slivers in HODTs

#### 4.4. Comparison between Heuristic and Exact Algorithm for k = 1

#### 4.5. Running Time for $k>1$

#### 4.6. Comparison between ABN, WABN and JND

## 5. Conclusions

- a lower final order of triangulations,
- fewer flips,
- monotonically decreasing values,
- and—probably the most important difference—considerably faster.

## Acknowledgments

## Author Contributions

## Conflicts of Interest

## References

- Dyn, N.; Levin, D.; Rippa, S. Data dependent triangulations for piecewise linear interpolation. IMA J. Numer. Anal.
**1990**, 10, 137–154. [Google Scholar] [CrossRef] - Alboul, L.; Kloosterman, G.; Traas, C.; van Damme, R. Best data-dependent triangulations. J. Comput. Appl. Math.
**2000**, 119, 1–12. [Google Scholar] [CrossRef] - Brown, J. Vertex based data dependent triangulations. Comput. Aided Geom. Des.
**1991**, 8, 239–251. [Google Scholar] [CrossRef] - Wang, K.; Lo, C.P.; Brook, G.A.; Arabnia, H.R. Comparison of existing triangulation methods for regularly and irregularly spaced height fields. Int. J. Geogr. Inf. Sci.
**2001**, 15, 743–762. [Google Scholar] [CrossRef] - Weisz, J.; Bodnar, R. A refined angle between normals criterion for scattered data interpolation. Comput. Math. Appl.
**2001**, 41, 531–534. [Google Scholar] [CrossRef] - Garland, M.; Heckbert, P.S. Fast Polygonal Approximation of Terrains and Height Fields; Technical Report CMU-CS-95-181; Carnegie Mellon University: Pittsburgh, PA, USA, 1995. [Google Scholar]
- Gudmundsson, J.; Hammar, M.; van Kreveld, M. Higher Order Delaunay Triangulations. Comput. Geom. Theory Appl.
**2002**, 4, 85–98. [Google Scholar] [CrossRef] - Mitsche, D.; Saumell, M.; Silveira, R.I. On the number of higher order Delaunay triangulations. Theor. Comput. Sci.
**2011**, 412, 3589–3597. [Google Scholar] [CrossRef] - Abe, Y.; Okamoto, Y. On Algorithmic Enumeration of Higher-Order Delaunay Triangulations. In Proceedings of the 11th Japan-Korea Joint Workshop on Algorithms and Computation, Seoul, Korea, 19–20 July 2008. [Google Scholar]
- Biniaz, A.; Dastghaibyfard, G. Drainage reality in terrains with higher-order Delaunay triangulations. In Advances in 3D Geoinformation Systems; van Oosterom, P., Zlatanova, S., Penninga, F., Fendel, E.M., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; pp. 199–211. [Google Scholar]
- Biniaz, A.; Dastghaibyfard, G. Slope Fidelity in Terrains with Higher-Order Delaunay Triangulations. In Proceedings of the 16th International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision, Plzen, Czech Republic, 4–7 February 2008; pp. 17–23. [Google Scholar]
- De Kok, T.; van Kreveld, M.; Löffler, M. Generating Realistic Terrains with Higher-Order Delaunay Triangulations. Algorithms
**2005**, 3669, 85–98. [Google Scholar] - Lawson, C.L. Mathematical Software III; Software for C1 surface interpolation; Academic Press: New York, NY, USA, 1977; pp. 161–194. [Google Scholar]
- Van Kreveld, M.; Löffler, M.; Silveira, R.I. Optimization for first order Delaunay triangulations. Comput. Geom.
**2010**, 43, 377–394. [Google Scholar] [CrossRef] - Rippa, S. Long and thin triangles can be good for linear interpolation. SIAM J. Numer. Anal.
**1992**, 29, 257–270. [Google Scholar] [CrossRef] - Hjelle, O.; Daehlen, M. Triangulations and Applications; Springer-Verlag Inc.: Secaucus, NJ, USA, 2006. [Google Scholar]
- Reparaz, M.; Rodriguez, N. Higher Order Delaunay Triangulations in Practice. Master’s Thesis, Universidad de Buenos Aires, Buenos Aires, Argentina, 2014. [Google Scholar]
- Schumaker, L.L. Computing optimal triangulations using simulated annealing. Comput. Aided Geom. Des.
**1993**, 10, 329–345. [Google Scholar] [CrossRef] - Kreylos, O.; Hamann, B. On Simulated Annealing and the Construction of Linear Spline Approximations for Scattered Data. IEEE Trans. Vis. Comput. Graph.
**2001**, 7, 17–31. [Google Scholar] [CrossRef] - Kolingerová, I.; Ferko, A. Multicriteria-optimized triangulations. Vis. Comput.
**2001**, 17, 380–395. [Google Scholar] [CrossRef]

**Figure 1.**Three higher order Delaunay triangulations of the same set of points, with three different orders: $k=0$ (

**left**), $k=1$ (

**center**), and $k=2$ (

**right**). Order-1 edges shown in orange, order-1 triangles shown in light green, order-2 triangles shown in dark green.

**Figure 2.**The geometric information of the $neighborhood$ of ${e}_{i}$ that is often used to define the cost functions. The edge ${e}_{i}$ is the diagonal of the convex quadrilateral defined by two triangles ${t}_{1}$ and ${t}_{2}$. ${Q}_{1}(x,y)$ and ${Q}_{2}(x,y)$ are the planes defined by ${t}_{1}$ and ${t}_{2}$, with normal vectors ${n}_{1}$ and ${n}_{2}$. The vector n is a 2D unit vector orthogonal to the projection of ${e}_{i}$ in the plane $(x,y)$. Based on a figure from [16].

**Figure 3.**Terrains used in the experiments. (

**a**)

**Kinzel Springs**, Tennessee: 35.75 N, 35.625 S, −83.875 W, −83.75 E; (

**b**)

**Moorehead SE**, Iowa: 41.875 N, 41.75 S, −95.875 W, −95.75 E.

**Figure 4.**Minimization of maximum value for Kinzel Springs (

**left**) and Moorehead SE (

**right**) as the maximum order k increases. In each column, from top to bottom: ABN, WABN and JND. Numbers indicate the final order. * Maximum value for 1-exact-KLS, 1-exact-DT, LOP-0 $k=1$ and LOP-INC $k=1$ coincide. Therefore, and w.l.o.g., such value is referred as $k=1$.

**Figure 5.**RMSE evaluation for Kinzel Springs (

**left**) and Moorehead SE (

**right**) over 1% sample point set as the maximum order k increases. In each column, from top to bottom: ABN, WABN and JND. Numbers indicate the final order.

**Figure 6.**RMSE evaluation for Kinzel Springs (

**left**) and Moorehead SE (

**right**) over 3% sample point set as the maximum order k increases. In each column, from top to bottom: ABN, WABN and JND. Numbers indicate the final order.

**Figure 7.**Running times of 1-exact-DT, 1-exact-KLS and LOP-0 for Kinzel Springs and Moorehead SE for 1% (

**left**) and 3% (

**right**) sample sets with $k=1$, for ABN, JND and WABN.

**Figure 8.**Running times for Kinzel Springs (left) and Moorehead SE (right) for 1% sample set size as the maximum order k increases, for ABN, WABN and JND. * Analysis for the exact algorithms is presented in Section 4.4; thus, results for those algorithms are not exhibited here.

**Figure 9.**Running times for Kinzel Springs (left) and Moorehead SE (right) for 3% sample set size as the maximum order k increases, for ABN, WABN and JND. * Analysis for the exact algorithms is presented in Section 4.4; thus, results for those algorithms are not exhibited here.

**Figure 10.**Average aspect ratio comparison between all criteria for Kinzel Springs (

**left**) and Moorehead SE (

**right**) as the maximum order k increases (excluding exact algorithms). In each column, from top to bottom: 1% and 3%.

**Table 1.**Minimization of maximum ABN value for Kinzel Springs and Moorehead SE, over 3% sample point set using LOP—0, 1-exact—KLS and 1-exact-DT.

Max k | Kinzel Springs | Moorehead SE | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|

Final k | RMSE | ABN | Time mm:ss | avg Aspect Ratio | # Flips | Final k | RMSE | ABN | Time mm:ss | avg Aspect Ratio | # Flips | |

0 | 0 | 24.5919 | 94.9051 | 00:00 | 2.71765 | 0 | 0 | 12.3059 | 63.56 | 00:00 | 3.54948 | 0 |

1 | 1 | 24.5919 | 87.9388 | 00:26 | 2.71731 | 1 | 1 | 12.3059 | 52.7564 | 00:28 | 3.54976 | 1 |

1-exact-KLS | 1 | 24.6173 | 87.9388 | 00:09 | 2.82878 | 1388 | 1 | 12.3138 | 52.7564 | 00:07 | 3.7289 | 1009 |

1-exact-DT | 1 | 24.5919 | 87.9388 | 00:15 | 2.71731 | 1 | 1 | 12.3059 | 52.7564 | 00:11 | 3.54976 | 1 |

2 | 1 | 24.5919 | 87.9388 | 00:43 | 2.71731 | 1 | 2 | 12.3059 | 44.2164 | 01:31 | 3.55185 | 6 |

3 | 3 | 24.592 | 78.1171 | 01:42 | 2.71753 | 4 | 3 | 12.3059 | 43.1123 | 02:46 | 3.55287 | 9 |

4 | 3 | 24.592 | 78.1171 | 01:54 | 2.71753 | 4 | 3 | 12.3059 | 43.1123 | 03:06 | 3.55267 | 9 |

5 | 3 | 24.592 | 78.1171 | 02:02 | 2.71753 | 4 | 5 | 12.3059 | 41.7053 | 03:53 | 3.55332 | 11 |

6 | 3 | 24.592 | 78.1171 | 02:09 | 2.71753 | 4 | 5 | 12.3059 | 41.7053 | 03:35 | 3.55332 | 11 |

7 | 3 | 24.592 | 78.1171 | 02:14 | 2.71753 | 4 | 5 | 12.3059 | 41.7053 | 04:26 | 3.55332 | 11 |

8 | 3 | 24.592 | 78.1171 | 02:19 | 2.71753 | 4 | 5 | 12.3059 | 41.7053 | 03:49 | 3.55332 | 11 |

9 | 3 | 24.592 | 78.1171 | 02:21 | 2.71753 | 4 | 5 | 12.3059 | 41.7053 | 04:39 | 3.55332 | 11 |

10 | 10 | 24.5752 | 75.1486 | 02:59 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 03:53 | 3.55492 | 11 |

11 | 10 | 24.5752 | 75.1486 | 03:02 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 03:56 | 3.55492 | 11 |

12 | 10 | 24.5752 | 75.1486 | 03:05 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:04 | 3.55512 | 11 |

13 | 10 | 24.5752 | 75.1486 | 03:06 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:03 | 3.55492 | 11 |

14 | 10 | 24.5752 | 75.1486 | 03:08 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:07 | 3.55492 | 11 |

15 | 10 | 24.5752 | 75.1486 | 03:10 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:08 | 3.55492 | 11 |

16 | 10 | 24.5752 | 75.1486 | 03:11 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:12 | 3.55492 | 11 |

17 | 10 | 24.5752 | 75.1486 | 03:13 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:13 | 3.55492 | 11 |

18 | 10 | 24.5752 | 75.1486 | 03:14 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:14 | 3.55492 | 11 |

19 | 10 | 24.5752 | 75.1486 | 03:22 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:12 | 3.55492 | 11 |

20 | 10 | 24.5752 | 75.1486 | 03:19 | 2.71815 | 9 | 10 | 12.3059 | 41.7053 | 04:17 | 3.55492 | 11 |

$inf$ | 118 | 24.6368 | 69.0082 | 06:21 | 2.72617 | 17 | 38 | 12.3062 | 39.3558 | 08:23 | 3.55937 | 16 |

**Table 2.**Number of flips performed for Kinzel Springs and Moorehead SE, over 1% and 3% sample point sets 1-exact-KLS and 1-exact-DT.

Terrain-Criteria Sample Size | 1-Exact-KLS | 1-Exact-DT | ||
---|---|---|---|---|

# Flips | Avg Aspect Ratio | # Flips | Avg Aspect Ratio | |

KS-ABN 1% | 621 | 3.36967 | 2 | 3.02639 |

KS-ABN 3% | 1388 | 2.82878 | 1 | 2.71731 |

KS-JND 1% | 622 | 3.37215 | 1 | 3.02639 |

KS-JND 3% | 1388 | 2.92940 | 1 | 2.71731 |

KS-WABN 1% | 96 | 3.08753 | 0 | 3.02668 |

KS-WABN 3% | 1088 | 2.88394 | 0 | 2.71765 |

MH-ABN 1% | 376 | 4.64922 | 2 | 4.37547 |

MH-ABN 3% | 1009 | 3.72890 | 1 | 3.54976 |

MH-JND 1% | 449 | 4.69868 | 3 | 4.37550 |

MH-JND 3% | 1010 | 3.73022 | 1 | 3.54976 |

MH-WABN 1% | 585 | 4.83850 | 0 | 4.37653 |

MH-WABN 3% | 136 | 3.58085 | 0 | 3.54948 |

© 2017 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Rodríguez, N.; Silveira, R.I.
Implementing Data-Dependent Triangulations with Higher Order Delaunay Triangulations. *ISPRS Int. J. Geo-Inf.* **2017**, *6*, 390.
https://doi.org/10.3390/ijgi6120390

**AMA Style**

Rodríguez N, Silveira RI.
Implementing Data-Dependent Triangulations with Higher Order Delaunay Triangulations. *ISPRS International Journal of Geo-Information*. 2017; 6(12):390.
https://doi.org/10.3390/ijgi6120390

**Chicago/Turabian Style**

Rodríguez, Natalia, and Rodrigo I. Silveira.
2017. "Implementing Data-Dependent Triangulations with Higher Order Delaunay Triangulations" *ISPRS International Journal of Geo-Information* 6, no. 12: 390.
https://doi.org/10.3390/ijgi6120390