使用GDAL进行RPC坐标转换

对于高分辨率遥感卫星数据而言,目前几乎都提供了有理函数模型(RFM)来进行图像校正(SPOT系列提供了有理函数模型之外还提供了严格轨道模型)。对遥感影像进行校正目前最常用的就是使用有理函数模型来进行校正。

有理函数模型的计算公式网上可以搜到,同时我之前的博客中也有比较详细的说明,可以参考这篇博客http://blog.csdn.net/liminlu0314/article/details/24810593。

GDAL库从1.3左右就开始提供基于RPC的坐标转换,到目前2.x版本以来,基于RPC的坐标转换一直在持续优化,从1.X版本到2.X版本,计算速度有了较大提升。


下面是使用GDAL基于RPC坐标转换的代码:

#include "gdal_priv.h"
#include "gdal_alg.h"void main()
{CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");CPLSetConfigOption("GDAL_DATA", "./data");GDALAllRegister();//注册驱动const char* pszTif = "F:\\ZY3_TLC_E115.5_N39.8_20150110_L1A0002974893-NAD.tiff";//打开数据GDALDataset *pDS = (GDALDataset*)GDALOpen(pszTif, GA_ReadOnly);//从元数据中获取RPC信息char** papszRPC = pDS->GetMetadata("RPC");//将获取的RPC信息构造成结构体GDALRPCInfo oInfo;GDALExtractRPCInfo(papszRPC, &oInfo);GDALClose((GDALDatasetH)pDS);//设置RPC模型中所需的DEM路径char** papszTransOption = NULL;papszTransOption = CSLSetNameValue( papszTransOption, "RPC_DEM", "E:\\DEM.img" );   //设置DEM//使用RPC信息,DEM等构造RPC转换参数void *pRPCTransform = GDALCreateRPCTransformer(&oInfo, FALSE, 0, papszTransOption);//定义图像的四个角点行列号坐标double dX[4] = {0, 24525, 24525, 0};double dY[4] = {0, 0, 24438, 24438};double dZ[4] = {0, 0, 0, 0};int nSuccess[4] = {FALSE};//输出原始行列号坐标printf("row col:\n");for(int i=0; i<4; i++)printf("%d\tX=%.7f\tY=%.7f\tZ=%.7f\n", i, dX[i], dY[i], dZ[i]);//调用RPC坐标转换函数进行坐标转换反算(行列号转经纬度)GDALRPCTransform(pRPCTransform, FALSE, 4, dX, dY, dZ, nSuccess);//输出转换的经纬度printf("long lat:\n");for(int i=0; i<4; i++)printf("%d\tX=%.7f\tY=%.7f\tZ=%.7f\n", i, dX[i], dY[i], dZ[i]);//调用RPC坐标转换函数进行坐标正算(经纬度转行列号)GDALRPCTransform(pRPCTransform, TRUE, 4, dX, dY, dZ, nSuccess);//输出转换后的行列号坐标printf("row2 col2:\n");for(int i=0; i<4; i++)printf("%d\tX=%.7f\tY=%.7f\tZ=%.7f\n", i, dX[i], dY[i], dZ[i]);//释放资源GDALDestroyRPCTransformer(pRPCTransform);CSLDestroy(papszTransOption);
}

使用GDAL进行RPC坐标转换相关推荐

  1. 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示

    一直在做遥感图像处理的东西,多是一些数字图像处理的分类算法,忘了自己竟是学地学这块的,现在连基本的经纬线都忘了,真是惭愧!现补充如下,以备后用. 关于经纬度的相关定义: 经线: 经线也称子午线,是人类 ...

  2. 度分 格式 转换 GPS 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示

    转自:http://blog.csdn.net/lijie45655/article/details/6771524 手持GPS,正在学习当中,晚上我在谷歌地球上找到端午节要去的目的地,找出了它的经纬 ...

  3. 地图坐标系大全:常用地图坐标系详解与转换指南

    介绍地图坐标系的基本概念和原理 地图坐标系是用于描述地图上位置的数学模型.它可以用来表示地球表面上的任意一个点,使得这个点的位置可以在地图上精确定位.不同的地图坐标系采用不同的基准面和投影方式,因此会 ...

  4. Wrong number or type of arguments for overloaded function ‘CoordinateTransformation_TransformPoint‘

    升级python环境时gdal出现缺少proj的问题 gdal在做坐标转换时报出如此的错误.原系统的代码没有改变,为了更新sentinelhub包,将python环境由3.6升级至3.7.升级了pyt ...

  5. 修改GDAL库支持RPC像方改正模型

    最近在做基于RPC的像方改正模型,方便对数据进行测试,修改了GDAL库中的RPC纠正模型,使之可以支持RPC像方改正参数. 下面是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...

  6. 使用GDAL库中的RPC校正问题

    最近将GDAL库更新至1.11版本之后,发现之前写的RPC像方改正模型校正的结果偏差特别大(更新版本之前结果和PCI处理的结果一致).所以初步判断是GDAL库的bug,经过各个参数修改发现原来是指定的 ...

  7. gdal坐标转换总结(转换)

    转自https://blog.csdn.net/qq_32657025/article/details/80176520 首先,在进行坐标转换之前,有必要先了解一下有关坐标系的几个基本概念. 地理坐标 ...

  8. GDAL 2.0版本RPC校正速度测试

    GDAL2.0版本的更新日志中提到了对RPC校正的优化,今天测试了一下,发现提升的速度还是蛮快的,测试的数据是一个IRS-P5的数据. 单线程测试 首先使用一个线程进行测试,使用下面的批处理进行运行, ...

  9. 利用Qt+GDAL库制作经纬度坐标转换工具

    1.功能界面 下面是用Global Mapper计算的结果,证明计算正确. 2.功能介绍 支持CGCS2000/WGS84/XIAN80/BEIJING54四种常用坐标系: 自动判断输入经纬度和X/Y ...

最新文章

  1. cmake使用教程(十一)-使用cpack打包源码并编写自动化脚本上传到仓库
  2. umi搭建react+antd项目(五)子组件编写
  3. 面向对象技术-设计模式的图
  4. 天猫11.11:手机淘宝 521 性能优化项目揭秘
  5. 03-29复利计算单元测试
  6. Redis 是单线程凭什么能支撑高并发
  7. 作者:张金芳(1970-),男,中国科学院软件研究所副研究员
  8. python多个对象调用类方法、且之间有联系_趣味解读Python面向对象编程 (类和对象)...
  9. 力扣 746 使用最小化花费爬楼梯
  10. 特斯拉好事连连:自动驾驶新硬件性能提升10倍,两名新董事昨晚上任,股价涨5.6%...
  11. java基本数据类型
  12. 关于一个简易的html登陆界面并且连接数据库判断
  13. 帆软报表js给某个单元格添加背景色
  14. 计算机上静音快捷键是什么,电脑静音快捷键是什么(电脑静音快捷键怎么设置)...
  15. Interpretable Machine Learning中GLM,GAM等
  16. Shell - cp
  17. 机器学习定义及基本术语(根据周志华的《机器学习》概括)
  18. 今日头条信息流广告怎么做?(今日头条信息流广告费用解析)
  19. Flex:对日本旧历日期及其它输入内容的验证。
  20. 生僻字用计算机弹的数字,抖音生僻字计算器乐谱完整版 抖音生僻字计算器数字简谱...

热门文章

  1. 值对于int32太大或太小_影响涂镀层测厚仪测量值的因素与解决方法
  2. python筛选时间段_django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
  3. 微信小程序保存canvas绘制的图片到本地,拒绝图片授权后继续授权
  4. CPU的内部架构和工作原理
  5. 201409-2-画图
  6. 网络安全管理的“模拟人生”
  7. Word中调整编号和文字的间距
  8. 『力荐汇总』这些 VS Code 快捷键太好用,忍不住录了这34张gif动图
  9. 佛祖保佑代码无bug图片_程序员都有哪些奇趣的代码注释,细思极恐
  10. python基础: day4作业计算器