ฉันจำเป็นต้องรู้มูลค่าของผลรวมของพิกเซลทั้งหมดในแรสเตอร์ อย่างไรก็ตามในส่วนสถิติของแท็บข้อมูลเมตาในคุณสมบัติภายใต้ผลรวมของเซลล์ทั้งหมดมันจะระบุ 0.00 เสมอ ฉันได้ลองใช้รูปแบบแรสเตอร์ที่แตกต่างกันไปแล้ว ผมทำอะไรผิดหรือเปล่า? ฉันจะรับค่านี้ได้อย่างไร
ฉันจำเป็นต้องรู้มูลค่าของผลรวมของพิกเซลทั้งหมดในแรสเตอร์ อย่างไรก็ตามในส่วนสถิติของแท็บข้อมูลเมตาในคุณสมบัติภายใต้ผลรวมของเซลล์ทั้งหมดมันจะระบุ 0.00 เสมอ ฉันได้ลองใช้รูปแบบแรสเตอร์ที่แตกต่างกันไปแล้ว ผมทำอะไรผิดหรือเปล่า? ฉันจะรับค่านี้ได้อย่างไร
คำตอบ:
ใน QGIS 2.x คุณสามารถรับสถิติแรสเตอร์สำหรับเลเยอร์ทั้งหมด (รวมถึงผลรวมของค่าพิกเซลทั้งหมดในแบนด์) โดยใช้อัลกอริทึม Raster Layer สถิติในกล่องเครื่องมือการประมวลผล
กำลังประมวลผล | กล่องเครื่องมือ (ช่องทำเครื่องหมาย)
จากนั้นไปที่กล่องเครื่องมือการประมวลผล:
QGIS geoalgorithms | เครื่องมือ Raster สถิติเลเยอร์แรสเตอร์
สร้างสถิติสำหรับเลเยอร์ที่คุณต้องการตรวจสอบ ผลลัพธ์จะถูกเก็บไว้ในเมทาดาทาเลเยอร์ซึ่งสามารถเข้าถึงได้โดยการคลิกขวาที่เลเยอร์และเลือกคุณสมบัติ
คุณสามารถใช้ pyqgis และสร้างอาร์เรย์และผลรวม:
import gdal
import numpy as np
ds = gdal.Open(r'C:\somefolder\someraster.tif')
band1 = ds.GetRasterBand(1).ReadAsArray()
s = np.sum(band1)
print(s)
ฉันเข้าใจคำถามว่าฉันจะได้รับผลรวมของค่าพิกเซลทั้งหมดของแรสเตอร์ได้อย่างไร สิ่งที่ชอบเรียกใช้สถิติกับคุณลักษณะของเวกเตอร์ สามารถทำได้อย่างง่ายดายผ่านการเขียนโปรแกรม ฉันสามารถคิดถึงวิธีอื่นในการทำสิ่งนี้ผ่าน QGIS มันจะไม่มีประสิทธิภาพและไม่ถูกต้องเล็กน้อย แต่จะใช้งานได้
คุณสามารถใช้ gdalinfo เพื่อรับสถิติแรสเตอร์เช่น:
gdalinfo -stats filename.tif
สิ่งนี้จะให้ค่าพิกเซลเฉลี่ยและขนาดแรสเตอร์เป็นพิกเซล คุณสามารถรับข้อมูลนี้ได้จากแท็บ Properties -> Metadata
จากนั้นเป็นคำถามเกี่ยวกับเลขคณิต: ค่าเฉลี่ย x (ความสูงเป็นพิกเซล x ความกว้างเป็นพิกเซล)
กรงขัง