¿Diseñando una base de datos espacial para datos temporales? [cerrado]


11

Estoy trabajando en una aplicación GIS basada en el clima.

Tengo los datos de varias estaciones meteorológicas, y estos datos se actualizarán diariamente (por un servicio web).

Los obstáculos que enfrento son:

  • Actualmente hay 40 estaciones de grabación, pero eso podría cambiar
  • Las diferentes estaciones registran diferentes números de parámetros, algunos registran 5, algunos registran 7. ect
  • Algunos de los parámetros se registran diariamente (por ejemplo, temperatura máxima), algunos se registran cada hora (temperatura actual) mientras que otros se registran semanalmente.
  • Algunas instalaciones en una estación de grabación en particular podrían estar fuera de servicio (por ejemplo: una estación que actualmente informa 7 parámetros, podría informar solo 5 el próximo año)
  • Algunas veces un parámetro puede no ser reportado debido a problemas técnicos; Por lo tanto, debería poder diferenciar entre, valor = 0, valor nulo y valor no registrado.

Estoy trabajando con ArcGIS (escritorio y servidor) para la parte espacial de esta aplicación web y usar ArcSDE no es un problema, pero creo que este tipo de base de datos es mejor dejarla como una base de datos pura y no incorporar ArcSDE.

¿Alguien puede sugerirme algún libro o enlace que me ayude?

Respuestas:


7

El enfoque más simple parece ser tres tablas:

  • estación (id, nombre, cargo, ...)
  • parámetro (id, nombre, unidad, ...)
  • lectura (station_id, parameter_id, timestamp, value, ...)
  • Actualmente hay 40 estaciones de grabación, pero eso podría cambiar

Puede agregar cualquier número de estaciones. Puede ser interesante agregar información sobre el tiempo de funcionamiento de una estación a la tabla.

  • Las diferentes estaciones registran diferentes números de parámetros, algunos registran 5, algunos registran 7. ect.
  • Algunas instalaciones en una estación de grabación en particular podrían estar fuera de servicio

No es un problema, ya que la relación entre los parámetros registrados y las estaciones se almacena implícitamente en la tabla de lectura.

  • Algunos de los parámetros se registran diariamente (por ejemplo, temperatura máxima), algunos se registran cada hora (temperatura actual) mientras que otros se registran semanalmente.

Cada lectura estará representada por una entrada en la tabla de lectura. Diferentes intervalos no son problema.

  • A veces, un parámetro puede no informarse debido a problemas técnicos

En ese caso, simplemente no habría entrada en la tabla de lectura.

Además, sugeriría buscar en el estándar de observación del sensor OGC . Hay muchos ejemplos que cubren grabaciones de estaciones meteorológicas. Implementaciones como 52 ° North vienen con un buen esquema genérico de base de datos (para PostGIS en este caso). Si bien este estándar (y los otros estándares SWE) requieren un esfuerzo para aprender, estoy convencido de que la inversión dará sus frutos.


7

He estado haciendo mi propia investigación sobre bases de datos temporales esta semana. Encontré esta respuesta en StackOverflow muy útil. Para una comprensión fundamental de los principios, vale la pena leer los capítulos introductorios de Desarrollo de aplicaciones de bases de datos orientadas al tiempo en SQL por Snodgrass. Estoy descubriendo que las bases de datos temporales verdaderas son bastante complejas, pero una solución más simple, como sugiere Underdark , podría ser suficiente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.