Tôi thường xuyên tạo các trình quét GeoTIFF của riêng mình với GDAL bằng Python, ví dụ:
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
tuy nhiên khi kết quả được xem với ArcCatalog / ArcGIS, nó trông có màu đen hoặc xám, vì nó không có số liệu thống kê. Điều này được giải quyết bằng cách nhấp chuột phải vào raster và chọn "Tính toán thống kê ..." trong ArcCatalog (có một số cách khác để làm điều này) hoặc sử dụng gdalinfo trong dấu nhắc lệnh:
gdalinfo -stats MyRaster.tif
sẽ tạo ra MyRaster.tif.aux.xml
, được ArcGIS sử dụng để chia tỷ lệ raster đúng cách. Tệp PAM (Siêu dữ liệu phụ trợ liên tục) chứa các số liệu thống kê, đáng chú ý nhất là các giá trị tối thiểu và tối đa:
<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>
Câu hỏi của tôi: có cách tích hợp nào để có được GDAL để tạo tệp thống kê (ngoài việc sử dụng gdalinfo -stats
lệnh) không? Hay tôi cần phải tự viết?
band.GetStatistics(0,1)
sẽ thực sự tính toán các số liệu thống kê và thêm nó vào siêu dữ liệu GeoTIFF trong một tệp. Không có tập tin khác cần thiết. Tuy nhiên, từ thử nghiệm với các sản phẩm Esri, nó chỉ hoạt động với ArcGIS 10.0 trở lên, không phải ArcGIS 9.3 trở về trước.