# Spatio-Temporal Data Construction

## Abstract

**:**

## 1. Introduction

_{i}, t

_{i}

_{+ 1}] from two input data models at time t

_{i}and time t

_{i}

_{+ 1}. This paper is motivated by the requirement of capturing data for a spatio-temporal geoscience information system with the capability of processing and answering queries, such as: “Given a location (geo-object at a specified location) and properties, such as temperature and pressure, for what period(s) of time was the geo-object exposed to the location and the properties?” or “What are the geometry and properties of a geo-object at a given time?”

## 2. Related Work

**-**line segments of the corresponding vertices. M.S. Floater used convex combinations for trajectories [6]. Finding trajectories by moving a rigid shape (or as rigid as possible) is described in [14,16]. Using strain fields to choose trajectories is described in [15]. In our algorithm, the finding trajectories’ sub-procedure is built on the convex combination method, as described in [6], with the assumption that intermediate surfaces have a “combinatorial” property, i.e., every interior vertex can be represented as a convex combination of its neighbor.

## 3. Methodology

^{3}. Methods to represent a mesh have been developed, with examples described in [10]. In short, we consider a mesh to be a pair of a sequence of its vertices and its topology, M = (V,T). V is a sequence of n distinct points, v

_{i}= (x

_{i},y

_{i},z

_{i}) in ℝ

^{3}. V can also be considered a map from the index set, I = {1…n} to ℝ

^{3}, where V(i) = v

_{i}for all i = 1, …, n. T is the topology or the structure of the mesh entirely defined on the index set, I. The topology defines the set of triangles or faces, the set of edges, the set of boundaries and the set of interior/boundary vertices of the mesh.

_{i}, t

_{i}

_{+ 1}], from data at time instances, t

_{i}and t

_{i}

_{+ 1}, by smoothly changing a source mesh into a target mesh. Choosing data at t

_{i}as the source mesh and data at t

_{i}

_{+ 1}as the target mesh, or vice versa, depends on the user. However, our algorithm is designed in a way that it will become faster (because cutting paths are not required in the target mesh) when the more complicated mesh is chosen as the source mesh. We always denote the source mesh as M

_{s}and the target mesh as M

_{t}. The following paragraphs define some of the special terms used in the paper.

_{i}∈ V. A path in mesh M(V,T) is a sequence (ν

_{p}

_{1}, ν

_{p}

_{2}, …, ν

_{ph}), where p

_{i}∈ I and [ν

_{pi}, ν

_{pi}

_{+ 1}] is an edge of M for all i = 1, …, h − 1. A Boundary path is a path in which all of its vertices are in the boundaries. The cutting path and fence path are paths used in the cutting procedure and the partition procedure, respectively.

_{MI}), max(dist(x,M),:x ∈ V

_{NI})), where V

_{MI}is a set of interior vertices of M, V

_{NI}is a set of interior vertices of N and dist(x,L) (the distance between a point, p, and a mesh, L) is the minimum distance between the point, p, and those in L. Note that in this term, we consider only interior vertices, not boundary vertices.

**Definition 1.**Two meshes, M(V,T) and N(U,G), are compatible, if (i) V and U have the same total number of vertices and they are corresponding in their order, i.e., a trivial map, h, exists, such that h(v

_{i}) = u

_{i}for all i = 1, …, n; and (ii) T = G.

**Definition 2.**Given m ≥ 2 and an n-vertices mesh, M(V,T), trajectories of the mesh, M(V,T), that represent its continuous evolution into its compatible mesh, N(U,T), are n distinct line strings, such that for each line string, m vertices exist, i.e., the ith line string, , and , for all i = 1, …, n.

**Definition 3.**Given m ≥ 2, an n-vertices mesh, M(V,T) and its compatible mesh, N(U,T), linear trajectories of the mesh, M(V,T), are trajectories of M, where each vertex of a trajectory, , is defined as for all i = 1, …, n; j = 1, …, m.

#### 3.1. Cutting

**Figure 2.**Cutting meshes by cutting paths. (

**a**) All vertices and edges are duplicated. (

**b**) All vertices and edges, except for a one-end vertex, are duplicated. (

**c**) All vertices and edges, except for two-end vertices, are duplicated.

_{s}and M

_{t}as the source mesh and the target mesh, respectively.

#### 3.2. Setting up Constraints

_{c}and W

_{c}, respectively, such that they deduce control vertex pairs by their order, i.e., (v

_{c,i}, w

_{c,i}) is a control vertex pair. Fence paths are used to alter cutting paths in the target mesh or to partition the source mesh and the target mesh into patches that are homeomorphic to disks. Fence paths are required to connect exactly two control vertices, for example, a fence path with h vertices in the source mesh, M

_{s}, p(ν

_{p}

_{1}, ν

_{p}

_{2}, …, ν

_{ph}), satisfies the following conditions: v

_{p}

_{1}, v

_{ph}∈ V

_{c}and v

_{pi}∉ V

_{c}for all i = 2, …, h − 1. All fence paths of the source mesh or target mesh cut each other only at their end vertices. Figure 3 depicts an example of control vertices, control vertex pairs (by corresponding order) and fence paths.

#### 3.3. Partition

**,**dividing both the source mesh and the target mesh into patches by fence paths and their boundaries.

_{s}and M

_{t}are partitioned into the same number of patches, k. If this condition is not satisfied, all of the above steps need to be repeated to set up more fence paths. This condition can be satisfied for any type of mesh through the set of user-defined fence paths. Discovery of the corresponding patches is accomplished by identifying the control vertices and their order in each patch. The result of this step is a set of patch pairs (P

_{i,s}, P

_{i,t}) for all i in {1…k}. Once again, if such a set of patch pairs is not found, all of the above steps are repeated. The cause of this failure is the lack of correspondence between the control vertices. This step will be successful if the control vertices and their order are correct.

#### 3.4. Calculating

_{s}, L

_{t}). This procedure contains two sub-procedures: calculating the cross-parameterization (or constructing compatible meshes) sub-procedure and the finding trajectories sub-procedure.

#### 3.5. Calculating Cross-Parameterization or Constructing Compatible Meshes

_{s}(V,T), L

_{t}(W,F), both are homeomorphic to disks. Let I

_{cs}= (i

_{cs}

_{,1}…i

_{cs,k}) and I

_{ct}= (i

_{ct}

_{,1}…i

_{ct,k}) be index sequences of k, k ≥ 3, with distinct control vertices in L

_{s}and L

_{t}, respectively; additionally, a correspondence exists between the index sequences by their order. All control vertices are in the boundary of their meshes and are in a clockwise or counterclockwise order. To construct compatible meshes, we first find a bijection between the two meshes and, then, construct a new mesh using this map.

_{p}

_{1}, ν

_{p}

_{2}, …, ν

_{ph}), with h vertices to a segment. s(x

_{1}, x

_{2}). of the unit regular k-polygon. This method is defined by the following formula: f(ν

_{p}

_{1}) = x

_{1}; for all i in 2, …, h, where .

_{s}and f

_{t}, from L

_{s}and L

_{t}, respectively, to this unit regular k-polygon. The composition map, f = f

_{t}

^{−1}× f

_{s}, is a bijection from L

_{s}to L

_{t}. Figure 6 displays an example of these parameterizations.

_{st}, by a set of its vertices, which is an image of V through f, U = f(V), and the topology, T, of L

_{s}, i.e., L

_{st}(U,T). Note that L

_{st}is a compatible mesh of L

_{s}; all of its vertices are on L

_{t}, and it is an approximate mesh of L

_{t}. We require that L

_{st}is a “good” approximation of L

_{t}, i.e., the error between L

_{st}and L

_{t}is smaller than the user’s threshold. Because all of the vertices of L

_{st}are on L

_{t}, the distance from every vertex of L

_{st}to L

_{t}is zero. Therefore, the error between L

_{st}and L

_{t}is the maximum of the distances from the interior vertices of L

_{t}to L

_{st}, as shown in the definition of terms. To obtain a smaller error than the user’s threshold, we complete the following procedures. For each interior vertex, w

_{i}, of the target mesh, L

_{t}(W,F), if the distance, d

_{i}, from w

_{i}to the mesh, L

_{st}(U,T), is greater than the user’s threshold, ɛ, and the triangle (v

_{i},v

_{j},v

_{h}) contains a point, p, where ||w

_{i},p||=d

_{i}, we subdivide a triangle (v

_{i},v

_{j},v

_{h}) into three triangles by inserting a new point at its centroid and updating L

_{s}(clearly, the error between the old L

_{s}and the updated L

_{s}is zero, so for clarity, we still denote the updated mesh by L

_{s}(V,T)). Figure 7 presents an example of this subdivision. If such a modification has been completed, then the new mesh, L

_{st}, would need to be constructed and checked for error again. Notice that this subdivision reduces the error between L

_{t}and L

_{st}and does not affect other patches.

**Figure 7.**Splitting a triangle (v

_{i},v

_{j},v

_{h}) into three new triangles, (v

_{i},v

_{j},v

_{c}), (v

_{j},v

_{h},v

_{c}), (v

_{h},v

_{i},v

_{c}), by inserting a new point, v

_{c}, at the centroid of triangle (v

_{i},v

_{j},v

_{h}).

_{s}(V,T) and L

_{st}(U,T) are compatible meshes, and the error between L

_{st}and L

_{t}is smaller than the threshold, ɛ. This mesh pair can be represented by the mesh, L

_{s}(V,T), and a sequence of displacement vectors, where each displacement vector is the difference of a vertex, u, in U and its corresponding vertex, v, in V.

#### 3.6. Finding Trajectories

_{s}(V,T), where V = (v

_{1}, v

_{2}, …, v

_{n}) is a sequence of n vertices, let m, the number of vertices of each trajectories, be a user-defined integer, m ≥ 2. By using attaching constraints, the vertices set, V, of L

_{s}can be subdivided into disjoint subsets:

_{I}is the set of interior vertices, V

_{B}

_{0}is the set of boundary vertices without attaching constraints, V

_{B}

_{1}is the set of boundary vertices with 1-controlling surface attaching constraints and V

_{B}

_{2}is the set of boundary vertices with 2-controlling surface attaching constraints.

_{B}

_{0}, V

_{B}

_{1}and V

_{B}

_{2}are initialized by connecting the vertices of V

_{B}

_{0}, V

_{B}

_{1}and V

_{B}

_{2}to their corresponding vertices to create line segments. Then, we subdivide these line segments into m − 1 equal length sub-segments, i.e., linear trajectories are constructed for each boundary. Subsequently, trajectories of vertices in V

_{B}

_{1}are modified by replacing their vertices with their projection into controlling surfaces; the trajectory of each vertex in V

_{B}

_{2}is modified by changing its vertices to its projection into the curve, which is the intersection of the two controlling surfaces of the vertex.

_{I}by calculating m − 2 intermediate meshes when the mesh, L

_{s}(V,T), evolves into its corresponding mesh, L

_{st}(U,T). We label L

_{s}with L

^{1}, L

_{st}with L

^{m}and intermediate meshes with L

^{t}for each t = 2, …, m − 1. The boundary of the mesh, L

^{t}, is defined by trajectories of vertices in V

_{B}

_{0}, V

_{B}

_{1}and V

_{B}

_{2}. We also assume that each interior vertex of L

^{t}is a convex combination of its neighbors as follows. Let N(i) be the set of vertex indices of the neighborhood of vertex , and let I

_{I}be the index set of V

_{I}. A set of non-negative real values, , exists, such that:

_{I}:

^{1}, L

^{m}, as in Equation (2):

^{1}and L

^{m}using the mean value as described in [7] with Equation (3) and notations in Figure 8.

_{j}

_{−1}, α

_{j}≤ π, λ

_{ij}in Equation (3) is defined and non-negative, in Equation (2) is non-negative for each t = 2, …, m − 1. Equation (1) gives a sparse linear system of equations, which can be solved sufficiently by a solver, such as OpenNL [20] or Eigen [21]. This system of equations has a unique solution, provided in [8,9]. Because of the unique solution, all trajectories of L have been defined.

_{i}is trivial. Such mesh representations include G-Maps, C-Maps, Cell-Tuple-Structure, Halfedge data structure, etc.

## 4. Software and Experiments

**Figure 13.**Given data at six time instances. (

**a**) t = 5, (

**b**) t = 4, (

**c**) t = 3, (

**d**) t = 2, (

**e**) t = 1, (

**f**) t = 0.

## 5. Discussion and Conclusions

- (1)
- Introduction of a new method for construction of spatio-temporal data in the geosciences.
- (2)
- Implementation of the algorithm as a gOcad plug-in.
- (3)
- Experimentation with some samples.

## Acknowledgments

## Conflicts of Interest

## References

- Le, H.H.; Gabriel, P.; Gietzel, J.; Schaeben, H. An object-relational spatio-temporal geoscience data model. Comput. Geosci.
**2013**, 57, 104–115. [Google Scholar] [CrossRef] - Iwanowski, M.; Serra, J. Morphological Interpolation and Color Images. In Proceedings of the 10th International Conference on Image Analysis and Processing ICIAP’99, Venice, Italy, 27–29 September 1999; IEEE Computer Society: Washington, DC, USA, 1999; pp. 50–55. [Google Scholar]
- Sirakov, N.M.; Granado, I.; Muge, F.H. Interpolation approach for 3D smooth reconstruction of subsurface objects. Comput. Geosci.
**2002**, 28, 877–885. [Google Scholar] [CrossRef] - Mouravliansky, N.; Matsopoulos, G.K.; Delibasis, K.; Asvestas, P.; Nikita, K.S. Combining a morphological interpolation approach with a surface reconstruction method for the 3-D representation of tomographic data. J. Vis. Commun. Image R.
**2004**, 15, 565–579. [Google Scholar] [CrossRef] - Kels, S.; Dyn, N. Reconstruction of 3D objects from 2D cross-sections with the 4-point subdivision scheme adapted to sets. Comput. Graph.
**2011**, 35, 741–746. [Google Scholar] [CrossRef] - Floater, M.S.; Gotsman, C. How to morph tilings injectively. J. Comput. Appl. Math.
**1999**, 101, 117–129. [Google Scholar] [CrossRef] - Floater, M.S. Mean value coordinates. Comput. Aided Geom. Des.
**2003**, 20, 19–27. [Google Scholar] [CrossRef] - Floater, M.S. Parametric tilings and scattered data approximation. Int. J. Shape Model.
**1998**, 4, 165–182. [Google Scholar] [CrossRef] - Floater, M.S. Parametrization and smooth approximation of surface triangulations. Comput. Aided Geom. Des.
**1997**, 14, 231–250. [Google Scholar] [CrossRef] - Botsch, M.; Kobbelt, L.; Pauly, M.; Alliez, P.; Lévy, B. Polygon Mesh Processing; A K Peters, Ltd.: Natick, MA, USA, 2010; pp. 1–230. [Google Scholar]
- Hormann, K.; Polthier, K.; Sheffer, A. Mesh Parameterization: Theory and Practice. In SIGGRAPH Asia 2008 Course Notes; ACM Press: Singapore, 2008; pp. 1–87. [Google Scholar]
- Lipman, Y.; Levin, D.; Cohen-Or, D. Green coordinates. ACM Trans. Graph.
**2008**, 27, 1–10. [Google Scholar] [CrossRef] - Li, X.; Gu, X.; Qin, H. Surface mapping using consistent pants decomposition. IEEE Trans. Vis. Comput. Graph.
**2009**, 15, 558–571. [Google Scholar] [CrossRef] - Liu, Y.S.; Yan, H.B.; Martin, R. As-rigid-as-possible surface morphing. J. Comput. Sci. Technol.
**2011**, 26, 548–557. [Google Scholar] [CrossRef] - Yan, H.B.; Hu, S.M.; Martin, R. 3D morphing using strain field interpolation. J. Comput. Sci. Technol.
**2007**, 22, 147–155. [Google Scholar] [CrossRef] - Alexa, M.; Cohen-Or, D.; Levin, D. As-Rigid-As-Possible Shape Interpolation. In Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’00), New Orleans, LA, USA, 23–28 July 2000; ACM Press: New York, NY, USA, 2000; pp. 157–164. [Google Scholar]
- Van Kaick, O.; Zhang, H.; Hamarneh, G.; Cohen-Or, D. A survey on shape correspondence. Comput. Graph. Forum
**2011**, 30, 1681–1707. [Google Scholar] [CrossRef] - Kraevoy, V.; Sheffer, A. Cross-parameterization and compatible remeshing of 3D models. ACM Trans. Graph.
**2004**, 23, 861–869. [Google Scholar] [CrossRef] - Praun, E.; Sweldens, W.; Schröder, P. Consistent Mesh Parameterizations. In Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’01), Los Angleles, CA, USA, 12–17 August 2001; ACM Press: New York, NY, USA, 2001; pp. 179–184. [Google Scholar]
- OpenNL. Open Numerical Library. Available online: http://alice.loria.fr/index.php/software/4-library/23-opennl.html (accessed on 20 July 2013).
- Eigen. Eigen v3. Available online: http://eigen.tuxfamily.org (accessed on 20 July 2013).
- Boost. Boost C++ Libraries. Available online: http://www.boost.org (accessed on 20 July 2013).
- CGAL. Computational Geometry Algorithms Library. Available online: http://www.cgal.org/ (accessed on 20 July 2013).

© 2013 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 license (http://creativecommons.org/licenses/by/3.0/).

## Share and Cite

**MDPI and ACS Style**

Le, H.H. Spatio-Temporal Data Construction. *ISPRS Int. J. Geo-Inf.* **2013**, *2*, 837-853.
https://doi.org/10.3390/ijgi2030837

**AMA Style**

Le HH. Spatio-Temporal Data Construction. *ISPRS International Journal of Geo-Information*. 2013; 2(3):837-853.
https://doi.org/10.3390/ijgi2030837

**Chicago/Turabian Style**

Le, Hai Ha. 2013. "Spatio-Temporal Data Construction" *ISPRS International Journal of Geo-Information* 2, no. 3: 837-853.
https://doi.org/10.3390/ijgi2030837