Varredura de georreferência em plano não horizontal

8

Temos dados rasterizados gerados a partir de paredes (verticais). Gostaríamos de manter esses dados em um banco de dados postgis e ter a referência espacial codificada "da maneira mais precisa".

Atualmente, eles são salvos ao abusar de um CRS métrico e codificam a coordenada z da parede como y e o deslocamento do lado esquerdo da parede como x. Isso fornece um sistema de referência local que funciona para sua finalidade, mas perde o contexto global.

Para dados vetoriais, é fácil atribuir a cada vértice uma coordenada 3D para localizá-lo no espaço (global). É isso que deve ser criado com base nos dados de varredura (use uma interface de usuário GIS para digitalizar áreas de interesse no topo dessas paredes).

Além disso, várias paredes podem estar situadas próximas umas das outras e deve ser possível visualizá-las nesse contexto (basta apenas funcionar se tiverem o mesmo azimute).

Existem algumas abordagens disponíveis sobre como isso pode ser resolvido:

Use um CRS personalizado no espaço vertical, que tem sua origem com base em uma coordenada do mundo real. No entanto, onde exatamente essa "referência de origem" seria armazenada ainda não está claro.

  • Salve as informações no CRS (isso é possível?) - Exigiria vários CRS diferentes para cada plano de referência.
  • Use uma chave estrangeira para uma linha (veja linhas vermelhas na amostra) - Situação atual, informações redundantes (e se o comprimento da linha não corresponder à largura da varredura?)
  • Crie um polígono 3D como plano de referência - Informações redundantes, veja acima
  • Crie um ponto de origem na linha, que em combinação com o azimute da linha possa ser o plano de referência - Paredes diferentes compartilhariam o mesmo plano de referência?

Todas as abordagens parecem ser de alguma forma "soluções alternativas" e têm suas ressalvas.

As duas imagens abaixo mostram uma visão superior da situação e uma composição de várias imagens raster frontais. (Tudo bem se eles estiverem mapeados para um único plano de referência)

Qual é a maneira mais apropriada de armazenar as imagens raster verticais no banco de dados sem perder seu contexto geográfico no espaço horizontal e com informações de elevação?

Topview plano da situação, as linhas vermelhas correspondem à localização do mundo real dos rasters.

Um conjunto de imagens raster ortorretificadas, correspondendo a linhas vermelhas com o mesmo azimute.

Matthias Kuhn
fonte
3
qual é a pergunta de novo?
nickves
Você já pensou em armazenar seus dados em um formato NetCDF? Não fiz muito nesta área, mas, como é um caminho possível, você pode armazenar seus dados verticais como uma dimensão adicional.
yanes
1
Certo, estamos em um site de perguntas e respostas :) Pergunta formulada. Embora ainda tenhamos todas as possibilidades em aberto neste projeto (ou seja, o NetCDF seria uma possibilidade), eu não gostaria de perder todas as vantagens introduzidas por um banco de dados.
Matthias Kuhn

Respostas:

1

duvidoso, é a resposta elegante, mas soa semelhante a algo que fizemos - onde começamos com seções transversais digitalizadas (rasters verticais, como suas paredes). Georreferenciamos as imagens em que o deslocamento do lado esquerdo era a coordenada x, e a altura da seção x era y. essas coordenadas estavam no mesmo CRS que todos os outros dados do mapa para a área.

polígonos digitalizados

Simplesmente digitalizamos os rasters e incluímos um conjunto de dados de pontos separado para indicar os verdadeiros cantos de início / parada das seções transversais

linhas digitalizadas

A partir daí, um script curto pode extrair os vértices das linhas e, usando os cantos, podemos transpor os pontos para exibição no espaço 2D ou 3D - (nota em 2D - todos os pontos se empilham no plano vertical)

Exibição de pontos 3D em 2D

ou em algum visualizador em 3D -

insira a descrição da imagem aqui

enquanto não os armazenamos em um banco de dados, o conceito deve ser o mesmo.

agora, talvez haja algum erro enorme em nosso método - então eu ficaria feliz (bem, não de verdade) em ouvir isso também. se estiver interessado, eu poderia compartilhar o script kludgy que usamos para transpor os dados.

movimento fluido
fonte
Eu acho que essa também é a abordagem que temos atualmente. Além dos scripts que de fato parecem interessantes, mas essa pergunta é principalmente sobre armazenamento de dados.
Matthias Kuhn
nesse caso, o SRC anterior para a área de estudo estava em UTM. mantivemos isso para os rasters verticais. Obviamente, você pode adicionar exagero vertical - basta prestar contas na transposição.
Fluidotion
1
Tenho certeza de que não estou pensando nisso com métricas suficientes - para 'codificar a coordenada z da parede como x, e o deslocamento do lado esquerdo da parede como y' - parece o oposto de como a armazenamos? para mim, era fácil colocar a base da varredura de parede exatamente onde deveria estar no mapa - e em 2D seria como se tivesse caído no chão. Tudo no mesmo CRS?
FluidMotion
não, isso é realmente um erro de digitação na minha pergunta :)
Matthias Kuhn
percebi que não tinha respondido completamente sua pergunta. Sim, está tudo no mesmo CRS próximo à origem (x: próximo a 0 / y, em torno da altitude do site). Então, para ver os rasters em vez do mapa, usamos apenas "zoom to layer extension". O bom disso é que, no compositor de impressão, uma grade horizontal indica a altitude.
Matthias Kuhn