Sử dụng postgis để tạo bóng tòa nhà


9

Tôi hiện đang làm việc trên một công cụ ước tính tiềm năng mặt trời cho các tòa nhà hiện có. Ý tưởng là sử dụng hình dạng tòa nhà (= Đa giác), chiều cao của chúng và tạo bóng kết quả tại một giờ nhất định. Tôi sẽ chỉ làm bài kiểm tra cho một vài vị trí của mặt trời. Tôi biết về chức năng cỏ r.sun.mask nhưng nó bị áp đảo cho những gì tôi đang cố gắng làm.

Bây giờ tôi chỉ muốn có được bóng râm khi mặt trời ở phía nam, ở 18 ° trên bầu trời. Do đó, tòa nhà nên đổ bóng cao gấp ba lần chiều cao của nó.

Những gì tôi đang cố gắng để có được:

Những gì tôi đang cố gắng để có được

Tôi đã tìm kiếm một thời gian nhưng tôi không tìm thấy bất kỳ công cụ nào trong postgis để làm điều này. Tôi đã suy nghĩ về việc đệm và sau đó cắt đa giác nhưng không thể làm cho nó hoạt động. Bạn có biết bất kỳ công cụ hoặc có bất kỳ ý tưởng làm thế nào để làm điều đó?

Câu trả lời:


8

Cách đơn giản nhất để làm điều này là với một

ST_Extrude (geom, x-direction, y-direction, 0)

Tất nhiên, bạn sẽ phải tự tính toán hệ số extrude và nó giả định rằng toàn bộ đa giác của bạn có cùng chiều cao. (Trong ví dụ của bạn, extrude sẽ giống như ST_Extrude(geom, 0, 3.0*height, 0):)

Đây là hướng dẫn về ST_Extrude. Hãy nhớ rằng bạn cần postgis với SFCGAL cho việc này, hãy kiểm tra các tài liệu cài đặt về cách lấy cái này nếu bạn chưa có nó.


Hình dạng đầu ra là hình tôi muốn, tuy nhiên Bề mặt đa diện không thể giao nhau với Đa giác. Tôi đã thử ST_Force2D trên đa diện và sau đó giao nó với đa giác của tôi nhưng nó không hoạt động. Có một chức năng khác với định dạng đầu ra thực tế hơn, hoặc một cách để chuyển đổi bề mặt đa diện này thành đa giác?
aeboq

2
Có, bạn có thể đổ nó vào đa giác bình thường. Ví dụ:SELECT ST_AsText((ST_Dump(ST_Extrude(ST_MakeEnvelope(10,10,100,100,28992),0,8,0))).geom)
nghiêng

0

Có thể đáng để xem xét xuất khẩu từ QGIS sang Blender vì điều này sẽ cho phép bạn đặt mặt trời dưới dạng ánh sáng và hoạt hình trong suốt cả ngày và trong năm. Tôi đã tìm thấy một quy trình làm việc ở đây có vẻ có liên quan.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.