具体技术介绍参考:
(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方式安装的。
只为记录,无意冒犯版权!