码迷,mamicode.com
首页 > 其他好文 > 详细

使用GDAL图书馆RPC校正问题

时间:2015-08-08 14:53:03      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

很快就会GDAL库更新1.11版本号之后,在发现之前写RPC像方误差修正模型校准结果特别大(在更新结果之前的版本号和PCI结果一致)。所以初步推断是GDAL库的bug,经过各个參数改动发现原来是指定的DEM採样方式导致的。

当指定DEM的採样方式为最邻近时,校正结果偏差非常大,当DEM採样方式为双线性採样和三次立方卷积採样时,处理的结果与之前的结果一样。截图如图1所看到的。红色区域为对照区域,如图2所看到的。

技术分享

图1 PCI校正结果全图

技术分享

图2  图1中的红色区域按实际像素放大显示结果

以下是使用gdalwarp工具外加仿射修正模型进行校正的结果。首先使用DEM为最邻近採样,gdalwarp命令行例如以下:

gdalwarp -of GTiff -tr 2.5 2.5 -t_srs ESRI::"D:\WGS_1984_UTM_Zone_50N.prj" -rpc -r cubic -wm 1024 -to "RPC_AFFINE=-32.67376693 0.99919599 0.00013941 28.71988840 0.00062236 1.00004356" -to "RPC_DEM=D:\Data\正射纠正基础数据\DEM数据\beijing_all2.img" -to "RPC_DEMINTERPOLATION=near" D:\Data\711_214_26sep2006_p5\SrcData\bandf.tif D:\bandf_rpc1.tif --config GDAL_FILENAME_IS_UTF8 NO
处理的结果与PCI结果对照方图3所看到的。

技术分享
图3  GDAL指定DEM插值为最邻近处理结果

接下来指定DEM重採样方式为双线性。代码和处理结果例如以下:

gdalwarp -of GTiff -tr 2.5 2.5 -t_srs ESRI::"D:\WGS_1984_UTM_Zone_50N.prj" -rpc -r cubic -wm 1024 -to "RPC_AFFINE=-32.67376693 0.99919599 0.00013941 28.71988840 0.00062236 1.00004356" -to "RPC_DEM=D:\Data\正射纠正基础数据\DEM数据\beijing_all2.img" -to "RPC_DEMINTERPOLATION=bilinear" D:\Data\711_214_26sep2006_p5\SrcData\bandf.tif D:\bandf_rpc2.tif --config GDAL_FILENAME_IS_UTF8 NO
处理的结果与PCI结果对照方图4所看到的。


技术分享

图4 GDAL指定DEM插值为双线性处理结果

接下来指定DEM重採样方式为三次立方卷积,代码和处理结果例如以下:

gdalwarp -of GTiff -tr 2.5 2.5 -t_srs ESRI::"D:\WGS_1984_UTM_Zone_50N.prj" -rpc -r cubic -wm 1024 -to "RPC_AFFINE=-32.67376693 0.99919599 0.00013941 28.71988840 0.00062236 1.00004356" -to "RPC_DEM=D:\Data\正射纠正基础数据\DEM数据\beijing_all2.img" -to "RPC_DEMINTERPOLATION=cubic" D:\Data\711_214_26sep2006_p5\SrcData\bandf.tif D:\bandf_rpc3.tif --config GDAL_FILENAME_IS_UTF8 NO
处理的结果与PCI结果对照方图5所看到的。
技术分享

图5 GDAL指定DEM插值为三次立方卷积处理结果

改动GDAL源代码中的文件gdal_rpc.cpp两处地方,就是将GDT_Int32改动为GDT_Float64。原因非常easy就是变量dfDMEH是一个double类型。读取数据的时候也须要依照double类型进行读取,而原来的代码是依照Int32类型读取,导致读取出来的DEM高程值有问题。

改动后代码见图6,共同拥有两处。坐标正变换和逆变换都须要改动。

技术分享

图6 改动后的GDAL代码

改动后又一次编译GDAL就可以。使用改动后的程序,指定DEM插值为最邻近后处理的结果如图7。

技术分享

图7 改动后正射的结果对照
已经将该问题反馈至GDAL开发组。详细地址为:http://trac.osgeo.org/gdal/ticket/5553。据预计,在未来的版本号会被纠正。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

使用GDAL图书馆RPC校正问题

标签:

原文地址:http://www.cnblogs.com/lcchuguo/p/4713039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!