Progettare il database spaziale per i dati temporali? [chiuso]


11

Sto lavorando a un'app GIS basata sul tempo.

Ho i dati di diverse stazioni meteorologiche e questi dati verranno aggiornati quotidianamente (da un servizio web).

Gli ostacoli che sto affrontando sono:

  • Al momento ci sono 40 stazioni di registrazione, ma ciò potrebbe cambiare
  • Stazioni diverse registrano un numero diverso di parametri, alcuni record 5, altri record 7. ect
  • Alcuni dei parametri vengono registrati quotidianamente (es: temperatura massima), alcuni vengono registrati ogni ora (temperatura corrente) mentre altri vengono registrati settimanalmente.
  • Alcune strutture in una particolare stazione di registrazione potrebbero essere disattivate (ad esempio: una stazione che sta attualmente segnalando 7 parametri, potrebbe segnalarne solo 5 l'anno prossimo)
  • A volte un parametro potrebbe non essere riportato a causa di problemi tecnici; Quindi dovrei essere in grado di distinguere tra, valore = 0, valore nullo e valore non registrato.

Sto lavorando con ArcGIS (desktop e server) per la parte spaziale di questa app Web e l'utilizzo di ArcSDE non è un problema, ma penso che questo tipo di database sia meglio lasciarlo come puro Database e non inserire ArcSDE in esso.

Qualcuno può suggerire libri o link che mi aiuterebbero?

Risposte:


7

L'approccio più semplice sembra essere tre tabelle:

  • stazione (id, nome, posizione, ...)
  • parametro (id, nome, unità, ...)
  • lettura (station_id, parameter_id, timestamp, valore, ...)
  • Al momento ci sono 40 stazioni di registrazione, ma ciò potrebbe cambiare

È possibile aggiungere un numero qualsiasi di stazioni. Potrebbe essere interessante aggiungere informazioni sul tempo di funzionamento di una stazione alla tabella.

  • Stazioni diverse registrano un numero diverso di parametri, alcuni record 5, altri record 7. ect.
  • Alcune strutture in una particolare stazione di registrazione potrebbero essere disattivate

Non è un problema, poiché la relazione tra parametri registrati e stazioni è implicitamente memorizzata nella tabella di lettura.

  • Alcuni dei parametri vengono registrati quotidianamente (es: temperatura massima), alcuni vengono registrati ogni ora (temperatura corrente) mentre altri vengono registrati settimanalmente.

Ogni lettura sarà rappresentata da una voce nella tabella di lettura. Intervalli diversi non sono un problema.

  • A volte un parametro potrebbe non essere segnalato a causa di problemi tecnici

In tal caso, non ci sarebbe semplicemente alcuna voce nella tabella di lettura.

Inoltre, suggerirei di esaminare lo standard di osservazione dei sensori OGC . Ci sono molti esempi che coprono le registrazioni delle stazioni meteorologiche. Le implementazioni come 52 ° Nord hanno un buon schema di database generico (per PostGIS in questo caso). Mentre questo standard (un altro standard SWE) richiede alcuni sforzi per imparare, sono convinto che l'investimento ripagherà.


7

Questa settimana ho fatto le mie ricerche sui database temporali. Ho trovato molto utile questa risposta su StackOverflow. Per una comprensione fondamentale dei principi, vale la pena leggere i capitoli introduttivi di Sviluppo di applicazioni di database orientate al tempo in SQL di Snodgrass. Sto scoprendo che i veri database temporali sono piuttosto complessi, ma una soluzione più semplice - come suggerisce Underdark - potrebbe essere sufficiente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.