陈杰,洪端芳,谭芳林,林立更
(1.福建省林业科学研究院,福建 福州 350012;2.福建省森林资源管理总站,福建 福州 350003)
区位表征了一个事物在一个相互联系的体系中所处的地位及其与相邻事物的关系,同时说明了它在这个体系中的重要性。森林是陆地生态系统的主体,森林生态区位是指一定面积的森林的空间位置及其生态重要性的标志。森林具有强大的生态功能,但是位于不同区域的森林发挥的生态作用却有很大的不同,处于一定位置的森林生态区位表现为具有一定面积分布的森林对维持区域生态安全的重要性程度,是其对生态功能影响力大小的标志[1,2],体现了该森林生态系统对维持区域生态安全的重要程度[3]。森林生态区位由其所处空间位置和与之相关的空间要素所决定的。这些空间要素包括地形地貌、海拔、坡度、坡位、坡向等,因此,森林生态区位必须在地理信息系统技术支持下,采用一定的体系和标准和基础数据进行区划界定,建立森林生态区位空间数据库。为了动态管理森林生态区位数据,提取生态区位小班,本文研究利用地理信息组件开发森林生态区位管理系统,为优化生态公益布局提供可视化的空间决策支持。
由于森林生态区位是根据不同的保护对象进行动态调整并提取相应林班小班数据作为优化生态公益林管理的基础,因此生态区位管理系统集成了生态区位区划数据、DOM数据、扫描地形图、森林资源分布图、基础地理信息等空间和属性数据统一管理,实现基于地理信息技术的森林生态区位修改、编辑、查询和分析,以及基于空间分析技术的森林资源小班区位信息的提取等主要功能。系统面对基层林业工作人员,针对用户的特点,要求用户交互界面简单明确,系统集成度高、耦合性强。
系统采用微软SQLserver和ArcGISGeoDatabse数据库存储属性和空间数据,通过ADO.NET和ArcGISSDE技术实现属性和空间数据的管理(图1)[2,4]。系统需要的数据如下:
基础地理数据包括行政区划、交通、水系等。其中行政区划数据包括省、设区市、县(县级市、区)、乡(镇)、行政村5级行政区划数据及各级政府驻地;国道、省道、高速公路、铁路、高速铁路系统组成的陆路交通数据;闽江、九龙江、敖江、汀江、晋江、龙江、木兰溪、交溪等“六江两溪”重点流域的水系数据。
SPOT5遥感卫星影像经过预处理和数据融合,按照1:10000的比例尺分幅镶嵌裁切生成数字正射影像(DOM),以及1∶10000扫描地形图数据,统一存储为ArcGISGeodatabase。
林业生态区位是根据森林要素分布的自然地理特点结合森林资源自身的特点,以及对国土生态安全、生物多样性保护和经济社会发展具有重要作用,以发挥森林生态和社会服务功能为主要经营目的界定的林地区域范围,主要包括世界自然遗产保护地,国家级和省级自然保护区,森林公园,“六江两溪”源头及两岸保护地带,沿海防护林及基干林带,饮用水源保护区,重点水库和湖泊保护周边保护林地,国道、高速公路和铁路周边一重山林地等区划形成面状数据图层,并根据其保护级别确定其重要性等级。
根据《福建省森林资源规划设计调查技术规定》调查制作森林资源分布数据,包括地类、林种、树种、年龄等关键信息。
COM架构是基于面向对象技术构建,将程序开发过程中经常使用的功能按照面向对象的原则,采用汇编或C++等语言编写并编译成动态链接库文件(DLL)或可执行文件,这些文件即为组件。ArcGISEngine是基于MicrosoftCOM规范设计提供的一个面向桌面开发地理信息系统类库产品,其核心代码采用C++语言编写,提供了兼容多种开发语言的GIS应用开发控件。[5-7]
图2生态区位查询菜单
系统开发在VisualStudio平台和C#语言支持下,采用面向对象的开发方法和基于C/S两层架构体系开发。数据层采用.Net和ArcGISSDE技术实现对属性和空间数据的增、删、改、查等基本操作。表现层采用JanusWinFormsControls组件和ArcGISEngine提供的控件为基础,构建Ribbon风格的用户交互界面。在此基础上实现图层管理、地图显示、查询统计、制图输出、数据管理等功能(见图1[8-10])。
图1体系结构
根据使用对象和需求分析,在关键技术支撑下,系统的表现层由区位查询和统计、森林资源小班区位代码提取、空间与属性数据交互查询、生态公益林决策支持等模块组成。在用户交互界面实现上,利用JanusWinformsControlsRibbon控件将各模块工具和菜单集成一个Ribbon组,优化命令和工具的操作流程。
生态区位查询可以按照使用单位和地区不同,在初次使用系统时,根据用户所管理的生态区位类型动态配置,并生成相应的配置文件,实现基于行政区划、空间位置等查询和统计。利用ArcGISEngine提供的查询工具接口生成的查询条件从数据层查找相关数据,并反馈给表示层,以GIS图层显示查询结果,统计结果以报表形式表现(见图2,实现的系统过程见图3)。
图3 生态区位查询流程图
森林资源小班区位代码提取和赋值使用ArcGISEngine中Geoprocessing(地理处理)模块进行操作。由于各生态区位可能在空间上存在相互重叠的情况,落在这些的生态区位上的林地小班根据生态区位重要性等级采用从低到高的“迭代赋值法”对小班的区位代码字段进行赋值(见图4)。
图4森林资源小班区位代码提取模型
基于ArcGISSDE技术的空间数据存储尚未实现对地理数据属性表的自动加载,为解决这一问题,系统基于Ado.Net“数据感知”技术编写了一个ForeDataTable实现对属性表的访问与空间数据的交互查询(图5)。
图 5 ForeDataTable 类结构图
在空间数据与属性数据交互查询中,首先获取当前操作的图层名称,实现基于ILayer接口申明的图层对象,调用类中的静态方法CreateDataTable或CreateDataTableAll两个方法,分别实现翻页调用和全部记录,通过CreateDataTableByLayer方法,实现从空间数据属性表到DataTable的转变并作为DataGridView数据源。在DataGridView中单击某一条属性,则在“地图窗口”中,自动定位到该属性关联的空间要素。
生态公益林管理护政策要求一定区域的生态公益林保护面积保持相对稳定,但由于基础设施建设、保护对象及生态公益林内部因子的改变,导致生态公益林是动态变化的,区划并建立森林生态区位数据库主要是为了优化生态公益林布局。本系统基于空间分析的技术基础上,可以根据非区位内的森林资源小班的区位等级、面积、起源,综合地形地貌等空间分布的等因子为生态公益林优化布局提出完善的调整方案,为生态公益林日常管理提供决策支持。
本文运用组件开发技术,在ArcGISEngine地理信息系统二次开发组件和JanusWinForms组件,在MicrosoftVisualStudio平台上,开发了基于地理信息系统的森林生态区位管理系统,系统运用空间建模技术,将区位代码的提取集成到系统中,可以实时更新小班的生态区位信息,实现了生态区位动态管理和森林资源小班区位代码的提取功能等,为生态公益林的日常管理提供决策支持。系统构建Ribbon风格的交互体系,将地理信息技术常用的功能做了归纳和整理,为基层林业管理人员提供了友好的交互界面。系统在ArcGISRuntime的支持下,可以独立安装部署,降低了的软件部署的成本和难度。
森林生态区位和生态公益林的管理是省、市、县三级联动的管理体系,系统管理的对象不仅包括森林生态区位数据,还包括森林资源小班数据以及其他的基础地理信息,还需进一步完善与其他相关管理系统的衔接,建立三级联动更新生态区位管理系统。森林生态区位与空间位置和特征关系密切,系统还要进一步开发三维功能,进一步完善生态区划功能。
[1] 周洁敏,寇文正.中国生态屏障格局分析与评价[J].南京林业大学学报:自然科学版,2009,33(5):1-7
[2] 陈杰.基于ArcGISEngine的林业生态区位图管理系统研究和实现[D].北京:中国林业科学研究院,2015
[3] 刘友多.福建省森林生态区位重要性功能定位研究[J].华东森林经理,2008,22(3):55-60
[6] 邱洪钢,张青莲,陆绍强.ArcGISEngine开发-从入门到精通[M].北京:人民邮电出版社,2010
[4] 蒋波涛.插件式GIS应用框架的设计与实现[M].北京:电子工业出版社,2008
[5] 刘光.地理信息系统二次开发教程—组件篇[M].北京:清华大学出版社,2003
[7] 雒翠萍.面向组件技术的铁路通信资源DSS的研发[J].农业网络信息,2012(8):40-42
[8] 魏安世,李伟,陈鑫,等.基于AreGISEngine的森林资源管理信息系统设计与开发[J].广东林业科技,2006,22(2):31-36
[9] 吴学群,丁仁军.浅析GIS系统软件开发的体系结构[J].地矿测绘,2005,21(3):45-46
[10] 张立朝.基于ArcGIS的战场重要目标信息系统的设计与实现[D].郑州:中国人民解放军信息工程大学,2005