在python中,我使用以下代码行:
在gdal.RasterizeLayer公司(outDs,[1],Shp,burn U值=[ii])
我的shapefile“Shp”有一个名为“landuse”的字段,它存储字符串(类名)。 我需要为不同的类名烧录一个数字。我想用一个“where”从句,比如:where‘landuse’=‘new exiture’:
for ii in range(class)):
gdal.RasterizeLayer(outDs, [1], Shp, burn_values=[ii], where='"landuse"="class[ii]"')
参数“where”似乎无法识别。如何将其传递给此函数?我想它是可用的,根据C API文档:http://gdal.org/python/osgeo.gdal-module.html#RasterizeOptions
我不确定RasterizeOptions和where not working(无效关键字),但似乎可以使用SetAttributeFilter向Shp添加where子句:
RasterizeLayer执行“快速”有点痛苦,所以这是没有测试的。在
我发现了两个潜在的问题。根据您的示例代码,实际上并不设置所需的土地使用值,而是将
"class[ii]"
作为字符串传递。这意味着GDAL选择了土地使用属性为"class[ii]"
(字面意思是该字符串)的特征。使用字符串格式插入实际值,如:其次,当使用
^{pr2}$RasterizeLayer
时,您可能应该提供一个层作为输入,而不是您所建议的Shapefile。从Shapefile加载层,或者考虑使用Rasterize
。在相关问题 更多 >
编程相关推荐