码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【ArcGIS模型构建器】02:shp批量转kml/kmz


    文章目录

    • 一、加载实验数据
    • 二、设计模型构建器
    • 三、保存模型构建器


    一、加载实验数据

    打开ArcMap,加载专栏配套实验数据data02.rar中的,位于乡镇根目录文件夹内的15个乡镇矢量数据。

    在这里插入图片描述
    接下来跟我一步步实现用模型构建器批量转为kml。

    二、设计模型构建器

    1. 打开模型构建器

    点击ArcMap工具栏中的【模型构建器】工具,打开模型构建器窗口,如下图所示。

    在这里插入图片描述

    2. 添加数据文件夹

    首先需要将存放矢量数据的根目录(多个数据可能回位于根目录内不同的文件夹)拖拽添加。

    在这里插入图片描述

    3. 添加要素类迭代器

    由于是批量处理,一定要添加一个迭代器,类型选择要素类。点击【插入】→【迭代器】→【要素类】:

    在这里插入图片描述

    用连接工具,将文件夹拖到迭代要素类上,弹出窗口中选择【工作空间或要素数据集】。

    在这里插入图片描述

    双击迭代要素类,打开迭代要素类对话框。如果shp位于多个文件夹内,要勾选【递归】,软件会遍历文件夹内的所有shp数据,我们没必要把所有shp手动放到一个文件夹内。点击确定。

    在这里插入图片描述

    4. 添加【创建要素图层】工具

    由于【图层转kml】工具要求的输入参数为图层(并非要素类),因此要将迭代器遍历得到的要素类转为要素图层,找见该工具。

    在这里插入图片描述

    将【创建要素图层】工具拖到模型构建器,连接,让迭代的矢量要素类为其输入要素。

    在这里插入图片描述

    5. 添加【图层转kml】工具

    在转换工具箱中找到图层转kml工具,此工具用于将要素或栅格图层转换为 KML 文件,其中包含 Esri 几何和符号系统的转换。该文件采用 ZIP 压缩方式压缩,具有 .kmz 扩展名,并且可以由任何 KML 客户端读取,包括 ArcGIS Earth、ArcGlobe 和 Google Earth。
    在这里插入图片描述

    将其拖入模型构建器,让转换后的要素图层做为其输入图层,进行kml转换。

    在这里插入图片描述
    可以通过点击工具栏的【自动布局】是先模型的排版。

    在这里插入图片描述

    6. 输出文件命名

    双击输出名称变量,确定输出路径,将名称改为:%名称%.kmz,点击保存。

    在这里插入图片描述

    至此,简单完整的模型构建完毕。

    7. 运行模型

    点击工具栏的【运行】工具运行模型;或者点击菜单【模型】→【运行】:

    在这里插入图片描述

    转换完成,关闭对话框。

    在这里插入图片描述

    打开结果输出文件夹:

    在这里插入图片描述
    8. 结果验证

    可以将kml格式的数据加入ArcGIS Earth、Google Earth、globalmapper、大疆智图等软件中进行查看。

    (1)ArcGIS Earth

    在这里插入图片描述
    拓展阅读:

    【ArcGIS微课1000例】0063:ArcGIS Earth完美代替Google Earth(附安装包下载)

    (2)globalmapper

    在这里插入图片描述
    拓展阅读:

    《GlobalMapper中文实战精品教程》:最新GlobalMapper中文版入门实战实验教程,图文并茂,实用性强,内容包括:GM基础操作、数据处理及地形图制作、航测内业数据处理、点云处理、地形分析、空间分析、数据库建库入库等。配套完整案例数据,持续同步更新!订阅专栏后,从私信查收中文安装包永久版(中文23.0+24.0)及配套实验数据包。

    (3)大疆智图

    在这里插入图片描述
    拓展阅读:

    【大疆智图】大疆智图(DJI Terra 3.0.0)安装及使用教程

    到此为止,我们实现了通过利用ArcGIS模型构建器对shp批量转kml的简单应用。如果大家对模型构建器及Python有深入研究,不妨继续往下看。

    三、保存模型构建器

    1.导出为Python脚本

    点击【模型】→【导出】→【至Python脚本】:

    在这里插入图片描述
    生成的代码如下所示:

    在这里插入图片描述
    Python代码:

    # -*- coding: utf-8 -*-
    # ---------------------------------------------------------------------------
    # shp2kml.py
    # Created on: 2023-10-22 20:43:49.00000
    #   (generated by ArcGIS/ModelBuilder)
    # Description: 
    # ---------------------------------------------------------------------------
    
    # Import arcpy module
    import arcpy
    
    # Load required toolboxes
    arcpy.ImportToolbox("模型函数")
    
    
    # Local variables:
    乡镇 = "C:\\乡镇"
    名称 = "金山乡"
    八里湾乡_shp = "C:\\乡镇\\金山乡.shp"
    八里湾乡_Layer = "金山乡_Layer"
    v_名称__kmz = "C:\\乡镇kml\\%名称%.kmz"
    
    # Process: 迭代要素类
    arcpy.IterateFeatureClasses_mb(乡镇, "", "", "NOT_RECURSIVE")
    
    # Process: 创建要素图层
    arcpy.MakeFeatureLayer_management(八里湾乡_shp, 八里湾乡_Layer, "", "", "FID FID VISIBLE NONE;Shape Shape VISIBLE NONE;geom geom VISIBLE NONE;省 省 VISIBLE NONE;市 市 VISIBLE NONE;县 县 VISIBLE NONE;乡 乡 VISIBLE NONE")
    
    # Process: 图层转 KML
    arcpy.LayerToKML_conversion(八里湾乡_Layer, v_名称__kmz, "0", "NO_COMPOSITE", "DEFAULT", "1024", "96", "CLAMPED_TO_GROUND")
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    可以对Python代码进行简单的修改,运行独立脚本是先批处理。有关Python批处理,大家可参阅相关专栏《ArcGIS遇上Python》。

    2.保存为tbx工具箱

    如果你对Python不太熟悉,可以将模型构建器保存为tbx工具箱,使用更为简单仿方便。

    将输入和输出变量重命名,右键勾选模型参数即可。

    在这里插入图片描述
    点击另存为,点击新建工具箱。

    在这里插入图片描述

    输入名称Mytoolbox。

    在这里插入图片描述

    输入工具名称。

    在这里插入图片描述

    打开工具箱,右键→添加工具箱。

    在这里插入图片描述

    选择Mytoolbox。

    在这里插入图片描述

    展开Mytoolbox,双击shptokml工具。

    在这里插入图片描述

    可以重新定义输入输出参数,点击确定开始运行。

    在这里插入图片描述
    学习提示:

    本文收录于《ArcGIS模型构建器批处理专栏》,订阅专栏,获取专栏内所有文章阅读权限,配套持续同步更新的实验数据及相关资料,方便学习。

  • 相关阅读:
    springboot+mybatis实现一对多查询(某学生和课程的ER图如下图所示,根据ER图创建数据库表,往数据库表中添加若干测试数据,用SpringBoot+SpringMVC+ Mybatis)
    5.盒子阴影(重点)
    人民艺术家梁永和丹青传情新时代
    nodejs+vue线上生活超市购物商城系统w2c42
    【推荐系统】推荐系统-基础算法 冷启动、及深度学习在冷启动上的应用
    GAN入门|第二篇:人脸图像生成(DCGAN)
    Gateway路由的配置方式
    finalshell上传文件失败的解决方法
    第二章《Java程序世界初探》第6节:赋值运算符
    Abnova 环孢素A单克隆抗体,及其研究工具
  • 原文地址:https://blog.csdn.net/lucky51222/article/details/133977439
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号