【ArcGIS模型构建器】02:shp批量转kml/kmz

发布时间:2023年12月26日


一、加载实验数据

打开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")


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

2.保存为tbx工具箱

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

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

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

在这里插入图片描述

输入名称Mytoolbox。

在这里插入图片描述

输入工具名称。

在这里插入图片描述

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

在这里插入图片描述

选择Mytoolbox。

在这里插入图片描述

展开Mytoolbox,双击shptokml工具。

在这里插入图片描述

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

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

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

文章来源:https://blog.csdn.net/lucky51222/article/details/133977439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。