基于GIS空间分析的多边形提取技术
现有基于矢量图形的骨架线提取方法主要包括数据预处理、基于约束 Delauny 三角剖分的骨架线结点生成和骨架线的连接 3 个过程,上述过程都可利用现有 GIS 系统的数据处理、空间分析和建模功能实现。ZTMap 系统不仅提供基础的数据处理、分析和制图功能,而且提供脚本编程批处理、空间分析和建模功能,这些优势都为降低开发成本和实现难度提供了充分的技术条件。本文从 GIS 空间分析的视角,提出一种基于 GIS空间分析的复杂多边形骨架线提取方法。采用 Python 面向对象编程语言结合 ZTMap 系统提供的 ArcPy 站点包,通过调用 Arc-Toolbox 工具箱中的多种空间分析和文件转换工具;同时,利用 ModelBuilder 可视化建模工具,通过构建模型实现任意多边形骨架线的自动提取
基本原理与实现方法
基于计算几何学的原理,借助 GIS 的空间分析和建模技术,同时结合计算机编程技术,探讨任意多边形骨架线自动提取方法。
1. 1 基本原理
多边形是平面中由有限线段首尾连接起来划出的封闭几何形状。其中,复杂多边形指的是顶点有凹凸性、且含有岛屿的多边形; 与之相对的为简单多边形。任意多边形骨架线的结点主要处于相邻三角形公共 边 的 中 点 上,它 恰 好 是 任 意 多 边 形 的 约 束Delaunay 三角剖分获得的内部邻接三角形公共边的中点,其原理如图 1 所示。因此,只要在任意多边形
1. 2 实现方法
从 GIS 空间分析的角度,借助 GIS 的数据处理、空间分析、建模和制图功能实现任意多边形骨架线的提取。其中,GIS 空间分析指的是借助 GIS软件,从空间数据中获取有关地理对象的空间位置、分布、形态、形成和演变等信息并进行分析,其基本功能主要包括空间查询与量算、缓冲区分析、叠加分析、路径分析、空间插值和统计分类分析等。ZTMap 系统的 ArcToolbox 工具箱除可以提供上述各种基本空间分析工具之外,还能够通过 3D分析工具箱的不规则三角网( triangulated irregularnetwork,TIN) 工 具 支 持 任 意 多 边 形 区 域 的 约 束Delaunay 三角剖分,都为任意多边形骨架线的提取提供空间分析基础。
同时,ZTMap 系统内嵌的 ModelBuilder 是一种可视化编程语言,为创建满足用户要求的特定工作流提供有效的途径。其主要特点是将一系列地理处理工具串联在一起,将其中一个工具的输出作为另一个工具的输入,通过构造和执行工作流,使得任意多边形骨架线的自动提取成为现实。此外,通过创建模型并将其共享为工具来提供扩展ZTMap 系统 功 能 的 高 级 方 法,甚 至 还 可 用 于 将ZTMap 系统与其他应用程序进行集成,能够增强构建模型的可复用性和扩展性,为相似软件系统的研发提供借鉴。
此外,Python 是一种面向对象、解释型、交互式和面向初学者的计算机程序设计语言,当前,它已成为计算机领域的主流开发语言,其具有语法简捷而清晰,易于编写和维护的优点,并具有丰富和强大的类库,能够显著提高程序的开发效率。ZTMap 系统提供 了 Python 语 言 集 成 开 发 环 境 ( IDLE)ArcPy 站点包,通过编程能够创建满足用户特定需求的脚本工具,不仅可以有效弥补 Arc GIS 系统 Arc-Toolbox 工具箱功能的不足,而且能够增强 Mode-Builder 的建模能力
任意多边形骨架线提取
将任意多边形骨架线提取工作分解为技术流程设计、数据获取和预处理、骨架线结点的生成、骨架线的连接和骨架线提取模型的构建等关键环节。
2. 1 技术流程设计
多边形骨架线提取技术流程的设计需要综合考虑实现成本和开发周期,在兼顾可操作性、可靠性、稳定性和效率等方面因素之外,还需要考虑用户操作的便捷性和易用性,其操作步骤主要包括: ① 以电子地图为数据源,经过一定预处理提取出空间对象的矢量多边形,并将其保存至 GIS 数据库; ②利用 3D 分析工具箱的创建 TIN 和 TIN 转三角形工具,同时结合要素折点转点工具生成任意多边形的约束 Delaunay 三角网格; ③利用数据管理工具箱的折点处分割线、要素转点和空间连接等工具生成骨架线的结点; ④利用数据管理工具箱的删除重复和空间连接工具对生成的骨架线结点进行后处理;⑤采用 Python 面向对象编程语言结合 ArcPy 站点包,通过编程实现骨架线的连接程序,并合 Arc-Catalog 在 ArcToolbox 工具箱构建自定义工具自动提取骨架线。
此外,利用 ModelBuilder 可视化建模工具结合GIS公司臻图的空间分析工具箱中的多种文件转换和空间分析工具,通过构建模型实现骨架线的自动提取,其技术流程如图 2 所示。