当前位置:   article > 正文

基于ArcMap、构建Python脚本和模型构建器,实现dwg转Shp、gdb文件的创建和输出,以及套用Shp模板后的文件创建和输出 (一)_arcpy 模型构建器教程

arcpy 模型构建器教程

前言

基于ArcMap,实现了构建GIS的模型构建器,python脚本两种方式,一键运行,自动导出gdb、套用模板的Shp、dwg文件和dwg转Shp、gdb。使得处理大量的地理信息数据和房产测量系统入案等情况更简单、高效。此提供一个思路,模型和脚本可根据需要进行更改。


一、基于ArcMap的模型构建器,实现cad (dwg)文件转Shp(Shapefile)和gdb(文件地理数据库)的创建并输出

1、模型构建如下

在这里插入图片描述

2、具体思路

先将CAD文件(格式为dwg)导入创建的地理数据库中,然后将地理数据库的文件导出成shapefile文件,调用的arcpy的主要函数为:

CreateFileGDB_management(创建地理数据库)
CADToGeodatabase_conversion(CAD导入地理数据库)
FeatureClassToShapefile_conversion(导出成shapefile)
在这里插入图片描述

3、构建步骤说明

一共需要添加5个工具,每个工具分别需要填写相关的变量与信息;

如图数字1:需要添加工作空间,双击,D:\gis03是我填写的工作路空间。
在这里插入图片描述

如图数字2:创建文件地理数据库,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
在这里插入图片描述
在这里插入图片描述

如图数字3:CAD导入地理数据库,可在ArcToolbox 直接拉取,双击然后填写工具的相关信。

在这里插入图片描述
在这里插入图片描述

如图数字4:需要在模型构建器/迭代器/要素类,添加迭代器,双击然后填写要素集(可选择上一环节输出的要素类),要素类型选择面(polygon)。

在这里插入图片描述
在这里插入图片描述

如图数字5:导出成shapefile,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。

在这里插入图片描述
在这里插入图片描述

                                                           ----------END---------
                                                            
                                                   转换后的shp与CAD的坐标进行坐标系的定义是一样的

                                                   可保存为模型或者导出为python脚本,多次学习或使用。
  • 1
  • 2
  • 3
  • 4
  • 5

二、基于ArcMap的模型构建器,实现shp之间模板(属性表)套用

1.模型构建如下:

在这里插入图片描述

2.具体思路

先把你需要套用的模板shp数据的属性表删除,然后再把目标shp(dwg)数据的属性表(即图层),复制粘贴到你的模板shp(即属性表)数据上。
在这里插入图片描述

3.构建步骤说明

在这里插入图片描述
如图数字1:模板shp数据的属性表删除,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。

在这里插入图片描述
在这里插入图片描述

如图数字2:粘贴到模板图层,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
在这里插入图片描述
在这里插入图片描述

如图数字3:把目标图层ID字段内容复制到粘贴的模板图层上,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
在这里插入图片描述
在这里插入图片描述

三、基于ArcMap的模型构建器,实现dwg文件套用shp模板数据,然后输出套用shp模板后的dwg文件和 shp文件

1.模型构建如下

在这里插入图片描述

2.具体思路

把前面的一+二模型构建实例,然后再添加一个导出cad的功能。

即创建文件地理数据库——CAD导入地理数据库——要素类迭代器——模板shp数据的属性表删除——粘贴到模板图层,——把目标图层ID字段内容复制到粘贴的模板图层上——导出成shapefile文件和dwg文件。

四、基于模型构建器导出为python脚本,实现dwg文件套用shp模板数据,然后输出套用shp模板后的dwg文件和 shp文件

1.导出修改程序运行结果如下

在这里插入图片描述
在这里插入图片描述

2.具体思路

把GIS里面构建的模型导出为Python脚本,然后修改脚本,再添加一个前端的界面即可。

3.步骤

A、导出脚本:

在这里插入图片描述

注意: 从模型构建器导出的ArcPy代码通常需要进行大量调整,尽管它可能是一个适度有用的起点。

B、需要修改的地方有字符问题、函数使用问题、路径的填写以及代码逻辑思路的改动。
调试过程中出现的报错画面如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C、解决方案:

问题1:
arcpy.ImportToolbox(“模型函数”):其中的中文需要填写的是你下一个函数所用到的Toolbox的位置,例如我下面用到的第一个是创建文件地理数据库(CreateFileGDB_management),所以我“模型函数”我这里所填写的是E:\ArcGis\Desktop10.2\ArcToolbox\Toolboxes\Data Management Tools.tbx(即是你arcmap下载安装Toolbox的位置)

在这里插入图片描述
问题2:中文出现乱码
需要再py文件头部加上这句话 # – coding:cp936 –,然后再在中文的地方加上字母u即可。
在这里插入图片描述

问题3:我模型里面用到一个迭代器,但脚本是不适用的,需要把它换成ListFeatureClasses()

导出是:arcpy.IterateFeatureClasses_mb(Point_CADToGeodatabase, “”, “POLYGON”, “NOT_RECURSIVE”)

需要改为:fcs = arcpy.ListFeatureClasses(“POLYGON”)

问题4:路径问题,这是成功运行代码的关键,需要特别修改。
我添加了判断某目录是否存在,如下:

在这里插入图片描述

4、 最后我修改的py脚本到成功运行的代码结果是:
在这里插入图片描述
在这里插入图片描述

总结

结语:小程序里面需要填写你相关的信息,点击运行即可实现dwg文件套用shp模板数据,然后输出套用shp模板后的dwg文件和 shp文件。此程序套用模板是需要把模板的ID字段内容保留的,所以不需要此步骤的,修改程序即可,此案例个人觉得适合房产测量系统入案和GIS数据大批量处理的情况等。其中修改python脚本的过程实在有太多细节需要修改。
还有最后一步,我觉得很重要和关键的是,我想把GIS平台写的python脚本打包成exe程序、直接运行程序即可那种,但目前还没有找到解决方案的,若你们知道,可否指点一二。因为ArcPy包不是开源的,它是封闭的,基于GIS平台,无法脱离GIS平台运行脚本。

欢迎大家点赞、评论及转载,转载请注明出处!
  为我打call,不如为我打款!

  
打赏可备注邮箱或关注公众号(Edge AI人工智能超市)发送‘帮助’文字

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/341097?site
推荐阅读
相关标签
  

闽ICP备14008679号