我有四个光栅图像,它们都有相同的行和列,但nodata值分布在多个行和列中。 我想得到一个二维掩模,因为所有这些光栅图像的值都不是空的。然后将新值传递到遮罩位置以获得tif图像。 我在获取2D蒙版时遇到了一些问题
我试着用“和”来获得面具,但失败了
def readtif (tif1,tif2,tif3,tif4):
In1 = gdal.Open(tif1, gdal.GA_Update)
R1 = np.array(In.GetRasterBand(1).ReadAsArray())
In2 = gdal.Open(tif2, gdal.GA_Update)
R2 = np.array(In1.GetRasterBand(1).ReadAsArray())
In3 = gdal.Open(tif3, gdal.GA_Update)
R3 = np.array(In2.GetRasterBand(1).ReadAsArray())
In4 = gdal.Open(tif4, gdal.GA_Update)
R4 = np.array(In3.GetRasterBand(1).ReadAsArray())
ndv = In.GetRasterBand(1).GetNoDataValue()
mask = [R1 != ndv and R2 != ndv and R3 != ndv and R4 != ndv and R4 < 50]
return In4, R4, mask
(ReferRaster, ReferArray, valid) = readtif(tif1,tif2,tif3,tif4)
with open(path2+estY, 'r') as csvfile:
Update_M = []
for row in csv.reader(csvfile, delimiter=' ', quotechar='|'):
Update_M.append(float(row[0])) # careful here with [0]
ReferRaster[valid] = Update_M
driver = gdal.GetDriverByName('Gtiff')
dst_ds = driver.CreateCopy(ReferRaster, ReferArray, 1)
dst_ds.GetRasterBand(1).WriteArray(ReferRaster)
获取带有多个“和”的面具时出现问题 ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()
目前没有回答
相关问题 更多 >
编程相关推荐