ใช้ postgis เพื่อสร้างเฉดสีอาคาร


9

ฉันกำลังทำงานกับเครื่องมือประเมินศักยภาพพลังงานแสงอาทิตย์สำหรับอาคารที่มีอยู่ แนวคิดคือใช้รูปร่างของอาคาร (= รูปหลายเหลี่ยม) ความสูงและสร้างเฉดสีที่ได้ในเวลาที่กำหนด ฉันแค่ไปทำการทดสอบเพื่อดูดวงอาทิตย์ ฉันรู้เกี่ยวกับฟังก์ชันหญ้า r.sun.mask แต่มันสู้เพื่อสิ่งที่ฉันพยายามจะทำ

สำหรับตอนนี้ฉันแค่อยากได้ร่มเงาเมื่อดวงอาทิตย์อยู่ทางใต้ที่อุณหภูมิ 18 °ในท้องฟ้า อาคารจึงควรมีเงาสูงประมาณสามเท่า

สิ่งที่ฉันพยายามจะได้รับ:

สิ่งที่ฉันพยายามจะได้

ฉันค้นหามาระยะหนึ่งแล้ว แต่ไม่พบเครื่องมือใด ๆ ใน Postgis ที่จะทำเช่นนี้ ฉันกำลังคิดเกี่ยวกับการบัฟเฟอร์แล้วตัดรูปหลายเหลี่ยม แต่ไม่สามารถทำงานได้ คุณรู้เครื่องมือใด ๆ หรือมีความคิดวิธีการทำอย่างไร

คำตอบ:


8

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือด้วย

ST_Extrude (Geom X-ทิศทาง, y ทิศทาง, 0)

. คุณจะมีการคำนวณปัจจัยขับไล่ตัวเองแน่นอนและจะอนุมานว่ารูปหลายเหลี่ยมของคุณทั้งหมดเป็นความสูงเดียวกัน (ในตัวอย่างของคุณพ่นออกจะเป็นเช่น: ST_Extrude(geom, 0, 3.0*height, 0))

นี่คือคู่มือ ST_Extrude โปรดทราบว่าคุณต้องการ postgis ด้วย SFCGAL สำหรับสิ่งนี้ตรวจสอบเอกสารการติดตั้งเกี่ยวกับวิธีรับสิ่งนี้หากคุณยังไม่มี


รูปร่างเอาต์พุตเป็นสิ่งที่ฉันต้องการ แต่พื้นผิว Polyhedral ไม่สามารถตัดกันด้วยรูปหลายเหลี่ยม ฉันลอง ST_Force2D ในรูปหลายเหลี่ยมแล้วตัดกับรูปหลายเหลี่ยมของฉัน แต่มันไม่ทำงาน มีฟังก์ชั่นอื่นที่มีรูปแบบเอาต์พุตที่ใช้งานได้จริงหรือวิธีแปลงพื้นผิวหลายเหลี่ยมนี้เป็นรูปหลายเหลี่ยมหรือไม่?
aeboq

2
ใช่คุณสามารถถ่ายโอนไปยังรูปหลายเหลี่ยมปกติ ตัวอย่าง:SELECT ST_AsText((ST_Dump(ST_Extrude(ST_MakeEnvelope(10,10,100,100,28992),0,8,0))).geom)
เอียง

0

การพิจารณาการส่งออกจาก QGIS ไปยังBlenderนั้นน่าจะคุ้มค่าเพราะจะช่วยให้คุณวางดวงอาทิตย์เป็นแสงและเคลื่อนไหวตลอดทั้งวันและตลอดทั้งปี ฉันพบขั้นตอนการทำงานที่นี่ซึ่งมีความเกี่ยวข้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.