我想编写两个嵌套循环,迭代一系列八个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()
不幸的是,这会返回“无法分配给函数调用”错误。我无法找到一个正确的答案如何在其他问题中解决这个问题。有人可以帮忙吗?
答案 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]