使用GDAL.RaterizeLayer在不同层属性测试的不同波段中进行栅格化

2024-06-09 05:10:23 发布

您现在位置:Python中文网/ 问答频道 /正文

使用RasterizeLayer(),我想在3个波段中从多边形层进行光栅化。每个波段都应该从源层中的一个atribute获取其像素值。有没有办法通过一次呼叫RasterizeLayer来实现这一点?到目前为止,我只通过三次调用RasterizeLayer实现了预期的结果:

gdal.RasterizeLayer(outds,[1], maskLyr, options=["ATTRIBUTE=CATEGORY"])
gdal.RasterizeLayer(outds,[2], maskLyr, options=["ATTRIBUTE=ID1"])
gdal.RasterizeLayer(outds,[3], maskLyr, options=["ATTRIBUTE=ID2"])

当使用如下燃烧值时,我可以一次燃烧几层(燃烧值111在频带1中,222在频带2中,333在频带3中):

gdal.RasterizeLayer(outds,[1,2,3], maskLyr, burn_values=[111,222,333])

我希望我的情况也能做到这一点。但我没能做到这一点。下面这样的东西会很棒(它不起作用——只是一厢情愿):

gdal.RasterizeLayer(outds,[1,2,3], maskLyr, options=["ATTRIBUTE=CATEGORY", "ATTRIBUTE=ID1", "ATTRIBUTE=ID2"])

然而,我一直未能找到一种方法来做到这一点。这是可能的,还是我目前的解决方案是唯一的选择


Tags: 光栅波段attribute多边形optionsid2gdalcategory