本文主要介绍基于C#+GDAL-Python实用工具开发的遥感影像批量处理工具,该工具目前主要包括影像批量切片生成KML文件和影像批量切片生成Tiles文件。该工具.Net框架版本为4.0,GDAL版本为1.11_32位版,Python版本为2.7.3(ArcGIS10.2-10.6自带版本),绿色软件无需安装,但需要配置GDAL+Python环境。环境配置请参考下篇文章,另外下载的程序文件中也有环境配置说明文档。
1、影像批量切片生成KML文件
该工具调用gdal2tiles.py实用工具进行影像切片,并生成kml文件和基于googlemaps和openlayers的网页地图浏览文件。
注意事项:
1、影像路径及文件名不能有中文字符,且不能有空格等符号;
2、该程序文件夹请勿重命名,且放置路径不能有中文字符或空格等字符。
通常切片时间比较长,因此默认勾选“显示控制台进度”,这样可以显示切片进度。切片完成后,生成的kml等文件位于原影像所在路径下,并全部位于原影像名称命名的文件夹中,如下图。
双击doc.kml文件,可以将影像加载到Google Earth中叠加显示,由于是经过切片处理,所以访问和显示速度非常快,另外,切片级数是根据影像原始分辨率确定的。
上图中间部分的影像是切片后叠加上的,当然这个影像本身也是从Google Earth上下载的,所以对比不是很明显。
另外,双击googlemaps.html和openlayers.html文件,可以将该影像在网页版的谷歌地图中叠加显示。然而,由于国内无法访问http://maps.google.com/,所以双击后网页应该是空白的。但如果可以访问的话,大概是下面这个样子(可能底图会有些不一样)。
在执行操作时如果看到一个黑色窗口一闪而过,然后就没反应了。这个时候通常是调用gdal2tiles.py实用工具出现了问题,程序窗口下面的“运行状态及结果”会提示运行代码。
将上面选中的代码复制后(注意不要复制&exit),拷贝到CMD命令窗口中,运行代码,看提示什么错误(下面截图我故意把gdal2tiles.py路径写错了,让其提示错误,如果正确的话会执行切片,并显示进度)。
错误原因通常有三种类型:第一种是Python+GDAL环境没配置好;第二种是上面提到的路径问题,包括该程序保存的路径以及影像文件路径及文件名;第三种是影像数据本身的问题,比如坐标系或投影不对等。具体需要根据错误提示来确定,大部分错误原因是前面两种。
2、影像批量切片成Tiles文件
该工具调用gdal_retile.py实用工具将影像切片成多个一定像素尺寸且带坐标的tif文件。切片影像尺寸默认256x256,也可以手动输入其他整数值,切片生成的tif影像均为正方形。
注意事项:
1、影像路径及文件名不能有中文字符,且不能有空格等符号;
2、该程序文件夹请勿重命名,且放置路径不能有中文字符或空格等字符。
默认勾选“显示控制台进度”,这样可以显示执行状态。这个状态显示与上面不太一样,执行一段时间后一直是黑色窗体没有进度显示,待快执行完的时候窗体第一行快速显示代码,然后退出窗体,表示执行成功。
切片完成后,生成的tif等文件位于原影像所在路径下,并全部位于原影像名称命名的文件夹中,如下图(tif影像未截完全)。
*.csv文件记录每个切片tif影像的名称及四至坐标,如下图。
*.shp文件为每个tif文件的矢量范围,tif文件名后的数值代表该文件在所有切片文件中的行列号,将*.shp文件与tif文件全部加载到ArcGIS软件中,如下图。
该工具与影像标准分幅工具功能有一定相似,都是将一个大的影像切成多个小的影像,不过影像标准分幅工具是按照地形图标准分幅范围进行裁剪,而这个工具是根据设定的像素大小并从影像左上角开始进行计算并切片裁剪。该工具可以用于什么用途,目前我也没有想到。
工具免费下载请关注微信公众号"海洋GISer成长记"。