Arcgis Engine开发总结

2024-04-19

Arcgis Engine开发总结(精选2篇)

篇1:Arcgis Engine开发总结

关键词:Arcgis engine,Matlab,GIS,避难场所,选址

0 引言

应急避难场所[1]用于突发事件发生时,供居民安全避难、支援灾区的人员宿营和设置救灾指挥机构的场所,一般包括广场、操场、绿地、公园、体育场馆等。城市减避灾规划中的首要重点内容就是对应急避难场所选址进行合理的设计和规划。

目前国内外对应急避难场所选址[2]及布局的原则和方法上研究比较多[3]。刘少丽[4]等在GIS平台上进行了应急避难场所的空间布局分析,吴健宏[5]等开发应急避难场所的选址决策支持系统,戴晴[6]等进行了应急避难场所适宜性评价研究,李刚[7]等基于加权Voronoi图,划分了地震应急避难场所的责任区。

随着现代化进程的迅速发展,GIS技术和信息技术已成为研究应急避难场所选址问题的新手段[8]。本文提出建立一种将GIS功能和避难场所选址数学模型相结合的方法,并通过COM组件[9]实现Arcgis Engine和matlab集成的关键技术,把应急避难场所选址过程中所需要的各种功能模块融合在一起,设计和开发了一套避难场所选址系统[10]。

1 避难场所选址系统设计

1.1 系统设计目标

本系统的设计目标是为了进行应急避难场所选址研究而建立一套功能齐全、操作简便、有定制界面的系统。避难场所选址系统应具备的功能有:(1)前期进行避难场所基础调查数据处理;(2)对影响避难场所选址的指标因素进行定量计算;(3)方便集成避难场所选址计算模型;(4)能进行避难场所布局分析及责任区划分。使用者只需以此系统为平台,就能完成所有应急避难场所选址研究工作。

1.2 系统结构设计

根据系统设计目标,避难场所选址系统结构[11]如图1所示,包括:

1)基本操作模块:包括一些常用的对地理数据的操作:新建、打开、保存、添加数据、查看属性、放大和缩小等工具;

2)数据管理模块:建立待选避难场所空间数据、人口分布数据、交通路网数据、救援设施数据和灾害危险分布数据的信息数据库,实现避难场所信息的统计、管理和查询;

3)路径分析模块:在交通路网数据基础上,采用Dijkstra最短路径算法进行路径分析,求出待选避难场所距医院和消防队等救援设施的最短距离;

4)选址模型模块:通过多目标加权灰靶决策法和熵值权重法,求解出各个待选应急避难场所的综合效果测度,综合效果测度值越高越适宜作为避难场所;

5)布局分析模块:创建缓冲区分析避难场所的规模,以voronoi图的形式分配避难场所的责任区及各自的服务范围。

2 系统实现

本系统以Visual Studio.Net 2010为开发平台,运用Arcgis Engine开发组件进行基于.NET的GIS二次开发,构建了避难场所选址系统界面及GIS功能部分,避难场所选址模型算法部分通过matlab编程实现,并利用COM组件实现Arcgis Engine和matlab集成。避难场所选址系统开发完成后的界面如图2所示。

2.1 Arcgis engine实现GIS功能

ArcGIS Engine是ArcObjects组件(ESRI公司的ArcObjects是组成ArcGIS的核心组件)跨平台应用的核心集合,基本上囊括了ArcGIS全部的功能,开发者可以使用不同的开发语言,如:Java、C#、和C++等,创建可定制独立界面的GIS桌面应用程序[12]。本文选用Visual C#.NET[13]作为开发工具,来构建避难场所选址系统中的GIS功能,包括:建立避难场所选址系统的界面、基本操作、最短路径分析、缓冲区分析和voronoi图分析等。

2.2 Matlab实现避难场所选址模型算法

2.2.1 避难场所选址模型算法

1)多目标加权灰靶决策法

根据国家标准《城镇防灾避难场所设计规范》[1],合理的应急避难场所建设中需要考虑的指标众多,应急避难场所选址可谓是一个多目标选择决策问题。多目标加权灰靶决策法是灰色理论中灰色决策法的一种,用于多目标决策中充分考虑各种目标的影响进行综合分析,并根据综合效果测度排序选择最优决策方案。

2)熵值权重法

熵值权重法是一个辅助方法,用以配合多目标加权灰靶决策法,共同实现避难场所选址模型。通过熵值权重法可以确定应急避难场所选址指标的权重,然后将各指标的权重分配带入多目标加权灰靶决策法中。

2.2.2 Matlab实现

本文选用Matlab软件编程来实现避难场所选址模型算法的原因是:(1)Matlab是一款强大的数学软件,特别擅长处理矩阵运算,并且Matlab内置有大量数学函数可供使用,较其它C++、C#和Java等语言处理数学问题更加方便,更适合进行工程应用中数学模型的开发;(2)通过COM组件接口,可以实现Matlab与C#语言的混合编程,在C#编程环境中可以方便调用由Matlab软件构建的避难场所选址模型算法。

避难场所选址函数Matlab实现如下:

1)创建多目标加权灰靶决策法函数的M文件

由多目标加权灰靶决策法算法,在Matlab软件中创建函数M文件function y=test1hui(L,Q,G,W),函数的输入参数有:L为m个应急避难场所及n个选址指标值组成的指标值矩阵,Q为n个指标测试类型,G为n个指标临界值,W为用熵值权重法得出的n个指标的权重。函数的输出参数m个应急避难场所的综合效果测度,通过综合效果测度排序选择最优的应急避难场所选址方案。

2)创建熵值权重法函数的M文件

由熵值权重法算法,在Matlab软件中创建函数M文件function w=test2shang(L,Q),函数的输入参数有:L为m个应急避难场所及n个选址指标值组成的指标值矩阵,Q为n个指标测试类型。函数的输出参数m个应急避难场所的权重值。

2.3 COM组件实现Arcgis Engine和matlab的集成

2.3.1 集成接口:COM组件

COM组件是一种通用的、面向对象的二进制通讯标准,可作为两种语言相互调用的接口。对于一个采用COM标准进行编写的可执行代码(如:.dll文件),可以在另一编程语言环境中被调用。

Matlab Builder for.Net是Matlab Compiler(Matlab编译器)的一个扩展产品,可以将.m格式的数学模型代码文件编译为COM组件。在Matlab中输入comtool命令,启动Matlab Compiler,新建一个工程,输入COM组件的名称testclassCOM,添加类testzuanclass,将test1hui.m和test2shang.m两个M文件添加到类的方法中,按Build按钮编译,生成一个testclassCOM.dll文件,该DLL文件包含一个类testzuanclass和两个方法test1hui、test2shang。

在以Visual Studio.Net 2010为开发平台,进行.NET的Arcgis Engine开发过程中,进行COM组件调用,相当于在Arcgis Engine中直接调用Matlab编写的数学模型函数,从而实现Arcgis Engine和Matlab的集成。

2.3.2 COM组件调用

COM组件调用过程[14]如图3。首先在Matlab软件中编写多目标加权灰靶决策法和熵值权重法的M文件代码;然后利用Matlab Builder for.NET编译器将M文件编译为.dll文件的COM组件;最后,在Visual Studio.Net 2010环境下开发的C#语言代码中添加.dll文件引用,就完成了对多目标加权灰靶决策法和熵值权重法的调用。

2.3.3 调用避难场所选址方法

在Arcgis engine的Visual Studio.Net 2010编程环境中新建一个工程,将编译好的testclassCOM.dll文件添加到工程,对象浏览器会显示testclassCOM下有个testzuanclass类,类里面有两个方法test1hui、test2shang,并可以直接使用两个方法完成避难场所选址功能。

3 系统应用

以本应急避难场所选址系统作为平台,对泉州主城区应急避难场所选址实际问题研究,以测试本系统的可行性和实用性。

本次选择泉州市主城区作为研究区,是因为该区经济发达、人口密集,是城市防灾减灾过程中应急避难场所建设的重点区域。泉州主城区由洛江区、丰泽区和鲤城区三个市辖区组成,总面积225平方公里,总人口约82万,研究范围坐标为东经118°32'27″~118°40'58″,北纬24°51'18″~25°4'7″。

应急避难场所选址以《城镇防灾避难场所设计规范》中避难场所设计基本要求[1]及国内外避难场所选址相关文献[4,5,6,10]中的选址指标为依据,从避难性、保障性和安全性3个主要方面,提炼出可容纳避难人数、开放空间比、与医院最近距离、与消防队最近距离和与断层最近距离5个重要的避难场所选址指标,用于衡量待选应急避难场所的适宜性。

3.1 数据管理模块

根据泉州主城区地理数据统计资料,包括:Google地图地理信息、《泉州市2013年鉴》、地质灾害报告等资料,并利用系统的矢量化功能建立了包含泉州主城区待选避难场所空间数据、人口密度分布数据、城市路网数据、救援设施数据和灾害危险分布数据。泉州主城区地理数据综合图如图4所示。

3.2 路径分析模块

由系统的路径分析功能可进行Dijkstra最短路径分析,求出待选难场所距医院最短距离(如图5所示)和待选难场所距消防队最短距离(如图6所示)。

3.3 选址模型模块

应急避难场所选址模型所需的选址指标数据,已在前期通过系统的数据管理模块与路径分析模块处理而得到。在本选址模块中,首先调用熵值权重法计算各指标的权重,然后调用多目标加权灰靶决策法,综合考虑5个选址指标和各自的权重,求解出最优的应急避难场所选址方案。选址模型计算界面如图7所示,选址结果如图8所示。

3.4 布局分析模块

根据《城镇防灾避难场所设计规范》,我国大陆的避难场所服务半径设计标准为2km左右[1],创建各个避难场所缓冲区范围。由避难场所缓冲区图(如图9所示)可知,应急避难场所服务范围基本覆盖了泉州市主城区人口密集部分,只在研究区西部避难场所没有覆盖,总体上可以满足城市市民的避难需求。

由系统的voronoi功能,划分避难场所责任区,从图10可知,研究区中部及南部避难场所位置分布合理,而西部出现单个避难场责任区面积过大的情况,建议在研究区西部新建避难场所。

4 结论

篇2:Arcgis Engine开发总结

关键词:ArcGIS Engine,ENVI/IDL,地理国情普查系统

地理国情主要是指自然要素与人文要素之间的相互关系、特征作用、空间分布。进行地理国情普查, 就是要系统地掌握精确、客观的地理国情信息, 对于加强社会经济发展, 优化国土资源配置, 加强国家应急保障服务, 推进可持续发展建设具有重要意义[1]。Arc GIS Engine具有强大数据管理、空间分析、二次开发等功能, ENVI/IDL能够准确、快速地提取遥感影像信息。两者集成开发的地理国情普查系统, 可快速、动态、系统地实现人文和自然地理要素在地表上的空间分布情况和相互关系。

1 Arc GIS Engine与ENVI/IDL集成开发理论依据

Arc GIS Engine是美国环境系统研究所公司 (简称ESRI公司) 提供的一个GIS技术框架, 它是基于Microsoft的COM技术开发的一套COM组件对象集, 这个组件集包含了所有的基础GIS功能[2]。

IDL (Interactive Data Language) 是美国ITT公司推出的一种可视化语言, 它具有较强的数据分析和可视化能力。其只需几条语句就能执行大量、复杂的数据处理或者实现二维、三维图形的绘制。ENVI (The Environment for Visualizing Images) 是利用IDL开发的一套功能强大的遥感图像处理软件。其能快速、便捷、准确地从遥感影像中提取信息并对影像进行分析、处理。通过使用IDL语言即可调用ENVI中的影像处理功能。

1.3 集成理论依据

Arc GIS Engine与ENVI/IDL集成开发是以Arc GIS Engine为核心, 调用专业遥感处理软件ENVI的功能, 得到一个既有GIS和遥感双重功能的系统。其原理是以Arc GIS Engine为开发平台, 使用VB/C++/C#等语言调用IDL完成集成开发, 文中以C#语言说明。利用C#调用IDL的方式可以充分发挥二者语言的各自优势, 即程序主界面和功能由C#搭建, 影像数据处理功能由IDL实现。以下介绍是C#调用IDL的两种常用方法[3]。

1) IDLDraw Widget组件。该组件调式是一种比较常见的调用方式。其原理是在C#语言环境中创建IDL的Draw Widget组件, 通过调用IDL进行数据传递实现在程序界面中显示IDL的影像处理功能。IDLDraw Widge具有3个特点, 一是提供键盘和鼠标事件的响应功能, 二是能够与C#语言进行参数传递, 三是能够直接显示IDL具有的直接发图形和对象发图形。

2) COM_IDL_Connect组件。COM_IDL_Connect和IDLDraw Widget相似, 但COM_IDL_Connect组件不提供显示窗口。自IDL6.4版本之后, DL-Draw Widget组件就不再更新, 因而该组件就不能调用IDL开发的新更能, 建议只作为显示组件, 功能调用模块可采用COM_IDL_Connect方式。COM_IDL_Connect组件需先添加“com_idl_connect.dll”文件引用, 在进行引用初始化, 最后调用。

图1为Arc GIS Engine与ENVI/IDL一体化开发的一个实例, 图中显示的是C#调用IDL中的重采样功能。此外该开发实例中还有面向对象分割、基于规则提取、图像增强、滤波变化等功能。

2 系统设计原则及目标

2.1 设计原则

一是紧密围绕地理国情统计分析与监测的需要。二是兼顾地理国情普查数据国家级和省级建库需求。三是尽量采用先进成熟技术。四是采用开放性设计。

2.2 设计目标

为实现地理国情普查数据库数据管理与应用, 方便以后地理国情监测开展, 在建成的数据库基础上需要构建地理国情普查数据库管理和应用服务系统。数据库系统应满足地理国情普查成果数据集成管理、地理国情统计分析、数据库更新维护、系统安全管理、成果应用服务等方面的应用需求。系统设计结构见图2。

3 系统结构与功能

3.1 入库检查

通过二级检查、一级验收后汇交到建库单位的地理国情普查成果数据以及完成预处理后的数据。在入库前均需按照数据入库检查要求对地理国情普查各种成果数据进行入库检查, 主要检查成果数据中可能影响入库的数据问题, 包括待入库数据的文件与结构一致性、拓扑一致性、其他逻辑一致性、空间参考正确性以及矢量数据接边等几个方面的问题。对于具有普遍性、影响数据入库的问题需要返回到前一生产工序进行修改后再重新汇交和检查。

3.2 预处理

为确保地理国情普查各种成果数据和专题数据顺利入库并满足地理国情统计分析应用要求, 需要按照数据库技术设计和建库要求对地理国情普查成果各类数据和专题数据进行入库前系列预处理, 包括数据入库整理、数据派生提取、属性结构调整、地理国情要素对象化处理、道路和水域网络数据预处理、元数据处理、专题数据空间化整合、数据分区处理等预处理过程。在数据建库时, 通过开发数据预处理工具软件, 实现数据预处理批量进行。

3.3 地理国情展示

地理国情展示模块主要提供基本的地理国情普查成果集成管理与可视化以及统计分析成果和地理国情专题图等展示功能。包括对建库后的地形地貌数据、遥感影像数据、遥感影像解译样本数据、地表覆盖数据、地理国情要素数据、专题数据、元数据以及地理国情统计分析成果数据、专题图等的集成显示、成果演示功能。

3.4 数据库管理

数据库管理和应用服务系统是基于基础设施和数据统一访问接口, 设计开发数据更新维护、系统安全管理方面的功能组件以及二三维可视化、查询检索、统计分析、成果发布等服务接口, 在此基础上面向桌面端、Web端不同的应用模式来构建数据库管理与应用服务系统[4]。

3.5 查询分析

信息查询分析模块主要提供地理国情信息的综合查询检索以及地理国情统计、对比分析等方面的功能。可以满足用户对各类信息的快速查询、地理国情信息实时分析应用。其包括基本查询和专题查询。基本查询检索提供地理国情信息空间要素与属性信息互查、长度和面积量测等查询检索功能。专题查询提供地理国情专题信息查询检索功能。主要功能有DEM查询、行政区查询、地表覆盖分类查询、地理国情要素查询、遥感解译样本查询等。

3.6 成果应用服务

成果应用服务模块是数据库系统对外提供地理国情普查成果数据和统计分析成果数据、成果应用方面的服务, 包括成果目录查询服务、数据分发处理、发布成果生成、地理国情专题图制作等功能。

4 结束语

全国第一次地理国情普查处理的数据量大、任务繁重、涉及范围广以及所需设计的应用功能多。基于Arc GIS Engine与ENVI/IDL集成系统为地理国情普查达到预期目标提供了可能。

参考文献

[1]王树文, 刘俊卫.遥感与GIS技术在地里国情普查监测中的应用于研究——以天津市为例[J].测绘通报, 2012 (8) :51-54.

[2]吴玮, 李小帅, 张斌.基于Arc GIS Engine的GIS开发技术探讨[J].科技技术与工程, 2006, 6 (2) :176-178.

[3]李海胜..NET环境下基于C#, IDL的高光谱矿化信息提取软件研发[D].北京:中国地质大学, 2011:6-11.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【Arcgis Engine开发总结】相关文章:

基于ARCGIS二次开发的图斑综合研究02-22

上一篇:电视剧《娘要嫁人》观后感下一篇:新年生意兴隆祝福语

本站热搜

    相关推荐