首先,对于多波段影像里面有很多信息(包括仿射变换、投影信息),因此首先要读取TIF数据。
其中里面包含根据仿射矩阵获取地理坐标信息等代码。
def readTif(fileName, xoff=0, yoff=0, data_width=0, data_height=0):
'''
读取tif影像数据
'''
dataset = gdal.Open(fileName)
if dataset == None:
print(fileName + "文件无法打开")
# 栅格矩阵的列数
width = dataset.RasterXSize
# 栅格矩阵的行数
height = dataset.RasterYSize
# 波段数
bands = dataset.RasterCount
# 获取数据
if(data_width == 0 and data_height == 0):
data_width = width
data_height = height
data = dataset.ReadAsArray(xoff, yoff, data_width, data_height) # np.array
# print(type(data))
# 获取仿射矩阵信息
geotrans = dataset.GetGeoTransform()
# 获取投影信息
proj = dataset.GetProjection()
arrXY = [] # 用于存储每个像素的(x,y)坐标
for i in range(height):
row = []
for j in range