◎ 住房和城乡建设部信息中心 熊立创
中国科学院遥感应用研究所 张 宁
IDL(Interactive Data Language)和ENVI都是美国ITT Visual Information Solutions公司的旗舰产品。IDL是一种面向对象的跨平台开发语言,具备语法简单、处理矩阵能力强等特点,是很多科研人员做数据分析、图像处理和可视化的首选工具;ENVI(The Environment for Visualizing Images)是一套使用IDL语言开发的,专门用于遥感影像数据处理和信息提取的工具化软件,目前已经广泛应用于环保、气象、矿产勘探和农业等诸多领域。
本文主要是利用IDL语言和ENVI软件提供的二次开发接口,编写基于高分遥感数据的城镇污水处理设施提取工具。
基于高分遥感数据的标准和样例数据,利用IDL语言和ENVI软件提供的二次开发接口,开发城镇污水处理设施提取工具,实现城镇污水处理设施的自动识别和提取,
提取工具应结合高分遥感数据的生产标准,利用样例数据,实现城镇污水处理设施的自动识别,结合人工目视解译对提取初步成果进行筛选,并就提取对象追加属性信息。
应具备基本的文件操作和地图操作,包括加载矢量数据、影像数据、新建工程、地图浏览、地图缩放、波段选择等常用功能。
提供参数设置功能,方便用户可以对提取、融合和识别算法的关键属性进行调整,以测试不同参数对提取结果的影响效果。
提供算法选择功能,方便用户对提取算法、融合算法进行选择,以检验不同算法、不同组合对提取结果的影响效果。
提供矢量编辑功能,由于算法和参数对于不同设施类型的提取精度不同,用户可以对初步的提取成果进行简单筛选,剔除个别错误图斑,并结合业务知识,就提取结果追加设施类型、所属水厂等属性信息。
ENVI提供了二次开发调用接口,方便进行批处理调用和搭建业务化应用平台。“ENVI_FX_SEGMENTONLY_DOIT” 是调用ENVI函数来进行图像分割的函数。需要输入一些基本的参数,如下表1所示:
特征提取算法的流程图如下图所示:
表1 分割函数参数说明
图1 特征提取流程图
其关键步骤包括:
第一,用户需要指定的属性值参数(表2)范围(值域),但一般不可能将全部属性值都赋值,因此我们剔除掉用户未指定的(即最大值和最小值都为0),以及不合理的值(即属性值的最小值大于等于最大值),由此可以得到有效属性值参数和值域。以此为标准,在输入的矢量数据中进行筛选,得到了有效的对象矢量。
第二,对有效的对象矢量进行聚簇处理。计算每个有效对象周边一定范围之内的有效对象个数,该范围由参数radius_search来指定。以每个有效对象为中心都可以组成一个的数据簇,将其定义成聚簇的对象矢量。
第三,从聚簇的对象矢量中找到最密集数据簇,如果最密集数据簇中对象的个数大于1,那么缩小radius_search,再重复进行聚簇处理的过程,直到最密集数据簇中对象的个数等于1。将最密集数据簇中所有的对象矢量定义为目标对象矢量,认为这些地物对象是污水处理厂中的全部或一部分。
第四,如果污水处理厂的个数(num_factory)大于1个,就要重复第二步和第三步,在重复以上步骤之前,要从有效对象矢量数据中删除掉已搜索到的目标对象矢量。最终我们得到了目标探测结果。
图像分割后得到的矢量数据是地物特征提取的基础,分割后的矢量数据包含了丰富的光谱、空间和纹理信息,通过对提取对象的分析和反复提取试验,设置适宜的提取参数,直接影响识别的准确度。
经验证,在提取过程中加入提取范围内城镇污水处理厂的一些经验参数,将有效提高提取的效率,例如:num_factory(该影像范围内污水处理厂的大致个数)、radius_search(污水处理厂的大致半径),这些经验参数可以从现有“全国城镇污水处理信息系统”中获取。
表2 提取参数列表