[Spanish] Almacenamiento y visualizacion de datos geotemporales
Iván Sánchez Ortega
ivan at sanchezortega.es
Tue Mar 31 12:04:13 PDT 2015
El Martes, 31 de marzo de 2015 17:07:21 Alegre, Raquel escribió:
> [...] se me ocurrió que seria mejor hacer una entrada por recorrido de
> barco, y que la geometría fuese una linea describiendo el recorrido, en vez
> de guardar cada punto individualmente.Así habría muchas menos entradas, y
> las queries serian mas rápidas (imagino).
Optimización prematura.
No soluciones un problema que todavía no tienes. Antes de ponerte a diseñar e
implementar, haz pruebas.
> Un recorrido "normal" en esta base de datos tiene unos 8000 puntos, así que
> hay 8000 entradas con los mismos datos del barco repetidos en cada entrada,
> solo cambia el valor de la geometría y del timestamp.
Pues te creas una tabla con la info de los barcos, clave foránea a los pares
posición-tiempo, y p'alante.
Recuerda las formas normales de BBDD, y recuerda procesar los datos para tener
una tabla, o una vista materializada, de los datos que el cliente use en
última instancia. A lo mejor necesitas tener una tabla (o un esquema entero)
para datos AIS en bruto, uno intermedio donde guardas los datos logueados
quitando aberraciones, y uno para servir datos a la interfaz. Es normal que
con un sólo modelo de datos no puedas solucionar todos los problemas.
> [...] extensiones temporales de PostGIS, pero llevan sin actualizar anhos,
> así que no se si son fiables, o si habra algo que la gente use normalmente
> para este tipo de representaciones (puntos + timestamp).
Si *realmente* quieres almacenar el tiempo en la geometría, entonces puedes
utilizar las capacidades multi-dimensionales de PostGIS. Una geometría puede
tener dos (X,Y), tres (X,Y,Z ó X,Y,M) o cuatro (X,Y,Z,M) dimensiones para cada
punto. Siempre puedes utilizar la M (que habitualmente se usa para una
distancia desde un punto de origen a un punto dentro de la geometría) para
almacenar el tiempo.
El usar la coordenada M te permite interpolar el valor a lo largo de líneas
(se usa muuuucho para puntos kilométricos en carreteras), pero ten en cuenta
que esto sólo te va a ser útil si tus barcos tienen velocidades y rumbos
constantes. Necesitarás hacer un preproceso gordo si quieres usar esto, y
recuerda que es muy posible que leaflet/openlayers trabajen con coordenada M de
manera trivial.
( Y ponte un teclado en español, o al menos configura teclas muertas para que
puedas componer "~" y "n" igual que compones tildes en un teclado español :-P
)
--
Iván Sánchez Ortega <ivan en sanchezortega.es>
More information about the Spanish
mailing list