从大栅格中提取补丁:内存错误和合并多个波段?

我对Python还是很陌生,所以请原谅可能是一个基本问题。

因此,我试图创建一个训练数据集,其中包含用于图像补丁的文件和用于遮罩的文件。目前,它们都是我从中提取补丁的大栅格。图像有3条带,而遮罩有1条

ds = gdal.Open(A_Clipped,gdal.GA_ReadOnly)
es = gdal.Open(Mask_Clipped,gdal.GA_ReadOnly)

#Raster Info
#print (ds.GetMetadata(),ds.RasterXSize,ds.RasterYSize)
#print (ds.GetProjection())
#print ("Number of raster bands",ds.RasterCount)


band1 = ds.GetRasterBand(1)
band2 = ds.GetRasterBand(2)
band3 = ds.GetRasterBand(3)

mask = es.GetRasterBand(1)

ar1 = band1.ReadAsArray()
ar2 = band2.ReadAsArray()
ar3 = band3.ReadAsArray()

mask_ar= mask.ReadAsArray()

在提取补丁时,我遇到了内存错误,因此指定的max_patches小于我想要的大小:

###Extract Patches###

A1_image = ar1
print('A1 Image shape: {}'.format(A1_image.shape))

patches1 = image.extract_patches_2d(A1_image,(64,64),max_patches=100)
print('A1Patches shape: {}'.format(patches1.shape))

.
.
.

Mask_image = mask_ar
print('M Image shape: {}'.format(Mask_image.shape))

Mask_patches = image.extract_patches_2d(Mask_image,max_patches=100)
print('M Patches shape: {}'.format(Mask_patches.shape))

所以我有两个问题: 1.是否还有其他方法可以解决此内存错误(也许是保存选项?),所以我可以指定更多的补丁程序?作为参考,我的图像形状为图像形状:(8964,8180)。 2.是否有必要将现在的3波段图像中的3个阵列合并在一起?

liyan9991 回答:从大栅格中提取补丁:内存错误和合并多个波段?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3151003.html

大家都在问