Я пытаюсь растеризовать шейп-файл (с атрибутом) с помощью функции rasterio rasterize . Для этого я написал этот фрагмент кода:
new_dataset = rasterio.open('example.tif', 'w', driver='GTiff',
height = arr.shape[0], width = arr.shape[1],
count=1,
dtype=rasterio.float64,
crs=31370,transform=transform)
shapeee = fiona.open(shapefile)
geom_fiona = [shapes['geometry'] for shapes in shapeee]
attrib_fiona = [shapes['properties']['OBJECTID'] for shapes in shapeee]
tuples = []
for i in range(0,len(geom_fiona)-1,1):
tuples.append([geom_fiona[i],attrib_fiona[i]])
burned = features.rasterize(tuples, out_shape = new_dataset.shape, default_value = -99, dtype = rasterio.float64, fill=-99)
print(np.max(burned))
Обратите внимание, что геометрия действительна, поскольку я проверил ее с features.is_valid_geom(geom_fiona[0])
, которая возвращает true
.
Вывод print(np.max(burned))
возвращает -99, что означает, что растеризация не удалась.
Я нашел этот вопрос , который является тем же вопросом, что и мой, и ответ, кажется, является проблемой с другими прогнозами. Я напечатал информацию о 'crs' с помощью мета-метода Fiona как для шейп-файла, так и для растра, и я получил один и тот же результат: EPSG:31370
для растра и {'init': 'epsg:31370'}
, поэтому проблема, похоже, в другом ...
Есть идеи?