我定期使用GDAL在Python中创建自己的GeoTIFF栅格,例如:
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或更低版本。