本次Arcpy脚本工具用的是ArcGisPro2.8版本,尽量使用同一版本,其它版本可以参照。

工具介绍

城规专业一般都使用湘源软件画规划用地图。现在很多工作都转入ArcGIS中,但是传统画的用地图想要完美转成数据库文件是比较麻烦的,比如:

1、有地块内线的用地怎么导入?

2、规划用地中的各种指标,如【容积率、建筑密度、绿地率、建筑限高……】,如何保留?

第2点是最难的。比较笨的办法是把这些指标编辑成文字,然后通过【空间连接】工具连接到地块上,但是这样明显太笨了,于是就有了这个工具。

这个工具不是简单用脚本就能解决的,需要用到ArcGIS Pro安装包全家桶里的【Data_Interoperability】。

这里分享一下我使用的ArcGIS Pro 2.8.6的安装包,里面有Data_Interoperability。安装好后,就相当于给ArcGIS Pro安装了一个FME组件。FME有的人可能知道,是数据处理的超级软件,有兴趣的可以上网学习一下。

ArcGIS_Pro_2.8.6安装包https://pan.baidu.com/s/1H_j_incqFLjghN5UQLHZWQ?pwd=rkeu

工具结构

工具主要是用FME写的,FME工具怎么写的这里就不多做介绍,只说明一下主要思路。有FME基础的人听得懂就行,没用FME的人,直接调用这个写好的工具,也不必深究。后面有机会专门讲一讲FME的用法。

这里最主要的工具是【AttributeExposer】,暴露地块的隐藏属性,可以把指标等各种属性暴露出来。后续就是字段整理,以及计算各类指标。

FME工具写好后,可以在ArcGIS Pro新建一个空间ETL工具。

在工具属性里,设置【工作空间】为你刚写好的FME工具。这相当于直接调用了这个FME工具。

但是由于FME工具在参数方面有些小问题,比如参数标签不能用中文,输出参数必须先指定数据库,再指定要素名称等等....用起来不太习惯。于是我新建了一个脚本工具,然后在脚本里调用FME工具,一切就变得熟悉了起来。

最后要调用的工具是这个:

其它文件也是有用的,不要删掉(测试用的cad可删)。

最终参数有3个。

1、【输入用地CAD】——湘源画的规划用地。这里需要重点说明的一点是。不管是ArcGIS还是FME,都是按【面】来认用地要素的。FME更优秀的一点是可以认【填充图案】。但是湘源画的用地是一种特殊的自定义块,正常情况下不管是ArcGIS还是FME都不能读取。所以我们需要把用地炸开,只取填充图案。

炸开后,我们会发现指标等隐藏属性已经不见了。这没关系,其实是还在的,进了FME就可以看到了。

最后一件重要的事情:用来输入的规划地块,即【填充图案】一定要干净,如果含有其它无关的要素导入进处理,是大概率会出错的。这里推荐一种方法,隔离用地图层,选择炸开后的用地,用【w】命令,写块写出一个新文件,用这个新文件作为输入地块。

2、【输入人均居住面积】——这是用来计算人口、停车位数量的参数。默认是45,这个可以根据当地实际情况调整,或者在输出结果后再修改指标,都可以,不重要。

3、【输出用地要素】——输出结果的用地要素。

脚本编写

主要思路

由于主要工具是FME写的,所以脚本里的代码只是基本的一些框架代码。

完整代码如下:

import arcpy
import os# 获取文档位置
default_path = os.path.dirname(__file__)
arcpy.ImportToolbox(default_path + r"\cc工具箱.tbx")  # 加载cc工具箱input_cad = arcpy.GetParameterAsText(0)     # 输入用地cad文件
pp_area = arcpy.GetParameter(1)              # 输入人均居住面积
output_fc = arcpy.GetParameterAsText(2)     # 输出用地要素# 获取参数
gdb_FME = default_path + r'\FME导出.gdb'  # 临时FME导出gdb# cad用地导入gdb
def cad2gdb():arcpy.AddMessage(r'——————————cad用地导入gdb——————————' )# 判断数据库里是否已经有存在同名要素【如果有则清除】fc = gdb_FME + r'\FME导出用地'   # 设置一个中间数据if arcpy.Exists(fc):arcpy.Delete_management(fc)# 使用FME工具【FMEcad2gdb】arcpy.cc.FMEcad2gdb(input_cad, gdb_FME, r'FME导出用地', pp_area)arcpy.AddMessage(r'——————————复制到目标gdb——————————')# 复制到目标gdbarcpy.CopyFeatures_management(fc, output_fc)if __name__ == '__main__':cad2gdb()

结果展示

最终生成结果如下:

这里我对一些指标结果作了一些修正,比如绿地率有上下限,结果就是【10-20】这样的,如果是工业用地,建筑密度结果就是【建筑系数≥40%】之类的。如果想修改结果表达也没问题,我把原始的指标也按字段保留了下来,可以自己修正。

工具下载

最后,贴上工具下载地址:

工具下载:CAD用地带指标导入ArcGIS数据库https://pan.baidu.com/s/1SJpl31KfLU5z6mlKrL2DAw?pwd=p55o

ArcGisPro脚本工具【6】——湘源画的规划用地CAD带指标导入ArcGIS数据库相关推荐

  1. ArcGisPro脚本工具【7】——通过高德地图API获取公交线路

    本次Arcpy脚本工具用的是ArcGisPro2.8版本,尽量使用同一版本,其它版本可以参照. 工具介绍 本工具的主要功能是通过高德的API接口提取公交线路的坐标和属性信息,并转换为矢量,保存到GDB ...

  2. ArcGisPro脚本工具【8】——用地图斑导出用地用海汇总表

    本次Arcpy脚本工具用的是ArcGisPro2.8版本,尽量使用同一版本,其它版本可以参照. 工具介绍 以前在湘源上画的规划用地图,想导出规划指标表是很容易的.但是现在很多用地图最终是要在ArcGI ...

  3. ArcGisPro脚本工具【0】——制作你的第一个脚本工具

    本系列以ArcGisPro2.8为例.Pro的脚本采用的python版本是3.X,相比于ArcGis10.X采用的python2.X,有了很大的进步,尤其是对中文字符的支持,可以避免很多奇怪的bug. ...

  4. yt88加密狗不识别_YT88 是天域一个很不错的加密狗工具,可以源码 ,还 外壳 ,带DLK开发包。 Windows Develop 256万源代码下载- www.pudn.com...

    文件名称: YT88下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Windows_Unix 文件大小: 12909 KB 上传时间: 2016-05-01 下载次数: 0 提 供 ...

  5. 国土空间规划用地图斑GIS数据导入CAD湘源,并按市级国土空间规划制图规范显示

    全文字数:1082 字 阅读时间约:5 分钟 将GIS中的国土空间规划用地图斑数据导入CAD湘源中后,用地图斑颜色缺失或不对,一是导入方法不对,二是湘源自带的用地用海图层样式与国空制图规范的样式不一致 ...

  6. python for arcgis_ArcGIS使用Python脚本工具

    在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用.在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了.这里用按要素裁剪栅格的Python来 ...

  7. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  8. 湘源控规8.0_湘源控规8.0新版本发布

    湘源控规更新升级到8.000版,更新内容如下:  一.增加对国土空间规划的支持 1.支持国土空间规划用途分类: 2.对图层.颜色.图示符号等进行了升级,与国土空间规划图纸进行了对接: 3.增加了国土空 ...

  9. arcgis python实例_arcgis python脚本工具实例教程—栅格范围提取至多边形要素类

    arcgis python脚本工具实例教程-栅格范围提取至多边形要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:提取栅格数据的范围, ...

最新文章

  1. sql 精读(三) 标准 SQL 中的编号函数示例
  2. 1.9 Lambda表达式遍历Collection集合
  3. C语言实现链表(附完整源码)
  4. 安卓-04-实例01-XML布局UI界面
  5. 输入参数_太实用!输入参数1秒算出功率,这款计算工具又快又准
  6. redis数据批量导入导出
  7. OpenGL 入门第一课 视窗以及三角形
  8. 组态档(configuration file)与建构档
  9. rk1808交叉编译opencv_我用AI视觉模组DIY了一个驾驶疲劳监测仪
  10. Linux期末考试模拟试题
  11. C语言冒泡排序代码示例
  12. PHP网站常见一些安全漏洞及防御方法
  13. 利用diyUpload做多图片上传及预览
  14. videoJs常用方法、事件、VUE中使用的注意事项
  15. html中如何设置艺术字体,html里怎么把字体变成艺术字
  16. local class incompatible: stream classdesc serialVersionUID = -4601057296962918535, local class seri
  17. arduino控制串口屏
  18. matlab最基础教程(四):常用的系统自带函数,符号变量与字符串篇
  19. 中科院京区博士生申请申根(德国)签证流程
  20. WiFi、蓝牙以及双WiFi流程

热门文章

  1. RabbitMQ 集群详解部署(一)
  2. 【Oracle 故障处理一则】 ORA-600 - 13013处理过程
  3. zabbix自定义监控项-统计AP在线、离线数量(AC:H3C WX5540H)
  4. 黑马量价启动副图指标 开始拉升出信号 超精致买入预警 通达信 源码分享
  5. 《C陷阱与缺陷》书评兼感想
  6. 网站服务器防火墙关闭吗,网站防火墙怎么关
  7. 服务器2016系统怎么关防火墙,服务器怎么关闭防火墙
  8. Spotify for Mac(流行音乐播放器)
  9. Swagger注解详解
  10. 电感,电容的单位换算