Korzystanie z postgis do generowania cieni budowlanych


9

Obecnie pracuję nad narzędziem oceny potencjału słonecznego dla istniejących budynków. Chodzi o to, aby użyć kształtu budynków (= wielokąta), ich wysokości i utworzyć wynikowy odcień w danej godzinie. Zrobię test tylko dla kilku pozycji słońca. Wiem o funkcji trawy r.sun.mask, ale jest ona przytłoczona tym, co próbuję zrobić.

Na razie chcę uzyskać cień tylko wtedy, gdy słońce jest na południu, na niebie na 18 °. Budynek powinien zatem rzucić cień około trzykrotnej wysokości.

Co próbuję uzyskać:

Co próbuję uzyskać

Szukałem od dłuższego czasu, ale nie znalazłem w postgisie żadnego narzędzia do tego. Myślałem o buforowaniu, a następnie wycięciu wielokąta, ale nie mogłem go uruchomić. Czy znasz jakieś narzędzie lub masz pomysł, jak to zrobić?

Odpowiedzi:


8

Najprostszym sposobem na to jest użycie

ST_Extrude (geom, kierunek x, kierunek y, 0)

. Trzeba będzie obliczyć współczynnik wyciśnięcia się oczywiście i zakłada całe wielokąt jest taka sama wysokość (w przykładzie, Wyciągnięcie być tak: ST_Extrude(geom, 0, 3.0*height, 0))

Oto instrukcja dotycząca ST_Extrude. Pamiętaj, że potrzebujesz do tego postgis z SFCGAL, sprawdź dokumentację instalacyjną, jak to zdobyć, jeśli jeszcze go nie masz.


Chcę uzyskać kształt wyjściowy, jednak powierzchni wielościennej nie można przecinać z wielokątem. Próbowałem ST_Force2D na wielościennym, a następnie przecinałem go z moim wielokątem, ale to nie działa. Czy istnieje inna funkcja z bardziej praktycznym formatem wyjściowym lub sposób na konwersję tej wielościennej powierzchni na wielokąt?
aeboq

2
Tak, możesz zrzucić go do normalnych wielokątów. Przykład:SELECT ST_AsText((ST_Dump(ST_Extrude(ST_MakeEnvelope(10,10,100,100,28992),0,8,0))).geom)
przechylić

0

Warto rozważyć eksport z QGIS do Blendera, ponieważ pozwoliłoby to umieścić słońce jako światło i ożywić przez cały dzień i cały rok. Znalazłem tutaj przepływ pracy , który wygląda na odpowiedni.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.