将Raster波段指定为Loop中的变量名称 - “无法分配”错误

时间:2014-06-02 19:33:35

标签: python function loops

我想编写两个嵌套循环,迭代一系列八个JPG图像的RGB波段。稍后这些图像应按通道组合成一个数组通道,因此每个通道数组必须首先具有正确的名称:

for ColorBand in [1, 2, 3]:
        for eighth in range(0,8):
            rastername="20140525-16-20-00_full_"+str(eighth)+"_0.jpg"
            raster =gdal.Open(rastername)
            band = raster.GetRasterBand(ColorBand)
            "eighth_"+str(eighth)+"_"+ColorBand = band.ReadAsArray()

不幸的是,这会返回“无法分配给函数调用”错误。我无法找到一个正确的答案如何在其他问题中解决这个问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

错误在于:

"eighth_"+str(eighth)+"_"+ColorBand = band.ReadAsArray()

您似乎正在尝试创建变量名称并为其分配band.ReadAsArray()的结果。

您可以创建字典,说color_dict并将"eighth_"+str(eighth)+"_"+ColorBand作为键,并使用它来指定band.ReadAsArray()的值。即,

color_dict = {}
color_dict["eighth_"+str(eighth)+"_"+ColorBand] = band.ReadAsArray()

稍后在您的代码中,您可以color_dict["eighth_"+str(eighth)+"_"+ColorBand]

访问此数据