python 读取 遥感图像_python+GDAL遥感图像像素坐标与地理坐标转换(仿射变换)...

本文介绍了如何使用Python和GDAL库进行遥感图像的像素坐标与地理坐标的仿射变换转换。通过读取GDAL数据集的仿射矩阵,结合GetGeoTransform()函数获取六参数信息,实现坐标之间的转换。
摘要由CSDN通过智能技术生成

73489146db53fa08fa25c12079d8ae86.png

最近师兄让我用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

搞定!

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值