กำลังคำนวณพื้นที่รูปหลายเหลี่ยมใน QGIS?


72

ฉันจะคำนวณพื้นที่ของ shapefile พื้นที่เป็นตารางเมตรหรือในไร่ (ha) ได้อย่างไร

ฉันไม่พบฟังก์ชันการทำงานนั้นในเครื่องมือเวคเตอร์


คำถามติดตาม: ฉันมีเลเยอร์ใน State Plane NAD83 เมื่อฉันใช้คำสั่งเหล่านี้มันจะสร้างพื้นที่เป็นฟุต ถ้าฉันต้องการเอเคอร์หรือตารางไมล์ล่ะ? ขอบคุณ
C_K

คำตอบทั้งสองนี้ให้การทำงาน แต่พวกมันค่อนข้างช้าที่จะนำไปใช้โดยเฉพาะเมื่อพยายามกำหนดพื้นที่ของไฟล์เวกเตอร์รูปหลายเหลี่ยมจำนวนมาก ไม่มีปลั๊กอินหรือวิธีอื่นในการรับพื้นที่ของรูปหลายเหลี่ยมเพียงคลิกขวาที่รูปหลายเหลี่ยมหรือไม่ คำตอบที่ให้ไว้ท้ายสุดมีแอตทริบิวต์ฟิลด์ใหม่ (เช่นพื้นที่) แต่ค่าจะไม่อัปเดตหากมีการเปลี่ยนแปลงรูปหลายเหลี่ยม ดังนั้นในหลายกรณีไม่จำเป็นต้องให้พื้นที่แสดงในแอตทริบิวต์เขตข้อมูลแยกต่างหาก หากพื้นที่นั้นสามารถแสดงเป็นตัวเลขในแผนภูมิขนาดเล็กที่ด้านล่างของหน้า ฯลฯ ก็จะเพียงพอ ดังนั้นคือ
David

2
ใช้เครื่องมือระบุให้คลิกที่รูปหลายเหลี่ยม พื้นที่ถูกคำนวณและแสดงภายใต้ "Derived" ในหน้าต่างการระบุ คุณสามารถเปลี่ยนหน่วยในการตั้งค่า
csk

คำตอบ:


70

ทำให้เลเยอร์แก้ไขได้จากนั้นใช้เครื่องคิดเลขฟิลด์ (เลเยอร์> ตารางแอตทริบิวต์เปิด> เครื่องคิดเลขฟิลด์ / Ctrl + I หรือคลิกขวาที่รูปร่างไฟล์> ตารางแอตทริบิวต์เปิด> เครื่องคิดเลขฟิลด์ / Ctrl + I) มีโอเปอเรเตอร์ "$ area" ที่จะคำนวณพื้นที่ของแต่ละแถวในตาราง หน่วยทั้งหมดจะถูกคำนวณในหน่วยของการฉายภาพดังนั้นคุณอาจต้องการฉายไปยังการฉายที่ใช้ฟุตหรือเมตรก่อนที่จะทำเช่นนั้นแทนที่จะเป็น lat / lon


6
ในรุ่นปัจจุบันของ QGIS ถ้าข้อมูลของคุณอยู่ใน Geographic CRS คุณสามารถใช้ฟังก์ชันการแปลง () เพื่อฉายรูปทรงเรขาคณิตให้เป็นระบบที่ฉาย (โดยเฉพาะในพื้นที่ที่เท่ากัน) โดยไม่จำเป็นต้องทำซ้ำข้อมูลของคุณ ในเครื่องคิดเลขฟิลด์สิ่งนี้ควรใช้งานได้: พื้นที่ ($ geometry, 'EPSG: 4326', 'EPSG: 3763')
Alexandre Neto

9
@AlexandreNeto: คุณหมายถึงarea(transform($geometry, 'EPSG:4326','EPSG:3763'))อะไร
Stewart Macdonald

@smacdonald ใช่ความผิดพลาดของฉัน
Alexandre Neto

18

สิ่งนี้สามารถทำได้ด้วย Vector | เครื่องมือเรขาคณิต | เพิ่ม / ส่งออกคอลัมน์รูปทรงเรขาคณิตซึ่งสร้างรูปร่างไฟล์ใหม่โดยเพิ่มคอลัมน์พื้นที่และปริมณฑล (หรือความยาว)

แก้ไข: (ใช้เครื่องมือด้านบนคุณยังสามารถยกเลิกการเลือก "บันทึกเป็นไฟล์รูปร่างใหม่" ใน V1.8 ได้ตอนนี้อัปเดตรูปร่างไฟล์เท่านั้น!)

การใช้เครื่องคำนวณภาคสนามอาจเป็นความคิดที่ดีกว่าเนื่องจากไม่จำเป็นต้องมีการสร้างรูปร่างไฟล์ใหม่


คุณไม่สามารถเปลี่ยนคุณสมบัติของ shapefile โดยไม่ต้องเปิดใช้งานการแก้ไขก่อน (การคำนวณพื้นที่นับเป็นการแก้ไขแอตทริบิวต์คุณกำลังเพิ่มคอลัมน์ใหม่) โปรดทราบว่าหน่วยงานทั้งหมดจะถูกคำนวณในหน่วยของการฉายภาพ (ค่าเริ่มต้นเมตร bu) ดังนั้นคุณจึงต้องฉายใหม่ไปยังระบบพิกัดที่ฉายไว้ก่อน
Hasan Mustafa

4

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

Processing Toolbox -> Tools -> Get scripts from on-line scripts collection -> Ellipsoidal Area

คุณจะพบสคริปต์ที่ติดตั้งใน Processing Toolbox -> Utils -> Ellipsoidal area

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


คุณยกตัวอย่างรหัสที่ดีกว่านี้ได้ไหม
LéoLéopold Hertz 준영

0

หากพื้นที่ที่คุณกำลังดูมีแนวโน้มที่จะเปลี่ยนแปลงเช่นการดูเลย์เอาต์โครงสร้างพื้นฐานพื้นที่เก็บกักน้ำพื้นที่ศึกษา ฯลฯ ฉันพบว่ามีประโยชน์ที่จะติดป้ายกำกับพื้นที่แทนที่จะเพิ่มเป็นคุณลักษณะ

Label-> round($area/10000,2)||' ha'

วิธีนี้คุณไม่จำเป็นต้องจำให้อัปเดตพื้นที่เก็บข้อมูลในตารางแอตทริบิวต์บ่อยครั้ง

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