我尝试使用rasterio rasterize function光栅化shapefile(具有属性)。为此,我编写了这段代码:
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,表示光栅化失败。
我发现this question与我的问题相同,答案似乎是一个有不同预测的问题。我用Fiona的“ meta”方法为shapefile和栅格打印了有关“ crs”的信息,并且得到相同的结果:EPSG:31370
为栅格和{'init': 'epsg:31370'}
,所以问题似乎出在其他地方...
有什么想法吗?