Rasterio 栅格化功能:无法插入正确的几何图形
Rasterio rasterize function : unable to insert correct geometries
尝试使用 Rasterio 库中的栅格化函数栅格化具有特定属性的多段线 shapefile。这个函数需要一个包含 (geometry, value) 元组的可迭代对象,几何是一个类似 GeoJSON 的对象(参见 documentation). This geometry can be extracted with fiona or geopandas, I've read this question 并尝试过它(因此使用 geopandas)但是几何不正确,因为我用"is_valid_geom",结果是 "false",这看起来合乎逻辑,因为当我打印这个几何图形时,它显示:<generator object <genexpr> at 0x000001903856C048>
。我也像这样尝试过 Fiona:
shapeee = fiona.open(shapefile)
geom_fiona = [shapes['geometry'] for shapes in shapeee]
attrib_fiona = [shapes['properties']['OBJECTID'] for shapes in shapeee] # attribute
print(features.is_valid_geom(geom_fiona)) # FALSE
这也是 returns "false" 但我不明白为什么,因为几何形状似乎是正确的:
print(geom_fiona)
"[{'type': 'LineString', 'coordinates': [(177421.98120000213, 142766.21020000055), (177409.1555000022, 142781.71609999985), (177392.76659999788, 142801.65300000086) and so on..."
所以最后,当我尝试光栅化时,我没有收到任何错误消息,但输出是一张空白图像,所有值都为 0...光栅化代码:
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)
注意:我已经阅读 this 并且我的 shapefile 和用于评级的栅格之间的投影相同
有人知道问题出在哪里吗?
几何实际上是有效的! features.is_valid_geom(geom_fiona)
返回 false
因为我将整个几何作为参数。写入 features.is_valid_geom(geom_fiona[0])
返回 True
。但是光栅化仍然不正确,没有任何改变...
尝试使用 Rasterio 库中的栅格化函数栅格化具有特定属性的多段线 shapefile。这个函数需要一个包含 (geometry, value) 元组的可迭代对象,几何是一个类似 GeoJSON 的对象(参见 documentation). This geometry can be extracted with fiona or geopandas, I've read this question 并尝试过它(因此使用 geopandas)但是几何不正确,因为我用"is_valid_geom",结果是 "false",这看起来合乎逻辑,因为当我打印这个几何图形时,它显示:<generator object <genexpr> at 0x000001903856C048>
。我也像这样尝试过 Fiona:
shapeee = fiona.open(shapefile)
geom_fiona = [shapes['geometry'] for shapes in shapeee]
attrib_fiona = [shapes['properties']['OBJECTID'] for shapes in shapeee] # attribute
print(features.is_valid_geom(geom_fiona)) # FALSE
这也是 returns "false" 但我不明白为什么,因为几何形状似乎是正确的:
print(geom_fiona)
"[{'type': 'LineString', 'coordinates': [(177421.98120000213, 142766.21020000055), (177409.1555000022, 142781.71609999985), (177392.76659999788, 142801.65300000086) and so on..."
所以最后,当我尝试光栅化时,我没有收到任何错误消息,但输出是一张空白图像,所有值都为 0...光栅化代码:
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)
注意:我已经阅读 this 并且我的 shapefile 和用于评级的栅格之间的投影相同
有人知道问题出在哪里吗?
几何实际上是有效的! features.is_valid_geom(geom_fiona)
返回 false
因为我将整个几何作为参数。写入 features.is_valid_geom(geom_fiona[0])
返回 True
。但是光栅化仍然不正确,没有任何改变...