




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于GeoProcessing框架的地理处理服务共享研究黄桦(浙江省测绘科学技术研究院,浙江 杭州 310012 摘 要:地理数据服务是当前数字城市建设对外提供的主要服务形式,地理描述服务是实现各类数据服务聚合的桥梁,而地理处理服务是实现复杂空间处理和挖掘隐藏地理信息的重要手段,因此实现地理处理服务在线发布和调用具有重大意义。本文以Geoprocessing框架为基础,研究了基于Geoprocessing框架的地理处理服务的发布、调用和共享,总结了基于地理处理服务共享在地理信息系统开发利用方面的优势。关键词:地理处理服务;Geoprocessing;服务共享The Service Of Geo
2、Process Sharing Based On The GeoProcessingFrameworkHuang Hua(Zhejiang Academy of Surveying & Mapping, Zhejiang Hangzhou 310012 Abstract: Geographic data services are currently the main form of services provided by the external construction of digital cities, geographic description of the service
3、 is to achieve all kinds of data services aggregation bridges, and geoprocessing services to achieve complex spatial processing and geographic information hidden an important means digging, thus achieving geoprocessing services online publishing and calls will be of great significance. In this paper
4、 Geoprocessing framework, the study published Geoprocessing framework based geoprocessing service calls and sharing, summed up the advantages of sharebased geoprocessing services in the geographic information system development and utilization aspects.Key words: Geoprocessing services; GeoPrecessing
5、; Shared services作者简介:黄桦(1982,男,浙江建德人,浙江省测绘科学技术研究院,硕士研究生,2008年毕业于华东师范大学,主要从事GIS应用与开发;0前言通常组成GIS的三大核心是:Geodatabase(数据、GeoVisualization(可视化、GeoProcessing(地理空间分析1,2。其中数据是基础,可视化和地理空间分析是基于数据的应用。地理信息数据生产、更新以及可视化表达仍然是当前研究重点,地理空间分析相对关注较少,而提供地理空间服务将是未来GIS发展的潮流。当前GIS的发展已经经历了从大型机到桌面、从桌面到网络(客户机/服务器的发展。网络GIS的功能主
6、要以地理数据服务为中心,地理处理和计算功能主要集中于服务器端。随着Internet和分布式计算技术的发展,以及高性能而又廉价的个人计算设备的普及,提供在线的地理信息服务成为可能3。本文提及的地理信息服务(Geographic information web services,GIWS是在网络环境下,与地理信息相关的软件功能实体,它建立了一种面向服务的地理信息共享模式,通过其接口提供服务所封装的功能,用户可以通过互联网按需获得和使用地理数据及计算服务,如地理数据服务(GeoDataService、地理描述服务(GeoDesServices和地理处理服务(GeoProcessing Service
7、s。地理数据服务提供地理数据的管理、编辑、更新和网络发布等功能,是复杂地理信息服务的基础和载体4。地理描述服务包括予以描述服务和结果描述服务,语义描述服务用于描述、查询和编目地理信息服务,结果描述服务定义了结果传输格式和表现形式。地理处理服务提供GIS 分析功能,强调地理数据与用户的交互性,能充分挖掘隐藏的地理信息,其分析结果为决策提供依据。当前GIS系统的主要使用形式有二维、三维和移动三种形式。通常开发GIS系统,都会开发出特定的与本系统绑定的地理分析功能,如果是相同或类似的地理分析功能,将需要重复开发。因此这种方式的弊端是显而易见的,重复开发,难以在多个平台之间重复使用5。自ArcGIS
8、10发布以来,ArcPy已经取代之前的GeoProcessing地理处理框架,基于ArcPy 可以实现ArcGIS中的数据处理、可视化、空间分析三大核心功能,而使用Python语言开发的功能,更是可以无限制、自由的发挥GIS研究者的想象力,来提供个性化的地理信息服务,总之基于ArcPy能开发出功能强大,灵活的各种不同类型的地理处理模型库。从ArcGIS Server10的软件架构上来看,它能够支撑多种平台的地理信息服务的调用,不论是C/S、B/S、还是移动架构。因此将基于ArcPy开发的地理处理服务,通过ArcGIS Server将它发布出来,将能实现本文提到的跨平台的地理处理服务的调用和共享
9、。1基于GeoProcessing框架的地理处理服务模型设计1.1 GeoProcessing框架GeoProcessing框架(Geoprocessing Framework是一系列工具的组合,并在地理处理框架内实现对工具的管理。工具通过交互式的图形界面完成工具运行所需要参数的输入、输出。它由四个部分组成6。1.1.1 ArcToolboxArcToolbox包含了ArcGIS地理处理的大部分分析工具和数据管理工具。它的组成结构是:“ArcToolboxToolsToolSetTool”,根据功能, ArcToolbox分了许多的工具箱,在每个工具箱下,又根据细化的功能分了许多的工具集,工具
10、集下又有许多的工具。1.1.2 Tool提供交互式的参数输入并能执行的功能,Tool主要由系统自带工具和自定义工具两类组成。如图1所示。图 1 Tool类别Figure 1 Tool s Type1.1.3 ModelBuilderModelBuilder是由ArcGIS Desktop提供的可视化编程环境,它能对现有工具的组合完成新模型或软件的制作,从而创建新的模型和工具。1.1.4 ArcPyArcPy的前身是ArcGISScripting,在版本10之前使用Python脚本扩展Geoprocessing地理处理框架需要引用“arcgisscripting”。它是ArcGIS 10地理处理
11、框架的核心,其本质是提供了一组通过Python进行地理数据分析、数据转换、数据管理和制图自动化的工具包。通过ArcPy可访问地理处理功能(ArcToolbox和其他函数、类和模块,使用它们可快速轻松地创建简单或复杂的工作流。使用以ArcPy编写的ArcGIS 应用程序和脚本优势在于,可以访问并使用来自多种不同领域的GIS专业人员和程序员开发的大量Python模块,而且Python是一种通用、易学、强大的编程语言。ArcPy在ArcGIS 10中主要用于搭建Geoprecessing工具,它主要在两个地方使用:ArcGIS Desktop和Python集成环境。(1 Python Window内
12、置的IDEPythonWindow类似于IDE(集成开发环境可以在其中编写Python代码,同时它与其它Python编译器一样具有Python 解释器的功能,能够实时运行代码,因此可以视它为脚本运行、测试的试验场,非常的方便。PythonWindow取代了9.x版本中Command Line 窗口。熟悉CommandLine的用户都知道在Command Line中可以以命令行的形式调用Gp工具、方便进行批处理等。而PythonWindow不仅仅囊括了Command Line的功能,并且可以更细粒度的实现地图文档等其它的操作。(2 ArcPy核心模块ArcPy的核心模块有四部分组成,包括三大主题
13、模块(Mapping模块、Spatial Analyst模块、GeostatisticalAnalyst模块以及基本函数、功能部分7。以下两节将阐述的是基于ModelBuilder和ArcPy 的地理处理服务的构建与发布调用。1.2基于ModuleBuilder地理处理服务的实现与调用1.2.1 模型的创建ModelBuilder是数据建模工具,为设计和实现ArcGIS中各种数据处理提供了一个图形化的建模环境。模型是以流程图的形式表示,它由数据和数据处理工具组成。在ArcToolbox对应工具中就可以新建模型model,打开model就是个可视化的编辑环境。通过拖入需要的工具,加载需要的数据,
14、设置输入输出的变量,就可以创建一个地理处理模型。图 2 通过ModelBuilder创建的模型Figure 2 Mod els created by Mod elBuil der1.2.2模型的发布和共享在一般情况下,模型编辑完成后,就可以直接使用。但为了能将该模型发不成一个在线可以被其他人调用的地理处理服务,需要注意以下几点: 在输入、输出端,只有特定的数据类型才能使用,而中间的过程是在服务器上处理的,数据类型不限。具体来说,矢量和表格记录是支持Web上的传输,而栅格图却无法支持从客户端到服务器端的传输。图 3 数据类型Figure 3 Data Type各模型必须将它们的中间数据和输出数据
15、写入到特定的位置,在任务执行过程中,ArcGIS Server会创建一个作业目录,在该目录中可写入模型的中间数据和输出数据,需要将中间数据和输出数据写入到scrach文件夹或scratch数据库中。具体来说,就是在输出要素时的默认位置写成“%scratchworkspace%/ <数据集>”、“%scratchworkspace%/scratch.gdb/<数据集>”。如果需要对输出结果进行符号化,则还可以在发布模型的参数中设置该参数。设置好以上参数后,就可以将该模型在arcgis server上发布,用户可以使用ArcGIS Desktop、ArcExplorer来实
16、现在线调用。1.3基于ArcPy地理处理服务的实现与调用1.3.1模型的创建基于ArcPy的地理处理服务较灵活,这里要说的是如何使用Python语言来编写模型。Python Window 是内置的IDW环境,可以使用Python语言提供的各种模块以及ArcGIS内置的模块,开发出功能强大的模型。1.3.2模型的发布和共享使用Python编写的模型与使用Modelbuilder编写的模型发布流程不同,除了上面需要的注意的内容之外,还需要注意以下几点:一是需要在脚本中明确输入和输出参数;二是默认情况下ArcGIS Server 支持一次性1000条记录的在线处理,如果需要提高参数,则在使用ArcG
17、IS Server发布时调整改参数。2实例为了印证以上两种不同方式的地理处理服务,本文模拟了两个地理处理服务,一个是插值服务,一个是矢量数据变形服务。前者采用ArcGIS Modeling 技术,后者采用Python来实现。2.1.插值服务的实现与共享2.1.1 插值服务的构建与发布一个典型的插值服务,它的流程由以下几个核心工具组成,输入离散点将离散点生成栅格图将栅格图转换成等值线对等值线进行平滑输出结果。使用ModelBuilder构建的模型图如图4所示。图 4 插值服务模型Figure 4 Interpolation service model2.1.2插值服务的调用(1 二维环境下的调用
18、本文模拟了一点离散点数值,分别在ArcMap、ArcGIS Explorer、ArcGIS Server api下进行调用。以下是调用结果的截图。其中使用前两者调用时,需要将该工具加载到ArcMap或者ArcGIS Explorer中来。在ArcMap中的插值服务调用,ArcToolbox中画圈的是从ArcGIS Server中加载的插值服务,左边图层控制的第一个图层是生成的等值线。注:图层Point 是模拟数据。图 5 ArcMap下模拟的离散点生成的等值线 Figure 5 ArcMap simulated contours generateddiscrete points图 6 ArcG
19、IS Explorer下离散点生成的等值线 Figure 6 ArcGIS Expl orer contours generated und erthe discrete points(2 三维环境下的调用水利厅发布了过去24小时内,全省的降水情况,本文以此为输入的离散点,将其组织成请求json,向服务器进行插值,并对返回结果进行解析。图7就是解析结果。图 7在三维环境下的插值服务调用Figure 7 Interpolation service calls in athreedimensional environment(3 移动设备上的调用由于ArcGIS Server发布了在移
20、动设备上的开发包,因此在类似IPad的设备上也能进行调用。因此只要在IPad上模型输入数据源,也能实现服务的调用。2.2变形服务的实现与共享2.2.1变形服务的实现与发布构成变性服务的核心在于将由客户端上传上来的矢量数据,在服务器端由Python脚本读取变形服务,从而给这些数据进行变形,然后将变形结果返回给客户端。该服务能对点、多点、线、面矢量数据进行变形。图8是核心脚本。图 8 Python脚本Figure 8 Python Script完成脚本的编写后,需要设置两个变量,一个输入变量,一个输出变量。在导入Toolbox时,要对这两个输入的变量的要素类型进行设置,输入变量类型要设置成Feat
21、Set,输出变量类型要设置成FeatureLayer,默认的输出路径要设置成“%scratchworkspace%/scratch.gdb/e2m”。在完成这些设置后,就可以直接使用ArcGIS Server将该工具发布出来。2.2.2变形服务的调用在ArcMap环境下调用,再调用之前,要先将ArcGIS Server发布的地理处理服务加载进来。图9中Toolbox中的红圈表示从ArcGIS Server加载的Earth2Mars的变形服务。图层控制中红圈表示变形后的结果。图 9 ArcMap下的点、线、面数据的变形结果Figure 9 The results point deformatio
22、n underArcMap, line, surface data图 10ArcGIS Explorer点、线、面的变形结果 Figure 10 Deformation results ArcGIS Expl orerpoint, line, plane3、总结基于GeoProcessing框架的地理信息服务共享,对基于数字城市地理框架应用系统的开发和利用有以下优势:(1 转变地理信息服务的方式,拓展地理信息服务的内涵 当前数字城市地理空间框架对外主要提供各种 数据资源瓦片服务(电子地图、遥感影像、三维景 观、专题共享数据等服务 GeoDataService) 、以及相 关数据的描
23、述服务 (GeoDesServices) , 即目录与元数 据服务。实际上各个单位都有独特的地理处理服务, 例如日照分析服务、坐标系转换服务等。这些服务 都是单机版的,因此如果将这些服务通过基于 GeoProcessing 框架的地理处理方式发布出来,将会 极大提升数字城市地理空间框架服务的内涵,提高 这些地理处理服务的使用方便性,从而深化数据共 享的广度和深度,从线下处理走向在线处理,从而 拓展地理信息服务的内涵。 (2) 发挥 Python 和 ArcGIS Server 的跨平台特 性,简化系统开发复杂度 Python 语言是跨平台、简单、易掌握的高级语
24、 言,在 ArcPy 环境下编写地理处理功能,不仅可以发 挥 Python 的各种能力,还能发挥 ArcGIS 强大的空间 分析能力,更能发挥开发者的想象力,开发出具有 强大功能的地理处理服务。 ArcGIS Server 支持各种移 动平台的开发,基于 GeoProcessing 框架的地理处理 服务将不仅可以运行在多种操作系统,也可以运行 多种硬件设备上(IPad、PC 等) ,也可以在不同的应 用环境中进行调用(二维、三维) 。因此在有多种设 备,多种应用环境的条件下,只要发布一个处理服 务,其它设备和应用环境都可以调用,从而简单系 统的开发复杂度。 (3) 将数据
25、和功能分离,降低系统各个功能 之间的耦合性 基于 GeoProcessing 框架的地理处理服务将系统 中的有关数据处理或者系统抽象出来,分离数据与 功能,降低系统中各功能之间的耦合性,从而提高 系统的可维护性。 3 Anders Friis-Christensen,Michael Lutz,Nicole Ostlander Lars Bernard. Designing Service Architectures for Distributed Geoprocessing:Challenges and Future Directions. Transactions in GIS, 2007, 11(6:799-818. 4 Anders Friis-Christensen,Lars Bernard,Ioannis Stephen Kine
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公共卫生执业医师考试题库及备考指南
- 2025年3D浮雕造型师认证考试指南及模拟题答案
- 2025年地理信息系统工程师考试知识点详解
- 2025年电子计步器实验分析仪器项目合作计划书
- 2025年舒血宁注射液合作协议书
- 2025年润滑系统:机油滤清器项目合作计划书
- 抗酸剂与抑酸药剂课件
- 2025年酯类项目合作计划书
- 河南省新乡市原阳县2024-2025学年七年级下学期5月月考生物试题 (含答案)
- 福建省莆田市某校2024-2025学年三年级上学期第一次月考语文试题
- 1.小蝌蚪找妈妈(课件)-2025-2026学年统编版二年级语文上册
- 升降机考试题目及答案
- 2025-2026学年第一学期学校教学工作计划及序列表
- 语文课程教学技能课件
- 福建省厦门市同安区2024-2025学年七年级下学期期末考试地理试卷(含答案)
- 家政培训服务中心路演
- 《人体工程学》本科设计类专业全套教学课件
- 模特老师培训课件模板
- IATF16949内审员培训资料
- 危重病人约束护理
- 艾梅乙反歧视培训课件
评论
0/150
提交评论