ฉันสร้าง raster GeoTIFF ของตัวเองเป็นประจำกับ GDAL ใน Python เช่น:
from osgeo import gdal
from numpy import random
data = random.uniform(0, 10, (300, 200))
driver = gdal.GetDriverByName('GTiff')
ds = driver.Create('MyRaster.tif', 200, 300)
band = ds.GetRasterBand(1)
band.WriteArray(data)
ds = band = None # save, close
อย่างไรก็ตามเมื่อดูผลลัพธ์ด้วย ArcCatalog / ArcGIS มันจะเป็นสีดำหรือเทาเนื่องจากไม่มีสถิติ สิ่งนี้สามารถแก้ไขได้ด้วยการคลิกขวาที่แรสเตอร์และเลือก "คำนวณสถิติ ... " ใน ArcCatalog (มีหลายวิธีในการทำเช่นนี้) หรือใช้gdalinfoในพรอมต์คำสั่ง:
gdalinfo -stats MyRaster.tif
จะสร้างMyRaster.tif.aux.xml
ซึ่ง ArcGIS ใช้ในการขยายแรสเตอร์ให้เหมาะสม ไฟล์ PAM (ข้อมูลเมตาเสริมต่อเนื่อง) มีสถิติโดยเฉพาะอย่างยิ่งค่าต่ำสุดและสูงสุด:
<PAMDataset>
<PAMRasterBand band="1">
<Metadata>
<MDI key="STATISTICS_MINIMUM">0</MDI>
<MDI key="STATISTICS_MAXIMUM">10</MDI>
<MDI key="STATISTICS_MEAN">5.0189833333333</MDI>
<MDI key="STATISTICS_STDDEV">2.9131294111984</MDI>
</Metadata>
</PAMRasterBand>
</PAMDataset>
คำถามของฉัน: มีวิธีรับ GDAL ในตัวเพื่อสร้างไฟล์สถิติ (นอกเหนือจากการใช้gdalinfo -stats
คำสั่ง) หรือไม่ หรือฉันจะต้องเขียนของตัวเอง?
band.GetStatistics(0,1)
จริง ๆ แล้วจะคำนวณสถิติและเพิ่มลงในข้อมูลเมตาของ GeoTIFF ในไฟล์เดียว ไม่ต้องใช้ไฟล์อื่น อย่างไรก็ตามจากการทดสอบกับผลิตภัณฑ์ของ Esri จะใช้งานได้กับ ArcGIS 10.0 ขึ้นไปไม่ใช่ ArcGIS 9.3 หรือก่อนหน้า