文章目录
- 一、加载实验数据
- 二、设计模型构建器
- 三、保存模型构建器
一、加载实验数据
打开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模型构建器批处理专栏》,订阅专栏,获取专栏内所有文章阅读权限,配套持续同步更新的实验数据及相关资料,方便学习。