Tenemos características de datos de encuestas que contienen información parcial en 3D.
El ejemplo más común sería un LineString 2D que representa una carretera, que contiene información de elevación en ciertos puntos donde se encuestó. Otros ejemplos incluyen formas de techo: un MultiLineString donde algunos puntos clave tienen una elevación asignada desde el plano del edificio, pero no todos.
Usando PostGIS, ¿qué modelo de datos recomendaría para almacenar este tipo de información, para mantenerla lo más accesible posible, sin perder o generar información interpolada?
Respuestas:
Puede almacenar los valores Z no medidos como
'nan'::float8
. Por ejemplo:Sin embargo, esto podría meterlo en problemas ya que los valores de NaN no siempre son probados o manejados por los desarrolladores de software. Por ejemplo, PostGIS no puede analizar la versión WKT de lo anterior
fuente
Cree una columna de geometría secundaria con tres dimensiones para contener los vértices de la cadena lineal que tiene los valores de tres ordenadas (triples). Para que este esquema funcione, se asumen los siguientes supuestos:
La geometría válida debería ser suficiente para no permitir puntos duplicados en cadenas lineales y sin auto intersección. Por lo tanto, cada coordenada se comportará como una clave primaria para identificar el vértice en la geometría de origen.
Esto también es correcto a partir del modelo relacional:
Para el caso de multilínea, las cosas pueden ser un poco más difíciles ya que ahora debe tener una tabla adicional con una clave primaria compuesta:
La clave principal anterior evitará la inserción de índices de geometría duplicados para una geometría dada. El disparador / verificación evitará índices no válidos. También las filas aquí deben ser de datos de origen dada la clave externa. Se aplican todas las reglas anteriores.
Una simplificación sería el uso de una columna adicional, pero no de geometría amable, sino del mismo tipo de valor Z declarado como matriz.
fuente