地理处理框架

地理处理框架是指一组用于管理和执行工具的窗口和对话框。本文档将重点介绍此框架隐含的高级概念和想法,而不是使用此框架的技巧。

地理处理隐含的核心理念是将您的想法轻松快捷地转变为可执行、可管理、可修改、可记录且可与 ArcGIS 用户社区共享的新软件。此处,软件表示的是可以指示 ArcGIS 执行您所要进行的操作的事物。例如,地理处理模型便可视为通过名为“模型构建器”的简单易用的可视化编程语言构建的新软件。

本部分重点阐述的是这样一种概念,即地理处理是创建新实用软件的一种方法。这样做的目的是希望您对于如何与为何使用地理处理产生更广泛且更深刻的理解。

要创建任何类型的新软件,都需要具备两个重要元素:

地理处理的语言即为各工具的集合。而地理处理框架则是用于组织和管理现有工具进而创建新工具的较小的内置用户界面集合。地理处理快速浏览中已展示了此框架的基本组成部分,它们由以下内容组成:

地理处理模型和模型构建器

通过工具对话框可执行单个工具。您可将其视为通过编程语言执行单个指令。虽然执行单个工具通常非常实用,但只有将多个工具串联在一起,然后将一个工具的输出送入另一个工具(如同一种编程语言一样),才能显示出本系统的优势。

在地理处理框架中,通过模型构建器 窗口便可将地理处理语言中的各个要素(工具)按顺序连接在一起从而轻松快捷地将您的想法转变为软件。意识到模型属于软件这一点非常重要,因为它们可以指示计算机执行某些任务。其编程语言是可视化的(如您在模型构建器中所见),而不像传统编程语言那样是基于文本的。

这里最需要注意的是:模型是工具。它们的行为同系统中其他工具一模一样。您可在对话框窗口或 Python 窗口中执行它们。由于模型是工具,因此模型可以嵌套使用。实际上,随 ArcGIS 提供的多个系统工具都是模型。

模型的复杂程度可由您自行决定。模型中可使用任何系统工具或自定义工具,也可以使用已经写入的其他模型(因为模型即为工具)。还可以通过使用循环和条件来控制模型的逻辑流。

模型完全可以既极其简单又非常高效。您可以创建一个模型,使其包含一个单个工具但仅嵌入该工具的某些参数。例如,缓冲区工具共包含六个参数,但您清楚,对于当前的这组任务,这些参数中的三个参数将始终不变。为了避免每次执行缓冲区工具时都填写这些参数,您可以快速创建一个模型并设置这三个参数,然后将此模型保存为“我的缓冲区”工具,这样一来,仅使用此工具的对话框即可,无需使用缓冲区对话框。使用了“我的缓冲区”工具几次之后便可能需要将其删除,但由于该工具创建方便快捷并能提高效率,因此值得一试。

脚本

您还可使用脚本语言来创建新的实用软件。使用脚本语言的程序即是脚本。在软件编程领域中,语言可基本分为两类:系统语言和脚本语言。系统语言是诸如 C++ 和 .NET 一类的语言,用于通过计算机的低级图元和原始资源从头开始创建应用程序。脚本语言(例如 Python 和 Perl)用于将多个应用程序组合到一起,该语言使用计算机内置的高级功能并且回避了系统语言编程程序必须处理的具体细节。与系统语言相比,脚本语言更加易学易用,对编程有基本的了解便足以很好地使用它们。

在地理处理框架中,脚本与模型相类似,因为它们都可用来创建新工具。模型是使用可视化编程语言(模型构建器)创建的;而脚本是使用基于文本的语言和文本编辑器创建的。

和模型一样,脚本也是工具您可使用分布向导来将脚本引入至自定义工具箱中,然后该脚本就会成为您可在模型或其他脚本中使用的另一个工具。系统工具中有多个都是脚本。从技术角度而言,您可以编写一个脚本但不将其引入工具箱;此时,该脚本便不属于工具,而仅是磁盘上的一个独立脚本。

使用脚本的目的可能有多种:

用于创建和管理软件的框架

构建地理处理框架的目的是使您可以轻松快捷地将自己的想法转变为系统可以管理并且可在用户之间共享的新软件。

地理处理属于一种语言,由运算符或工具组成,用于对 ArcGIS 中数据(表、要素类、栅格、TIN 等)执行操作,还可用于执行操作和分析多种不同领域中地理信息时所必需的任务。

以模型和脚本的形式,您可以轻松快捷地创建新软件。这些新工具执行的任务并不是标准 ArcGIS 包的一部分。例如,ArcGIS 中没有任何菜单、按钮或编程对象可执行什么是地理处理中介绍的简单“投影”模型和“剪裁”模型。

各工具通过地理处理框架进行管理,这表示用户无需管理工具。尽管并不十分显而易见,但这一点看似微不足道实则非常重要。

工具易于共享。包含自己的所有工具和工具集的工具箱可以使用 .tbx 扩展名保存在磁盘的文件中,也可以保存在地理数据库中。任何有权访问该文件或地理数据库的用户均可运行其中的工具。

突出之处就在于,您的工具将成为地理处理框架中的正式成员,从而将具有形同的文档、用户界面、访问方法和共享方法。

地理处理和 ArcObjects

ArcObjects 是包含大量低级编程对象的库,这些低级编程对象将作为 ArcGIS 软件开发工具包 (SDK) 的一部分提供。开发人员可使用 ArcObjects 构建新的应用程序或扩展 ArcGIS 应用程序的现有功能。(正式声明,大部分系统工具和整个地理处理框架的构建均是由 ArcObjects 完成。)与地理处理相同,ArcObjects SDK 也可用于创建新软件。

ArcObjects SDK 和地理处理的作用互补;两者都不会使另外一个废弃。作为一个常规表达式,ArcObjects 可用于通过新行为来扩展 ArcGIS,而地理处理是专为自动执行任务而设计的。可使用 ArcObjects 执行诸如添加新用户界面、向要素类添加自定义行为或创建特殊制图渲染器之类的操作。地理处理用于创建可在正常运行框架的限制范围内自动执行任务的软件(模型和脚本)。

ArcObjects 应该和系统编程语言一起使用,此时程序员需要访问低级图元以执行复杂的逻辑和算法。这就是 ArcObjects 中包含数以千计不同对象和请求的原因,因为这样便可以使程序员执行各自所需精细程度的控制。由于 ArcObjects 将与系统编程语言配合使用,因此要求具有大量的编程知识,而不仅仅是地理处理及其模型和脚本的相关知识。

相反,地理处理则属于一种普通功能,所有 GIS 用户均可使用和部署地理处理以自动执行他们的工作、构建可重复使用且定义明确的方法和过程以及为重要的地理过程建模。


7/10/2012