Eu tenho um requisito para armazenar e gerenciar dados geofísicos arqueológicos que são coletados como uma matriz retangular de amostras - uma imagem rasterizada.
- Cada varredura geralmente contém amostras de ponto flutuante de 20x20 ou 30x30, geralmente amostradas em intervalos de 1m.
- Uma pesquisa consistirá em uma ou mais dessas imagens em um determinado local.
- É possível que duas pesquisas diferentes possam ocorrer em diferentes países ou áreas que usam projeções diferentes, mas cada pesquisa utilizará uma e apenas uma projeção.
- É provável que eles nunca sejam visualizados juntos; cada pesquisa geralmente fica sozinha.
- Os dados serão acessados apenas por um front-end personalizado, portanto, não haverá usuários obtendo controle direto dos mesmos
psql
ou similares. - Cada amostra precisa ser armazenada conforme foi coletada, portanto não posso reprojetá-la em um CRS comum, como o Web Mercator, porque uma amostra pode acabar cobrindo mais ou menos área do que a projeção original, e a análise precisará ser realizada nos dados.
Como devo armazenar melhor os dados em um banco de dados PostGIS Raster? As opções que eu criei são:
- Ignore as restrições SRID e armazene todos os dados em uma tabela, escrevendo meu código de front-end para lidar com a manipulação de dados de maneira consistente.
- Armazene todos os dados em uma tabela e reescreva a restrição SRID como um composto de SRID e ID da pesquisa.
- Por meio da herança de tabela, crie uma nova tabela para cada novo SRID.
- Por meio da herança de tabela, crie uma nova tabela para cada pesquisa.
1 e 2 quebram algumas das partes automatizadas do PostGIS, mas ficam ocultas no código de front-end. Mas as consultas provavelmente levarão um pouco mais de tempo.
3 e 4 podem acabar com uma explosão de tabelas que dificultariam o gerenciamento de restrições de FK e assim por diante.
Praticamente, o número de rasters por pesquisa é de 1 a 100 ou mais, e é provável que o número de pesquisas chegue às centenas. Mas é provável que o número de projeções distintas permaneça muito baixo, o que favorece 3.