初学python地理数据处理,现在想读取一幅影像中的部分影像,并进行重采样:
使用 GDAL 读取 2012_test.tif 的第 1000 行- 11000 行和第 1000 列- 11000 列,压缩成 2500*2500 尺寸,显示出来,并存储到新数据集。
使用python,我的代码如下:
import matplotlib.pyplot as plt
from osgeo import gdal
import numpy as np
# 打开数据集
fn = r"2012_test.tif"
in_ds = gdal.Open(fn) # 读取数据
num_bands = in_ds.RasterCount # 获取数据类型和波段
data_type = in_ds.GetRasterBand(1).DataType
img = np.empty((2500, 2500), dtype=np.uint8) # 读取数据,并用较小的缓存来存放结果
in_ds.ReadAsArray(1000, 1000, 10000, 10000, 2500, 2500,img)
plt.figure()
plt.imshow(img)
plt.show()
但是出现了报错,
Traceback (most recent call last):
File "D:\桌面\python\totaltext\课程\删格.py", line 12, in <module>
in_ds.ReadAsArray(1000, 1000, 10000, 10000, 2500, 2500,img)
File "D:\python\lib\site-packages\osgeo\gdal.py", line 2508, in ReadAsArray
return gdal_array.DatasetReadAsArray(self, xoff, yoff, xsize, ysize, buf_obj,
File "D:\python\lib\site-packages\osgeo\gdal_array.py", line 339, in DatasetReadAsArray
if len(buf_obj.shape) != 3:
AttributeError: 'int' object has no attribute 'shape'
Process finished with exit code 1
想问一下怎么解决,有具体代码最好