现有基于矢量图形的骨架线提取方法主要包括数据预处理、基于约束 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 所示。

 

基于GIS空间分析的多边形提取技术的更多相关文章

  1. 《gis空间分析及应用案例解析》培训总结

    <gis空间分析及应用案例解析>培训总结 来源:常德水情 作者:唐校准 发布日期:2014-01-02       2013年12月2630日由中国科学院计算技术研究所教育中心组织的< ...

  2. GIS空间分析案例教程——带背景和周围要素的逐要素导出地理

    GIS空间分析案例教程--带背景和周围要素的逐要素导出地理 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 目的:导出多边形要素类的每个要素 实 ...

  3. GIS空间分析案例_图层逐要素导出地理处理工具

    GIS空间分析案例_图层逐要素导出地理处理工具 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 目的:导出图层的每个要素 使用方法:指定输入图层 ...

  4. gis空间分析案例_7参数单坐标转换

    gis空间分析案例_7参数单坐标转换 商务科技合作:向日葵,135-4855__4328,xiexiaokui#qq.com 功能: 对输入的单个坐标,利用7参数,一步进行坐标变换,使用极为直观,极大 ...

  5. gis空间分析案例_坐标文件高斯投影变换地理处理工具

    gis空间分析案例_坐标文件投影变换地理处理工具 商务科技合作:向日葵,135—4855__4328,xiexiaokui#qq.com 功能: 对文件进行投影变换 特点: 1. 地理处理工具,可以与 ...

  6. GIS 空间分析案例教程-坐标高斯投影正反算

    GIS 空间分析案例教程-坐标高斯投影正反算 商务科技合作:向日葵,135-4855__4328,xiexiaokui#qq.com 特点: 1. 地理处理工具,可以与任何arcgis 工具和语言集成 ...

  7. GIS 空间分析案例分析-错误排除经验总结

    GIS 空间分析案例分析-错误排除经验总结 商务科技合作:向日葵,135—4855__4328,xiexiaokui#qq.com 目录:问题发现,问题分析,解决方法,结果 1. problem di ...

  8. gis空间分析案例教程-下篇预告

    1. 三维空间坐标转换,地理处理工具 2. 3参数,7参数计算,地理处理工具 3. 3参数,7参数坐标转换,地理处理工具 4. 坐标转换工具箱:集成高斯投影,参数计算,坐标转换所有功能. 作业:GIS ...

  9. 【转】阿里巴巴技术专家杨晓明:基于Hadoop技术进行地理空间分析

    转自:http://www.csdn.net/article/2015-01-23/2823687-geographic-space-base-Hadoop [编者按]交通领域正产生着海量的车辆位置点 ...

随机推荐

  1. Computing Essentials_第一章习题

  2. VS2010 常用的快捷键

    1.强迫智能感知:Ctrl+J:2.强迫智能感知显示参数信息:Ctrl-Shift-空格:3.格式化整个块:Ctrl+K+F4.检查括号匹配(在左右括号间切换): Ctrl +]5.选中从光标起到行首 ...

  3. VisualStudio2010配置使用Halcon

    电脑系统环境变量(path): %HALCONROOT%\bin\x86sse2-win32;%HALCONROOT%\bin\x64-win64;%HALCONROOT%\bin\dotnet20; ...

  4. python库之-------Pandas

    包括两个数据结构:DataFrame和Series 官方文档地址: pandas https://pandas.pydata.org/pandas-docs/stable/index.html ser ...

  5. 求求你,下次面试别再问我什么是 Spring AOP 和代理了!

    https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9403056301388627935% ...

  6. linux更改系统ulimit

    https://jingyan.baidu.com/article/c85b7a64b65d8c003aac957e.html

  7. MOOC(4)- setup和teardown函数

    import unittest class TestRequest(unittest.TestCase): @classmethod def setUpClass(cls): print(" ...

  8. IO流框架

    目录 IO流框架总结 字节流 字符流 IO流框架总结 普通IO / NIO 字节流 字节流是万能流,但是在处理字符方面有时候不太方便,一般用来处理二进制文件 字节输入流 InputStream int ...

  9. Java找出两个链表的第一个公共节点

    题目描述输入两个链表,找出它们的第一个公共结点. 我的思路:因为是链表,长度都是未知的,不能盲目的两个一起开始自增判断. 首先需要得到 L1的长度 和 L2的长度,让较长的那个先走 (length1- ...

  10. GLSL 的各种着色器效果

    Site Defunct 注意!截止到 16/9/2019 ,这个博客已经被搬迁到了 这里 .以后我的东西都会发在那里.拜拜啦! GLSL 很牛逼 Vignette ScanLine Pixelate ...