1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 基于ArcMap 构建Python脚本和模型构建器 实现dwg转Shp gdb文件的创建和输出 以及

基于ArcMap 构建Python脚本和模型构建器 实现dwg转Shp gdb文件的创建和输出 以及

时间:2023-03-25 06:52:32

相关推荐

基于ArcMap 构建Python脚本和模型构建器 实现dwg转Shp gdb文件的创建和输出 以及

文章目录

前言一、基于ArcMap的模型构建器,实现cad (dwg)文件转Shp(Shapefile)和gdb(文件地理数据库)的创建并输出1、模型构建如下2、具体思路3、构建步骤说明 二、基于ArcMap的模型构建器,实现shp之间模板(属性表)套用1.模型构建如下:2.具体思路3.构建步骤说明 三、基于ArcMap的模型构建器,实现dwg文件套用shp模板数据,然后输出套用shp模板后的dwg文件和 shp文件1.模型构建如下2.具体思路 四、基于模型构建器导出为python脚本,实现dwg文件套用shp模板数据,然后输出套用shp模板后的dwg文件和 shp文件1.导出修改程序运行结果如下2.具体思路3.步骤 总结

前言

基于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脚本,多次学习或使用。

二、基于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人工智能超市)发送‘帮助’文字,本人将赠送本博客的清晰Python 源码。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。