Usando o postgis para gerar sombras de construção

9

Atualmente, estou trabalhando em uma ferramenta de estimativa de potencial solar para edifícios existentes. A idéia é usar a forma de edifícios (= polígono), sua altura e criar a sombra resultante em uma determinada hora. Eu só vou fazer o teste para algumas posições do sol. Eu sei sobre a função grama r.sun.mask, mas ela é dominada pelo que estou tentando fazer.

Por enquanto, só quero ter sombra quando o sol está ao sul, a 18 ° no céu. O edifício deve, portanto, projetar uma sombra cerca de três vezes a sua altura.

O que estou tentando obter:

O que estou tentando obter

Estou procurando há algum tempo, mas não encontrei nenhuma ferramenta no postgis para fazer isso. Eu estava pensando em fazer buffer e depois cortar o polígono, mas não consegui fazê-lo funcionar. Você conhece alguma ferramenta ou tem alguma idéia de como fazê-lo?

aeboq
fonte

Respostas:

8

A maneira mais simples de fazer isso é com um

ST_Extrude (geom, direção x, direção y, 0)

. Você vai ter que calcular o fator de extrusão-se naturalmente e assume todo o seu polígono é a mesma altura (no seu exemplo, extrusão seria como: ST_Extrude(geom, 0, 3.0*height, 0))

Aqui está o manual sobre ST_Extrude. Lembre-se de que você precisa do postgis com SFCGAL para isso, verifique os documentos de instalação sobre como obtê-lo, caso ainda não o tenha.

inclinar
fonte
A forma de saída é a que eu quero, no entanto, a superfície poliédrica não pode ser cruzada com um polígono. Eu tentei o ST_Force2D no poliédrico e, em seguida, cruzei com o meu polígono, mas ele não funciona. Existe outra função com um formato de saída mais prático ou uma maneira de converter essa superfície poliédrica em polígono?
aeboq
2
Sim, você pode despejá-lo em polígonos normais. Exemplo:SELECT ST_AsText((ST_Dump(ST_Extrude(ST_MakeEnvelope(10,10,100,100,28992),0,8,0))).geom)
incline
0

Talvez valha a pena considerar exportar do QGIS para o Blender, pois isso permitirá que você coloque o sol como uma luz e anime durante o dia e durante o ano. Encontrei aqui um fluxo de trabalho que parece relevante.

Steve Barnes
fonte