标签:
ArcGIS海量影像管理解决方案推出已经有一年时间了,相信很多朋友已经对ArcGIS中如何管理海量影像数据有了大致了解。ArcGIS 10.0中推出了适用于海量影像管理的镶嵌数据集模型(Mosaic Dataset),单个镶嵌数据集就可以管理数百万景,不同时相、不同分辨率、不同坐标系、不同空间位置的影像。
为了将各种来源,形式各异的影像数据导入镶嵌数据集中,我们需要为影像指定“栅格类型(Raster Type)”。简单说,栅格类型就是对各种影像数据的分门别类,而这种分类,基本上是按照卫星传感器类型、航摄相机类型进行划分的。下图是ArcGIS内置支持的一些栅格类型:
这里需要将栅格类型和栅格数据格式进行区分:栅格数据格式用于定义栅格像素如何存储,例如行列数、波段数、像素值等。而栅格类型则定义了如何识别影像关联的元数据,以及为影像定义的处理函数,如波段组合、全色融合等。
为了更好地理解栅格类型,我们可以打个比方:你要去电影院看电影,除了人要进去,还需要电影票,如果是3D电影,还需要带上3D眼镜。栅格影像数据入库,就相当于去看电影的过程:除了栅格影像数据本身要进去,还需要元数据信息(电影票),如果是多波段影像,可能还需要进行波段组合(看3D需要3D眼镜)。
1) 需要管理处理过的成果影像:很多单位会对影像数据进行各种处理,例如几何纠正、大气校正、影像拼接等等。经过这些处理的影像,就可能产生了自定义格式的元数据,这样就需要进行栅格类型扩展。
2) 需要管理国产卫星影像:很多单位都有国产卫星影像数据,例如风云系列、北京系列、环境星系列等等。这些卫星的元数据格式,也都形式各异,由于并不是国际通用的商业卫星,因此也需要进行栅格类型扩展。
3) 需要管理军用卫星影像:这类影像元数据格式可能就更加神秘了,如果读者有幸参与相关项目,则必须要通过栅格类型扩展才能管理这类影像。
4) 需要管理航飞拍摄的影像:航片也是影像数据的最大来源之一,比如无人机拍摄等。根据搭载的相机不同,生成的元数据也不尽相同,因此进行栅格类型扩展也是必要的。
那么有哪些影像是不需要进行栅格类型扩展就可以入库的呢?读者可以参考ArcGIS帮助中的介绍:
卫星传感器栅格类型:http://resources.arcgis.com/en/help/#/Satellite_sensor_raster_types/009t000001z6000000/
航空影像栅格类型:http://resources.arcgis.com/en/help/#/Aerial_imagery_raster_types/009t000001zp000000/
OK,到这里,你已经了解了什么是栅格类型,以及在什么情况下需要进行栅格类型扩展,现在是时候学习如何进行栅格类型扩展了。
栅格类型扩展,实际上是通过ArcObjects开发来完成的。读者不必担心开发的难度,因为ArcGIS提供了非常完善的示例,而开发人员需要做的事情,其实就是给栅格类型扩展起个名字,然后去解析一下元数据文件,再根据需要定义一些预处理函数。
其中IThumbnailBuilder只包含一个属性,InnerRasterBuilder,表示栅格类型内置的构造器。
ThumbnailFactory则实现了IRasterTypeFactory接口,主要包含COM注册/反注册函数,栅格类型的名称,以及调用栅格类型构造器的流程。
ThumbnailBuilder则是具体的栅格类型构造器,其中包含了栅格类型扩展的具体处理算法。
上述文件分别为:
1) CgcImageryBuilder:栅格类型构造器,执行具体的栅格类型构造操作;
2) CgcRasterTypeFactory:栅格类型工厂,定义栅格类型名称,提供COM注册函数,提供栅格类型构造器调用流程;
3) BuilderHelper:一些通用的处理函数,比如获取镶嵌数据集默认字段、自定义字段,或者添加字段等;
4) LogHelper:记录操作日志,写日志文件;
MetaReader:包含元数据解析函数,将指定格式的元数据文件,读取为标注的键值对。
这样在影像数据导入镶嵌数据集的时候,就可以选择扩展的栅格类型,保证元数据信息正确入库管理,为下一步影像管理、应用打下坚实的基础。
本文仅介绍栅格类型扩展的技术路线和关键代码,日志记录和其他辅助函数则没有上传,如需完整代码,请在评论中留下邮箱地址。如有疑问,也请在评论中留言探讨。
转自http://blog.csdn.net/esrichinacd/article/details/7844494
标签:
原文地址:http://blog.csdn.net/kone0611/article/details/50978375