地理处理框架

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

地理处理隐含的核心理念是将您的想法轻松快捷地转变为可执行、可管理、可修改、可记录且可与 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 用户均可使用和部署地理处理以自动执行他们的工作、构建可重复使用且定义明确的方法和过程以及为重要的地理过程建模。

5/10/2014