像素坐标转换实际坐标python_python+GDAL遥感图像像素坐标与地理坐标转换(仿射变换)...

最近师兄让我用python让我写一个遥感图像的像素坐标与地理坐标进行转换的小程序,虽然比较简单,但是还要记录一下。

不同坐标系的转换,涉及到仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。

本文利用GDAL读取仿射矩阵,GDAL利用pip install gdal即可,如果失败,下载whl文件,然后pip install **.whl即可,下载地址为https://www.lfd.uci.edu/~gohlke/pythonlibs/#GDAL​www.lfd.uci.edu

首先读取数据集:

#读取tif数据集

def readTif(fileName):

dataset = gdal.Open(fileName)

if dataset == None:

print(fileName+"文件无法打开")

return dataset

之后利用GetGeoTransform()函数读取仿射矩阵信息:

#获取仿射矩阵信息

def Getgeotrans(fileName):

dataset = readTif(fileName)

return dataset.GetGeoTransform()

仿射矩阵信息有六个参数,描述的是栅格行列号和地理坐标之间的关系:

'''

0:图像左上角的X坐标;

1:图像东西方向分辨率;

2:旋转角度,如果图像北方朝上,该值为0;

3:图像左上角的Y坐标;

4:旋转角度,如果图像北方朝上,该值为0;

5:图像南北方向分辨率;

'''

得到这六个参数之后就可以进行图像像素坐标(即行列号)和地理坐标之间的变换:

#像素坐标和地理坐标仿射变换

def CoordTransf(Xpixel,Ypixel,GeoTransform):

XGeo = GeoTransform[0]+GeoTransform[1]*Xpixel+Ypixel*GeoTransform[2];

YGeo = GeoTransform[3]+GeoTransform[4]*Xpixel+Ypixel*GeoTransform[5];

return XGeo,YGeo

搞定!

你可能感兴趣的:(像素坐标转换实际坐标python_python+GDAL遥感图像像素坐标与地理坐标转换(仿射变换)...)