昝建春,冷鸿天,吴颜奎
(云南省林业调查规划院,云南 昆明 650051)
GIS作为现代主流的地理信息空间决策、分析及模拟系统,应用模型的发展已成为其重要的发展前提和现代地理信息系统水平的重要标志[1]。随着计算机、地理信息技术的不断发展、进步,利用GIS批量、流程化处理任务已成为当今GIS技术的重要特征和高效的执行方式。传统的GIS空间分析及数据处理方式是利用计算机编程语言来实现海量数据的批量处理或流程化处理,基于计算机编程语言的实现方法需要较多的编程实践和行业经验,对于频次较高、时间较紧以及需求较为多样化的工作任务就显得捉襟见肘,迫切需要一种能容易入手、高效且易于扩展满足多元化需求的工作方法。
目前,很多影像处理软件均能提供基于坐标系统的影像裁剪功能,但大部分软件在影像批量裁剪方面具有较大的局限性和难度系数,例如:(1)计算机语言编程开发难度大、周期长以及行业应用特性差异大;(2)软件功能单一,不方便扩展应用;(3)不能实现非标准图幅的裁剪以及自定义裁剪等[2]。导致很多工作任务在方法上仍采用手工、半手工的方式裁剪影像,不仅耗费大量的人力、时间成本,也增加了质量管理成本,降低了任务执行的时效性。
为了解决常规影像裁剪方法的低效、计算机编程难度大以及不方便共享、扩展使用等问题,实现批量、流程化裁剪影像的目标,达到易入手、高效且方便扩展、满足多元化需求的工作效果。以昆明市官渡区2020年森林资源管理一张图年度更新工作影像为例,研究利用ArcGIS软件的模型生成器(Model Builder)制作裁剪工具,实现批量、流程化裁剪影像。
ArcGIS是由美国ESRI公司开发的地理信息系统软件,是全球范围内地理信息系统领域应用范围最广泛的软件之一。是一个统一且完整的地理信息系统平台软件,其主要由5个基础的框架组成:(1)计算机桌面端软件Desktop;(2)服务器端软件GIS;(3)嵌入式的GIS软件;(4)移动端GIS软件;(5)数据库服务端软件ArcSDE[3]。研究中主要用到了ArcGIS的计算机桌面端软件(Desktop),包括Arc Catalog,Arc Map以及Arc Toolbox这3个桌面端应用程序,Arc Catalog用来管理空间数据库内容、设计数据库及记录与浏览元数据;Arc Map用来编制、编辑和分析地图;Arc Toolbox用来转换和处理地理信息数据[4]。通过协调使用这3个应用程序,可以完成制图、数据管理、空间分析、数据编辑以及地理处理(geoprocessing)等各种GIS任务。
模型构建器(Model Builder)是ArcGIS软件提供的一个专门用于构建地理处理工作流和脚本的图形、可视化建模工具,可以集合、加速复杂的地理处理过程模型的设计和实施,也可以集成3D Analyst、Spatial Analyst、Geostatistical Analyst等多种空间处理、分析工具[5],然后将一系列空间处理、分析工具组织串联在一起的工作流,将其中一个工具的输出作为另一个工具的输入[6],最后得到模型处理结果。一个完整的GIS模型应包括模型的输入、空间分析处理工具以及输出3个部分的内容,复杂的地理空间分析过程其实也是由一系列简单的模型组合而成的。使用模型构建器的优点是:进一步简化复杂的地理空间处理模型的设计和实施,运用直观、简明的可视化图形语言将具体、复杂的建模过程表达出来[7]。使用GIS模型构建器构建的模型可自动执行所规定的工作流程。当建立的模型经过验证和执行无错误后便可以保存为.tbx格式(即:Arc Toolbox格式),或者保存为Python脚本,今后需要时就可以直接调用,也能够实现多用户间的共享[8]。模型在执行任务时具有较强的执行效率和数据规范性,在后续应用时还具有很大的扩展空间,能够根据任务的不同目的加以修改或者扩展,以达到满足工作任务多元化需求的效果。
ArcGIS 10.0版本之后的模型构建器在功能及应用上有了显著的提升和改进,相比于旧版新增设计了一系列的工具,其中主要有两类比较重大的类别:迭代器;仅模型工具[9]。迭代在GIS中通常是指在一定程度、范围的自动化过程中可基于一个或一组输入多次重复执行一个或一系列地理信息处理过程,通常又称之为循环[10]。迭代在现代化的地理信息空间决策、分析以及模拟中显得非常重要,因为自动重复的执行任务会大量地节约完成工作所需要的时间和精力,并能保证数据的规范性和一致性[11]。在“模型构建器”中使用迭代时,可在每次迭代中使用不同的设置参数和任务数据来反复执行同一个地理信息处理过程,但一个模型中只能选择一种迭代器。每种迭代器均具有一组区别于其他迭代器的参数及功能描述,但是所有ArcGIS迭代器的整体结构都非常相近[12]。在使用中会发现“模型构建器”中的迭代工具有很大的灵活性,不仅可以迭代整个模型,还可以对具体的某个处理工具或过程进行重复执行。迭代器在影像批量裁剪过程中可以起到两方面重要作用:(1)对被裁剪要素(影像文件)进行迭代,就无需对每个影像文件分别进行裁剪;(2)对裁剪要素(矢量框文件)进行迭代,就无需再按照每个矢量框文件分别对影像文件进行裁剪。
利用ArcGIS软件的模型构建器(Model Builder)制作裁剪模型,通过对裁剪要素(乡镇行政界线矢量框)进行迭代,按照乡镇行政界线矢量框范围对影像文件进行裁剪,并在指定位置创建文件夹,通过获取变量的方式实现对裁剪后影像文件的动态存储及命名,最终实现基于GIS模型构建器的影像批量裁剪,其流程如图1所示。
图1 基于GIS模型构建器的影像批量裁剪流程Fig.1 Flow chart of batch processing of clipping images based on GIS model builder
在ArcGIS软件的模型构建器这一模块里,按照一定的地理信息工作处理流程,通过图形化操作工具,用连接线将相关模型元素(包括:输入、空间分析处理工具以及输出)有序连接起来,最后得到模型处理结果[13]。在模型的各相关工具中设置好对应的参数和环境,经过验证和正确运行后,一个完整、具有特定处理地理空间信息功能且可以重复使用的模型即建立完成。影像批量裁剪模型的建立过程如下:
1)在ArcGIS软件中打开模型构建器,添加待裁剪影像文件、矢量框文件,作为模型的输入。
2)插入“要素选择”迭代器,形成一个迭代模型。
3)在“迭代要素选择”中选择输入要素(矢量框文件)进行分组的一个或多个输入字段进行迭代,也可以定义多个输入的字段并依据字段唯一的组合进行选择迭代[14]。
4)插入ArcGIS工具箱中栅格处理下的裁剪工具,并将待裁剪影像文件作为输入栅格。
5)将迭代的所选要素作为裁剪的输出范围,同时根据迭代所选要素获取相应的变量,以实现对裁剪后影像文件的存储及命名,包括创建文件夹、解析路径等用于输出裁剪后影像文件名称中的行内变量。
6)实践并设置相应的模型工具参数,经过验证及运行正确后,完整的影像批量裁剪模型就建立好了。影像批量裁剪模型的建立过程如图2所示。
在影像批量裁剪模型建立好后,将模型以工具箱的格式保存,使用时可以直接调用。影像批量裁剪模型的使用与ArcGIS系统工具箱的使用方法一致。
1)在ArcGIS软件中打开Arc Toolbox模块,添加影像批量裁剪模型工具箱。
2)打开并进入影像批量裁剪模型工具运行界面,如图3所示。
3)“输入要素”选择矢量框文件。
4)“输入栅格”选择待裁剪的影像文件。
5)“输出文件夹位置”选择裁剪后影像文件的存储路径。
6)“按字段创建文件夹”选择存储裁剪后影像文件的文件夹命名。
7)“按字段分组(可选)”选择输入要素(矢量框文件)进行分组的一个或多个输入字段进行迭代,也可以定义多个输入的字段并依据字段唯一的组合进行选择[15],并关联裁剪后影像文件的命名。
8)“使用输入要素裁剪几何(可选)”未选中:使用矢量框文件最小的外接矩形进行裁剪数据,选中“使用矢量框文件的几何形状进行裁剪数据”。
图2 影像批量裁剪模型的建立Fig.2 Model of batch processing of clipping images
图3 影像批量裁剪模型工具运行界面Fig.3 Operation interface of batch processing model of clipping images
利用ArcGIS软件的模型构建器(Model Builder)制作裁剪模型,并最终实现基于GIS模型构建器的影像批量裁剪,解决了常规按矢量框文件逐个手动裁剪影像方法的低效、计算机语言编程批量裁剪难入手以及共享、扩展使用不方便等问题,实现批量、流程化裁剪影像的目标,达到高效、易入手且易于共享、扩展使用满足多元化需求的工作效果。也进一步验证了基于GIS模型构建器构建的工具模型在复杂地理空间信息处理上的可靠、高效及适用性,并显著降低了质量管理成本,提高了任务执行的时效性,也为新时期森林资源管理工作提供了技术保障,为探索新模式新途径积累了经验。