Я регулярно створюю власні растри 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 або раніше.