Я использую функцию zonal_stats из библиотеки Rasterstats. Я уже использовал эту функцию для имеющихся у меня данных об осадках, которая работает безупречно. Но когда я пытаюсь запустить функцию, используя тот же вектор, но с другим набором растровых данных (для Фактического испарения), я получаю сообщение об ошибке:
Traceback (most recent call last):
File "<input>", line 3, in <module>
File "/Users/ida/opt/anaconda3/envs/thesis_env/lib/python3.7/site-packages/rasterstats/main.py", line 31, in zonal_stats
return list(gen_zonal_stats(*args, **kwargs))
File "/Users/ida/opt/anaconda3/envs/thesis_env/lib/python3.7/site-packages/rasterstats/main.py", line 159, in gen_zonal_stats
rv_array = rasterize_geom(geom, like=fsrc, all_touched=all_touched)
File "/Users/ida/opt/anaconda3/envs/thesis_env/lib/python3.7/site-packages/rasterstats/utils.py", line 47, in rasterize_geom
all_touched=all_touched)
File "/Users/ida/opt/anaconda3/envs/thesis_env/lib/python3.7/site-packages/rasterio/env.py", line 386, in wrapper
return f(*args, **kwds)
File "/Users/ida/opt/anaconda3/envs/thesis_env/lib/python3.7/site-packages/rasterio/features.py", line 347, in rasterize
raise ValueError("width and height must be > 0")
Код, который я пытаюсь запустить, следующий:
vec = '/path/to/file/watersheds_template.shp'
AET = '/path/to/file/AET_2003.tif'
avg_AET = zonal_stats(vec, AET, layer='watersheds_template', stats='mean', geojson_out=True)
Я открыл растровый файл AET в Qgis, где нет проблем, проекция выглядит нормально, как и диапазон данных, и она также перекрывается с векторным шейп-файлом. Я могу выполнять расчеты в Qgis, используя «Зональную статистику», но мне нужно проделать те же расчеты для группы растровых данных, поэтому обработка всех данных с помощью Qgis занимает слишком много времени.
Я могу открыть данные AET с помощью GDAL, и это выглядит так, без каких-либо проблем:
AET_raster = gdal.Open(filepath)
Я думал, что это что-то с размерами файла, но это тоже выглядит нормально. Строка растра выглядит так:
<osgeo.gdal.Dataset; proxy of <Swig Object of type 'GDALDatasetShadow *' at 0x119250810> >
И размеры:
RasterCount = {int} 1, RasterXSize = {int} 1115, RasterYSize = {int} 834
Это те же размеры, что и в растровом файле, который у меня есть для осадков.
Кто-нибудь знает, что тут может быть не так?