赞
踩
基于ArcMap,实现了构建GIS的模型构建器,python脚本两种方式,一键运行,自动导出gdb、套用模板的Shp、dwg文件和dwg转Shp、gdb。使得处理大量的地理信息数据和房产测量系统入案等情况更简单、高效。此提供一个思路,模型和脚本可根据需要进行更改。
先将CAD文件(格式为dwg)导入创建的地理数据库中,然后将地理数据库的文件导出成shapefile文件,调用的arcpy的主要函数为:
CreateFileGDB_management(创建地理数据库)
CADToGeodatabase_conversion(CAD导入地理数据库)
FeatureClassToShapefile_conversion(导出成shapefile)
一共需要添加5个工具,每个工具分别需要填写相关的变量与信息;
如图数字1:需要添加工作空间,双击,D:\gis03是我填写的工作路空间。
如图数字2:创建文件地理数据库,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
如图数字3:CAD导入地理数据库,可在ArcToolbox 直接拉取,双击然后填写工具的相关信。
如图数字4:需要在模型构建器/迭代器/要素类,添加迭代器,双击然后填写要素集(可选择上一环节输出的要素类),要素类型选择面(polygon)。
如图数字5:导出成shapefile,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
----------END---------
转换后的shp与CAD的坐标进行坐标系的定义是一样的
可保存为模型或者导出为python脚本,多次学习或使用。
先把你需要套用的模板shp数据的属性表删除,然后再把目标shp(dwg)数据的属性表(即图层),复制粘贴到你的模板shp(即属性表)数据上。
如图数字1:模板shp数据的属性表删除,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
如图数字2:粘贴到模板图层,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
如图数字3:把目标图层ID字段内容复制到粘贴的模板图层上,可在ArcToolbox 直接拉取,双击然后填写工具的相关信息。
把前面的一+二模型构建实例,然后再添加一个导出cad的功能。
即创建文件地理数据库——CAD导入地理数据库——要素类迭代器——模板shp数据的属性表删除——粘贴到模板图层,——把目标图层ID字段内容复制到粘贴的模板图层上——导出成shapefile文件和dwg文件。
把GIS里面构建的模型导出为Python脚本,然后修改脚本,再添加一个前端的界面即可。
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人工智能超市)发送‘帮助’文字
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。