基于AO的土地利用变化信息检测插件实现
2016-12-28陈宏宇任东宇
陈宏宇,刘 立,任东宇,陈 波
(1.四川省第二测绘地理信息工程院,四川 成都 610000)
基于AO的土地利用变化信息检测插件实现
陈宏宇1,刘 立1,任东宇1,陈 波1
(1.四川省第二测绘地理信息工程院,四川 成都 610000)
基于ArcGIS10.1平台的 Arc Objects组件,开发了一套可批量导入矢量土地利用斑块数据,并对指定类别的数据进行分类查询、统计分析、输出矢量地类斑块类型与面积等功能的本地GIS系统,可利用开发的单机软件快速获取图形与属性信息,并能对不同类别土地利用信息进行初步统计分析,快速获取土地利用变化信息。
GIS;土地利用变化信息;AO组件开发
土地利用变化信息检测是地理国情监测的重要工作之一。目前,土地利用变化研究主要集中在时空演变、驱动力分析、生态环境影响以及趋势预测[1-8],而遥感与GIS技术是重要的方法和技术手段。地理国情监测的“高动态性”客观上要求土地利用变化信息的获取必须具有时效性,做到随时发现变化、获取变化、提供使用[9]。通常情况下,特定土地利用类型的面积监测主要采用专题图制作及系统开发进行管理分析的方案,此方案只针对某一时期的土地信息统筹管理,主要是以专题项目研究为目的的制作开发,涉及快速批量化查询统计处理以及灵活配置管理方面较少。在目前国情速查、地质灾害损毁评估、应急快速响应需要更灵活的方案,快速获取最新的统计信息。
本文基于ArcGIS 10.1平台的Arc Objects(简称AO)组件,开发了集批量矢量数据导入、指定分类地块信息查询、统计显示分析、输出等功能的本地软件,能够快速地获取、统计地块面文件中不同类别地块的面积更新信息,用户可以灵活更替土地类别配置文件并进行动态查询、统计分析,满足快速监测、获取、统计、输出查询结果的需求,可作批处理,减少每次土地更新变化带来的实际统计工作量,达到快速获取、分析土地面积信息变化的目的。
1 系统数据
1.1 输入数据
系统数据要求为Shapefile、MDB、GDB格式的数据文件或数据库,土地类别矢量数据必须包含有NAME字段名、SHAPE Area面积字段。其中,NAME字段为每个地类斑块的类别,是土地类别国家标准中二级类类别名称,string格式,长度一般不大于40个字符,这是为了建立索引的需求。多文件输入表示此地区中包含多个县、市,需要统计整个地区的土地利用信息,也可以单独输入单个县、市的矢量土地利用面文件数据,表示统计查询分析单个地区的土地利用信息。系统将根据配置文件查找已有数据中对应的二级类土地类型,最后归类进行一级类土地面积统计。
1.2 配置数据
系统采用灵活的配置文本,格式为Excel,其中Table表中包含指定的8个一级类土地类型名称以及对应的二级详细土地类型名称,耕地、园地、林地等一级类型名称为一级节点,一级类下包含二级土地类别名称的二级节点,如耕地中包括水田、水浇地、旱地,指定的8大类土地类型名称及二级类名称依次排序。配置的文件可以再进行修改和添加土地类别信息,系统主要根据此配置文件中指定土地类别名称信息表查找计算对应的面积信息。配置表逻辑结构如图1所示。
图1 系统配置指定土地利用类型表
2 系统架构及功能描述
2.1 数据层使用描述
系统采用C/S架构,数据来源包括各类国情监测数据、土地规划详细数据等,数据格式为Shapefile、MDB、GDB,方便用户进行查询统计或分布式分机查询。配置文件同样由用户设定,默认为8类一级土地利用类型。
针对MDB数据库,本系统采用分段式查询,也可单独编写查询代码,即将配置的土地信息节点文件读出后按大节点依次赋值到数组中,再均分筛选条件的数组,对数据进行分批次的查询,最后再将查询的结果汇总到属性表。这是由于MDB数据库对于大批量的查询活动有上限,查询语句过长会导致系统内存异常处理,同时MDB数据库负荷量有限,现在一般使用GDB数据库进行数据存放和查询。该数据库支持长字符串查询,和shapefile文件集一致,直接将配置文件中土地类型字串读出构建ArcGIS下SQL查询。系统查询模块逻辑结构如图2所示。
图2 批量数据查询模块逻辑结构
2.2 系统架构描述
系统采用ArcGIS 10.1平台的ArcObjects组件进行开发。ESRI 公司的ArcGIS 软件是一个功能非常强大的主流地理信息系统平台,它具有功能全面、可伸缩性强、部署范围广等优势。该软件是基于ArcGIS 的组件库(ArcObjects)开发实现的。ArcObjects 组件库包括了ArcGIS 的全部功能,用户可调用这些构件来建立自己的应用系统,基于ArcObjects 组件库开发有VBA 定制、开发独立的EXE应用程序和创建客户化组件3种模式[10-12]。
由于目前ArcGIS10.1平台下VBA以及Pathon脚本方便批量处理数据,但安全性与对应业务的灵活需求不够,而创建客户化组件有灵活安装使用、针对性强的特点。针对本次系统开发,需要更丰富的多个功能集成,所以插件开发对本次开发需要的功能性、便携使用性稍显不足。本研究采用AO组件与.net结合开发EXE应用程序,方便基于AreGIS平台的用户安装使用。
IDE平台在Microsoft Visio Stadio 2010下Winform开发,开发语言为C#,3.5 Framework.net版本,统计显示的柱状图、饼状图使用IDE平台自带的MSchart控件生成,提高了移植后的稳定性。开发的功能架构如图3所示。
图3 系统主要功能架构
系统根据搜索查询、统计分析的需求,主要围绕查询结果表为核心模块进行开发,系统的内部主要逻辑结构如图4所示,
图4 系统逻辑架构
查询模块类中包括各类数据的查询函数,利用土地类型配置类中的读取函数将土地类型节点读出存入数组使用。按照数据类型的不同,构建AO组件下要素Query属性查询,如果是MDB类型数据,采用数组分段构建 SQL语句。查询的结果由主框架数据表获取,这里的查询结果是空间点集,在查询类中定义了委托调用,主框架实现显示函数。统计函数类同样要依赖配置文件,根据配置文件,大节点序号对数据表进行统计计算。
2.3 系统功能描述
系统可导入多种格式的土地利用数据,并按照配置文件指定的二级类进行土地利用面积信息查找,用户也可以自定义二级类土地类型查找。按照查找出的二级类输出对应的一级类土地面积信息,查询结果可以进行调整或者输出为Excel、Word格式,查询表结果同时满足和图形之间的联动。其他功能还包括背景要素的导入,背景要素可以是POI(point of interest)等其他图层,可加载到目录及图层最上层进行对比。系统还包括常用的缩放、比例尺、书签等基础功能,辅助工具还包括高亮点清除功能。
系统实现如图5所示,本文使用了两个地区的数据进行了实验,系统能同时满足单地区和多地区批量导入查询。
图5 系统实现批量输入查询示意图
3 相关统计分析
系统统计模块中,按照查询得到的指定二级土地类别属性表,计算对应一级土地大类下面积总数,使用柱状图、饼状图进行一级土地大类面积信息显示,单位为m2。统计功能核心代码如下:
//定义一维数组、表单、计算结果数组,获取配置文件中一级类索引号以及对应土地类别表单
int tdindex[] = 配置文件类.gettbindex();
datatable tdtb = 配置文件类.gettb();
double getyjtdarea[] = new double[对应一级类总数];
//循环遍历查询结果表,判断数据记录是那种一级类下数据,如果是,则进行面积字段下数据加法运算
for(int i= 0;i++;i<主程序查询结果表.length)
{
for(int m= 0;m++;m<tdtb.length)
{
if(主程序查询结果表[记录行i][name].contain(tdtb[m]. toString()))
{
//判断此二级类属于哪个一级类
int getwzindx = 0;
for(int n= 0;n++;n<tdindex.length)
{
if(m>tdindex[n])
getwzindx = tdindex[n];
}
getyjtdarea[对应一级类排号] =
getyjtdarea[对应一级类排号] + 主程序查询结果表[记录行i][Area];
}
}
}
//最后返回一级类对应面积总和数组getyjtdarea,再进行相关计算分析。
土地分类统计数据显示还包括所在地区的土地利用最大值、最小值、标准差,标准差的计算公式为:
式中,σ表示所在区域一级土地利用类型的面积标准差;xi表示每个一级土地利用类型对应的面积数,u为一级土地利用类型面积平均值。统计模块中的最大值、最小值表示所在地区土地利用类别一级类中对应的最大面积和最小面积,标准差大小表示地区各一级类型占地面积的差异性,标准差越大,表示检索地区土地类型差异性大、土地类型比较单一;标准差小,表示输入地区土地类别多样。系统统计功能模块实现如图6所示(图5、图6数据为测试数据,图片处理为实现效果图)。
图6 系统统计模块示意图
4 结 语
系统基于ArcGIS10.1 AO组件开发,针对特定土地类型的搜索可进行批量数据导入查询、特定范围内土地类型面积统计、文档输出、属性表辅助修改等功能,可实现多类型、大范围数据搜索,主要应用于快速获取多种格式数据下特定范围内一级类土地面积信息。采用C/S架构进行维护升级,保持了本地快速处理的需求,类似于批处理插件。进一步快速获取在遥感影像或者其他航测、航拍制图上提取的土地类型信息,从而快速地查询统计分析,有助于了解土地现势性变化。
[1] 张树文.东北地区土地利用/覆被时空特征分析[M].北京:科学出版社,2006
[2] 刘锐,陈毓龄.RS和GIS技术在土地利用动态监测中的应用[J].测绘通报,2011(5):76-79
[3] 陈峰云.湖北省土地利用/覆被变化及其对自然环境要素的影响[D].武汉:华中农业大学,2009
[4] 王玮.基于RS与GIS郧县土地利用变化监测及驱动力分析[D].武汉:湖北大学,2011
[5] 杨元建,石涛,张宏群,等.基于遥感的合肥市土地利用动态变化及其成因分析[J].中国农学通报,2011,27(8):454-459
[6] 彭文甫,樊淑云,周介铭,等.基于遥感与GIS的土地利用变化对生态服务价值的影响[J].中国农学通报, 2014,30(5):195-202
[7] 李逸川.基于GIS和PLS-PP模型的土地利用变化和趋势预测研究[D].北京:中国地质大学,2010
[8] 唐菊莉.基于RS和GIS的武汉市土地利用分类及其时空变化分析[D].北京:中国地质大学,2013
[9] 阮于洲.对地理国情监测工作的若干思考[J].测绘通报,2014(3):131-134
[10] 孟浩东,贾有良.利用ArcSDE 和ArcObjects管理宗地历史数据[J].测绘通报,2002(2):57-59
[11] 徐忠国.基于ArcObjects 和COM-Add-Ins 乡级土地利用总体规划辅助编制系统设计与实现[J].中国土地科学,2014,28(1):46-51
[12] 白亚茹,陆鑫.基于ArcObjects组件的GIS应用软件开发[J].计算机工程,2007,35(4):66-68
P208
B
1672-4623(2016)12-0075-03
10.3969/j.issn.1672-4623.2016.12.024
陈宏宇,主要从事数字城市建设方面的研究。
2015-09-17。
项目来源:数字制图与国土信息应用工程国家测绘地理信息局重点实验室开放基金资助项目(DM2014SC08)。