GDAL进行RPC正射校正

参考链接:

https://www.cnblogs.com/xiaowangba/archive/2012/11/17/6314000.html

 正射校正

 

对OrbView-3卫星影像进​​行正射校正使用下面的命令:

 

[plain] view plaincopyprint?

  1. > gdalwarp -dstnodata 0 -srcnodata 0-overwrite -t_srs epsg:32635 -wo "INIT_DEST=NO_DATA" -rpc -to"RPC_DEM=D:\temp\rb\DEM_merged.tif"  

 

点击这个链接,可以查看gdalwarp工具的详细参数和帮助。如果该命令执行失败,首先检查GDAL是否安装成功,然后检查GDAL版本是否支持RPC校正,如果这两个都正常,结果还是失败,那么就是设置的图像输出坐标系有关系。

解决上面的第一个方法就是减少指定的参数​。除了指定使用RPC校正之后,其余均使用默认参数,如下:

 

[plain] view plaincopyprint?

  1. $ gdalwarp -rpc3v050909p0000897861a520004700712m_001631680.tif test.tif  
  2. Warning 1:TIFFReadDirectory:Unknown field with tag 34000 (0x84d0) encountered  
  3. Creating output file that is12925P x 23537L.  
  4. Warning 1:TIFFReadDirectory:Unknown field with tag 34000 (0x84d0) encountered  
  5. Processing input file3v050909p0000897861a520004700712m_001631680.tif.  
  6. 0...10...20...30...40...50...60...70...80...90...100- done.  

您可以重复执行该正射校正命令,得到新的图像文件

[plain] view plaincopyprint?

  1. > gdalwarp -dstnodata 0 -srcnodata 0-overwrite -t_srs epsg:32635 -wo "INIT_DEST=NO_DATA" -rpc -to "RPC_DEM=D:\temp\rb\DEM_merged.tif" D:\temp\rb\3v050909p0000897861a520004700712m_001631680.org.tif D:\temp\rb\3v050909p0000897861a520004700712m_001631680.rec.tif  


RPC模型使用的坐标系是WGS84和数字高程数据(DEM),使用相对的大地水准面,这个值与真正的大地水准有一定的高差,而在正射校正是需要解决这种差异。如何确定这个高程差,一般使用的是采取图像的中心点的图像坐标(27D 2'550.34“Ë,55D 1'140.26”Ñ),并上传到这个在线资源,或者这个在线资源(此计算可以借助的网上资源,也可以使用的软件,如,proj4等)进行计算得到。此处的结果是22.0157米,在EGM96模型上。

 

对于使用消除大地水准面高差进行正射校正的命令如下:

 

[plain] view plaincopyprint?

  1. > gdalwarp -dstnodata 0 -srcnodata 0-overwrite -t_srs epsg:32635 -wo "INIT_DEST=NO_DATA" -rpc -to"RPC_DEM=D:\temp\rb\DEM_merged.tif" -to"RPC_HEIGHT=22.0157"  
  2.   D:\temp\rb\3v050909p0000897861a520004700712m_001631680.org.tifD:\temp\rb\3v050909p0000897861a520004700712m_001631680.rec2.tif  

 

如果要将结果转换到另一个坐标系统,只需将t_srs参数这是为需要的坐标系即可。如果这时gdalwarp执行失败,很有可能就缺少DEM数据导致,下载相邻的DEM数据试试。

五、 结论

为了评估使用GDAL正射校正的进度,这里利用商业软件ENVI EX同GDAL进行对比。如下图,这里是一个图像在同一地点的,绿色的点是GPS轨迹。

 

在上图中,我们可以看到,当没有使用大地水准面进行正射校正的道路有些偏移。而使用大地水准面的高差进行正射的结果同时用软件ENVI EX的结果是相同的。

使用GDAL进行正射校正会出现下图中的横向锯齿问题,但是使用程序wxGIS处理的结果不会出现这样的情况,wxGIS也是基于GDAL库。为了消除这个问题,在命令行上,你需要添加选项-et 0.0。示例命令:

 

[plain] view plaincopyprint?

  1. > gdalwarp -dstnodata 0 -srcnodata 0 -overwrite-t_srs epsg:32635 -wo "INIT_DEST=NO_DATA" -et 0.0 -rpc -to"RPC_DEM=D:\temp\rb\DEM_merged.tif" -to"RPC_HEIGHT=22.0157"  
  2.  D:\temp\rb\3v050909p0000897861a520004700712m_001631680.org.tifD:\temp\rb\3v050909p0000897861a520004700712m_001631680.rec2.tif  

你可能感兴趣的:(GDAL,RPC,遥感)