การวัดพื้นที่ของคลาสแรสเตอร์?


9

มีเครื่องมือหรือวิธีการใดใน ArcMap ที่สามารถวัดพื้นที่ของแต่ละระดับของความหนาแน่นเคอร์เนลเอาท์พุทได้หรือไม่?

โปรดทราบว่านี่เป็นเพียงพล็อตความหนาแน่นเคอร์เนล (ไม่ใช่ไฟล์รูปร่างหรือรูปหลายเหลี่ยม) การวิเคราะห์ความหนาแน่นของเคอร์เนล (สีเขียวเข้ม (10%) ถึงสีแดง (90%) (1)

ฉันพยายามทำบางสิ่ง แต่ต้องการความแม่นยำ

การวิเคราะห์ความหนาแน่น Kerenel (สีเขียวเข้ม (10%) เป็นสีแดง (90%)

คำตอบ:


7

ฉันจะใช้เวิร์กโฟลว์ต่อไปนี้เพื่อคำนวณพื้นที่ภายในคลาส:

  1. จัดประเภทใหม่ (Spatial Analyst)เอาต์พุตความหนาแน่นของเคอร์เนลตามคลาสที่คุณใช้ โดยค่าเริ่มต้น ArcGIS จะสร้างพื้นผิวแรสเตอร์อย่างต่อเนื่องสำหรับเอาต์พุตความหนาแน่นของเคอร์เนล แต่จัดประเภทคำอธิบาย (ซึ่งเป็นแบบชั่วคราว) การใช้เครื่องมือจัดประเภทใหม่จะทำให้สิ่งนี้ถาวร
  2. เปิดตารางแอตทริบิวต์ความหนาแน่นเคอร์เนลที่จัดประเภทใหม่และสังเกตฟิลด์ "COUNT" ( รูปที่ 1 ) นี่คือจำนวนพิกเซลทั้งหมดในแต่ละชั้นเรียน ตัวอย่างเช่นคลาส 1 (ค่า = 1) มีจำนวน 620,063 พิกเซล เนื่องจากระบบพิกัดของฉันคือ UTM หน่วยอยู่ในหน่วยเมตรและพิกเซลอยู่ที่ความละเอียดเชิงพื้นที่ 1m ดังนั้นคลาส 1 คือ 620,063 m ^ 2
  3. หากต้องการแปลงจำนวนเป็นหน่วยอื่นเช่นเฮกตาร์ให้เพิ่มเขตข้อมูลใหม่ในตารางแอตทริบิวต์
  4. คำนวณสนาม ( รูปที่ 2 )
  5. ตรรกะตรวจสอบผลลัพธ์โดยการเน้นคลาส ( รูปที่ 3 )

รูปที่ 1

ป้อนคำอธิบายรูปภาพที่นี่

รูปที่ 2

ป้อนคำอธิบายรูปภาพที่นี่

รูปที่ 3

ป้อนคำอธิบายรูปภาพที่นี่


2

หากคุณต้องการโซลูชัน arcpy:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

หรือคุณสามารถเขียนค่าลงในไฟล์ csv / text


1

สมมติว่าพล็อตหนาแน่นเคอร์เนลของคุณเป็นแรสเตอร์ที่สร้างขึ้นโดยใช้เครื่องมือที่มีความหนาแน่นเคอร์เนลหรือคล้ายกันนี้เป็นเพียงเรื่องของการใช้เป็นRaster ไปเป็นเครื่องมือรูปหลายเหลี่ยม

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


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

1
@MrAngus ปัญหาคือความหนาแน่นของเคอร์เนลจะสร้างเอาต์พุตแบบแรสเตอร์จุดลอยตัวเสมอในขณะที่ Raster to Polygon ต้องการอินพุต raster จำนวนเต็ม (ดูไฟล์วิธีใช้ที่เชื่อมโยง) คุณต้องจัดประเภทแรสเตอร์ KD ใหม่ก่อน
Chris W

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

0

ทางออกหนึ่งที่รวดเร็วในการแก้ไขปัญหานี้คือ:

  1. เปิดคุณสมบัติของแรสเตอร์และไปที่แท็บสัญลักษณ์
  2. สันนิษฐานว่าสัญลักษณ์นั้นถูกตั้งค่าเป็นจำแนกแล้วและจำนวนชั้นเรียนเป็นสิ่งที่คุณต้องการ คลิกที่ปุ่มจัดประเภท
  3. ที่ด้านขวาของไดอะล็อกจะมีช่อง Break Values คลิกที่แต่ละค่าพักและที่ด้านล่างของกล่องโต้ตอบคุณจะเห็น # องค์ประกอบในชั้นเรียน นี่คือจำนวนพิกเซลในคลาสนั้น เขียนตัวเลขลงสำหรับแต่ละชั้นเรียนหรือใส่ลงในสเปรดชีต
  4. ยกเลิกกลับไปที่คุณสมบัติแรสเตอร์และเปลี่ยนเป็นแท็บแหล่งที่มา ขนาดเซลล์ถูกกำหนดไว้ใน x, y คูณสองตัวนี้เข้าด้วยกันและคุณมีพื้นที่หนึ่งพิกเซล
  5. ตอนนี้ใช้พื้นที่นั้นคูณจำนวนพิกเซลในแต่ละชั้นเรียน สิ่งนี้จะให้พื้นที่ทั้งหมดของชั้นเรียนแก่คุณ

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

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