基于Python+GDAL库的遥感数据几何校正【附源码】

 具体技术介绍参考:

(23条消息)Python 利用GDAL对图像进行几何校正_python_可乐Mentos的博客-CSDN博客
https://blog.csdn.net/qq_27045589/article/details/81062586

代码参考:

python调用GDAL实现几何校正 - 楚彦 - 博客园
https://www.cnblogs.com/jkmlscy/p/10382668.html

# coding:utf-8
from osgeo import osr
from osgeo import gdal
from osgeo import gdalconst
import time

def main():
    # 开始计时
    print('开始时间:', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

    infile = "F:\\XXX.tiff"
    outfile = "F:\\MOD13A2_20180610_H23V04_NDVI_GEO.tiff"

    dataset = gdal.Open(infile, gdal.GA_Update)

    # gcps_list = [gdal.GCP(77.760364, 50.00, 0, 0, 0),
    #              gdal.GCP(93.330364, 50.00, 0, 1199, 0),
    #              gdal.GCP(78.320364, 40.01, 0, 1199, 1199),
    #              gdal.GCP(65.270364, 40.01, 0, 0, 1199)]

    gcps_list = [gdal.GCP(114.946, 31.317, 0, 0, 0),
                 gdal.GCP(115.198, 31.2665, 0, 7300, 0),
                 gdal.GCP(115.14, 31.058, 0, 7300, 6908),
                 gdal.GCP(114.889, 31.1083, 0, 0, 6908)]

    # gcps_list = [gdal.GCP(31.317, 114.946, 0, 0, 0),
    #              gdal.GCP(31.2665, 115.198, 0, 0, 7300),
    #              gdal.GCP(31.058, 115.14, 0, 6908, 7300),
    #              gdal.GCP(31.1083, 114.889, 0, 6908, 0)]

    #读取RPB 文件,以下方式读取高分二号不好用,错误提示无法识别文件格式
    # rpb_file = "F:\\XXX.rpb"
    # tif_with_RPBs = gdal.Open(rpb_file, gdalconst.GA_ReadOnly)
    # rpbs = tif_with_RPBs.GetMetadata('RPC')
    # dataset.SetMetadata(rpbs, 'RPB')

    sr = osr.SpatialReference()
    sr.SetWellKnownGeogCS('WGS84')
    dataset.SetGCPs(gcps_list, sr.ExportToWkt())

    # Jerry:重点调整了xRes 和 yRes 控制分辨率的两个参数
    dst_ds = gdal.Warp(outfile, dataset, format='GTiff', tps=True,
                       xRes=0.00003, yRes=0.00003, dstNodata=-3000, srcNodata=-3000,
                       resampleAlg=gdal.GRIORA_Bilinear, outputType=gdal.GDT_Float32)
    # print dst_ds
    del dataset, gcps_list, sr
    # del tif_with_RPBs

    print('结束时间:', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

if __name__ == '__main__':
    main()

以上代码基于Pycharm 环境下的python语言开发的。from osgeo 用到了GDAL库。不知道为啥Pycharm 环境下为什么安装不了GDAL库,折腾了很久最后通过wheel方式安装的。

只为记录,无意冒犯版权!

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值