Projetando banco de dados espacial para dados temporais? [fechadas]

11

Estou trabalhando em um aplicativo GIS baseado em clima.

Eu tenho os dados de várias estações meteorológicas e esses dados são atualizados diariamente (por um serviço da web).

Os obstáculos que estou enfrentando são:

  • Atualmente, existem 40 estações de gravação, mas isso pode mudar
  • Estações diferentes registram diferentes números de parâmetros, alguns registros 5, alguns registros 7. ect
  • Alguns dos parâmetros são registrados diariamente (ex: Temperatura máxima), alguns são registrados a cada hora (temperatura atual) enquanto outros são registrados semanalmente.
  • Algumas instalações de uma estação de gravação específica podem ser desativadas (por exemplo: Uma estação que está atualmente relatando 7 parâmetros, pode relatar apenas 5 no próximo ano)
  • Às vezes, um parâmetro pode não ser relatado devido a problemas técnicos; Portanto, eu devo ser capaz de diferenciar entre, valor = 0, valor nulo e valor não registrado.

Estou trabalhando com o ArcGIS (desktop e servidor) na parte espacial deste aplicativo Web e o uso do ArcSDE não é um problema, mas acho que é melhor deixar esse tipo de banco de dados como um banco de dados puro e não trazer o ArcSDE para ele.

Alguém pode sugerir livros ou links que me ajudariam?

Devdatta Tengshe
fonte

Respostas:

7

A abordagem mais simples parece ser três tabelas:

  • estação (id, nome, posição, ...)
  • parâmetro (id, nome, unidade, ...)
  • leitura (station_id, parameter_id, timestamp, value, ...)
  • Atualmente, existem 40 estações de gravação, mas isso pode mudar

Você pode adicionar qualquer número de estações. Pode ser interessante adicionar informações sobre o tempo de operação de uma estação à tabela.

  • Estações diferentes registram um número diferente de parâmetros, alguns registros 5, alguns registros 7. ect.
  • Algumas instalações de uma estação de gravação específica podem ser desativadas

Não é um problema, pois o relacionamento entre os parâmetros gravados e as estações é implicitamente armazenado na tabela de leitura.

  • Alguns dos parâmetros são registrados diariamente (ex: Temperatura máxima), alguns são registrados a cada hora (temperatura atual) enquanto outros são registrados semanalmente.

Cada leitura será representada por uma entrada na tabela de leitura. Intervalos diferentes não são problema.

  • Às vezes, um parâmetro pode não ser relatado devido a problemas técnicos

Nesse caso, simplesmente não haveria entrada na tabela de leitura.

Além disso, eu sugeriria examinar o Padrão de observação do sensor OGC . Existem muitos exemplos que cobrem gravações de estações meteorológicas. Implementações como 52 ° North vêm com um bom esquema genérico de banco de dados (neste caso, para PostGIS). Embora esse padrão (e os outros padrões SWE) precisem de algum esforço para aprender, estou convencido de que o investimento será recompensado.

underdark
fonte
7

Estive fazendo minha própria pesquisa em bancos de dados temporais esta semana. Achei esta resposta no StackOverflow muito útil. Para uma compreensão fundamental dos princípios, vale a pena ler os capítulos introdutórios de Desenvolvimento de aplicativos de banco de dados orientados a tempo no SQL da Snodgrass. Estou descobrindo que os verdadeiros bancos de dados temporais são bastante complexos, mas uma solução mais simples - como sugere o underdark - pode ser suficiente.

nw1
fonte