最近试着使用字段计算器内的python脚本整理图斑,蹒跚学步,做下记录。

1.用地代码与名称转换

1.1城规用地代码CGYDDM转用地名称CGYDMC

做一个python字典再索引即可(码齐这些分类还挺累。。)

list = {
'A':'公共管理与公共服务用地',
'A1':'行政办公用地',
'A2':'文化设施用地',
'A21':'图书展览设施用地',
'A22':'文化活动设施用地',
'A3':'教育科研用地',
'A31':'高等院校用地',
'A32':'中等专业学校用地',
'A33':'中小学用地',
'A34':'特殊教育用地',
'A35':'科研用地',
'A4':'体育用地',
'A41':'体育场馆用地',
'A42':'体育训练用地',
'A5':'医疗卫生用地',
'A51':'医院用地',
'A52':'卫生防疫用地',
'A53':'特殊医疗用地',
'A59':'其它医疗卫生用地',
'A6':'社会福利设施用地',
'A7':'文物古迹用地',
'A8':'外事用地',
'A9':'宗教设施用地',
'B':'商业服务业设施用地',
'B1':'商业设施用地',
'B11':'零售商业用地',
'B12':'批发市场用地',
'B13':'餐饮用地',
'B14':'旅馆用地',
'B2':'商务设施用地',
'B21':'金融保险用地',
'B22':'艺术传媒用地',
'B29':'其他商务设施用地',
'B3':'娱乐康体设施用地',
'B31':'娱乐用地',
'B32':'康体用地',
'B4':'公用设施营业网点用地',
'B41':'加油加气站用地',
'B49':'其它公用设施营业网点用地',
'B9':'其它服务设施用地',
'E':'非建设用地',
'E1':'水域',
'E11':'自然水域',
'E12':'水库',
'E13':'坑塘沟渠',
'E2':'农林用地',
'E9':'其它非建设用地',
'G':'绿地与广场用地',
'G1':'公园绿地',
'G2':'防护绿地',
'G3':'广场用地',
'H':'建设用地',
'H1':'城乡居民点建设用地',
'H11':'城市建设用地',
'H12':'镇建设用地',
'H13':'乡建设用地',
'H14':'村庄建设用地',
'H2':'区域交通设施用地',
'H21':'铁路用地',
'H22':'公路用地',
'H23':'港口用地',
'H24':'机场用地',
'H25':'管道运输用地',
'H3':'区域公用设施用地',
'H4':'特殊用地',
'H41':'军事用地',
'H42':'安保用地',
'H5':'采矿用地',
'H9':'其它建设用地',
'M':'工业用地',
'M1':'一类工业用地',
'M2':'二类工业用地',
'M3':'三类工业用地',
'R1':'一类居住用地',
'R11':'一类居住用地-住宅用地',
'R12':'一类居住用地-服务设施用地',
'R2':'二类居住用地',
'R21':'二类居住用地-住宅用地',
'R22':'二类居住用地-服务设施用地',
'R3':'三类居住用地',
'R31':'三类居住用地-住宅用地',
'R32':'三类居住用地-服务设施用地',
'S':'道路与交通设施用地',
'S1':'城市道路用地',
'S2':'城市轨道交通用地',
'S3':'交通枢纽用地',
'S4':'交通站场用地',
'S41':'公共交通站场用地',
'S42':'社会停车场用地',
'S9':'其它交通设施用地',
'U':'公用设施用地',
'U1':'供应设施用地',
'U11':'供水用地',
'U12':'供电用地',
'U13':'供燃气用地',
'U14':'供热用地',
'U15':'通信设施用地',
'U16':'广播电视设施用地',
'U2':'环境设施用地',
'U21':'排水设施用地',
'U22':'环卫设施用地',
'U23':'环保设施用地',
'U3':'安全设施用地',
'U31':'消防设施用地',
'U32':'防洪设施用地',
'U9':'其它公用设施用地',
'W':'物流仓储用地',
'W1':'一类物流仓储用地',
'W2':'二类物流仓储用地',
'W3':'三类物流仓储用地',
}

再给CGYDMC字段赋值

list.get( !CGYDDM! )

1.2 土规用地代码TGYDDM转用地名称TGYDMC

list = {
'1110':'水田',
'1120':'水浇地',
'1130':'旱地',
'1310':'有林地',
'1320':'灌木林',
'1330':'其它林地',
'1410':'天然牧草地',
'1420':'人工牧草地',
'1510':'设施农用地',
'1520':'农村道路',
'1530':'坑塘水面',
'1540':'农田水利用地',
'1550':'田坎',
'2110':'城镇用地',
'2120':'农村居民点用地',
'2130':'采矿用地',
'2140':'其它独立建设用地',
'2210':'铁路用地',
'2220':'公路用地',
'2230':'民用机场用地',
'2240':'港口码头用地',
'2250':'管道运输用地',
'2260':'水库水面',
'2270':'水工建筑用地',
'2310':'风景名胜设施用地',
'2320':'特殊用地',
'2330':'盐田',
'3110':'河流水面',
'3120':'湖泊水面',
'3130':'滩涂',
'3210':'荒草地',
'3220':'盐碱地',
'3230':'沙地',
'3240':'裸地',
'3250':'其它未利用土地',
'1100':'耕地',
'1200':'园地',
'1300':'林地',
'1400':'牧草地',
'1500':'其它农用地',
'2100':'城乡建设用地',
'2200':'交通水利用地',
'2300':'其他建设用地',
'3100':'水域',
'3200':'自然保留地',
'1000':'农用地',
'2000':'建设用地',
'3000':'其它土地'}

2.衔接地类代码整理

城规

cx = ['H11', 'H14', 'H5']
fc = ['H2', 'H4', 'H9']
fJ = ['E1', 'E2', 'E9']def CGXJDLDM(CG):if  CG in cx:return 'cx'elif CG in fc:return 'fc'else:return 'fJ'

赋值:

CGXJDLDM(!CGDLDM!)

3.1 三规合一之城规CG与土规TG建设用地差异CYFQMC

定义一个函数,然后用条件语句分类

因为两规的规划范围不一致,导致两规的衔接地类代码中均出现空值‘’,可归为非建fJ。(正确流程还是先统一两规边界再做后续分析,故fJ不需再包含空值)

J = ['cx', 'fc']
fJ = ['fJ','']def CYFX(CG,TG):if TG in J and CG in fJ:return "土规建设用地,城规非建设用地"elif CG in J and TG in fJ:return "土规非建设用地,城规建设用地"elif CG in J and TG in J:return "城乡规划和土地利用总体规划均为建设用地"else:return "城乡规划和土地利用总体规划均为非建设用地"

下方字段赋值

CYFQMC=
CYFX( !CGXJDLDM!, !TGXJDLDM!)

3.2三规合一之现状XZ与土规TG建设用地差异CYFQMC

需要注意的问题是,ArcGIS10.2.2如果字段使用了中文的字符,python条件语句会执行出错,纠结好久才发现这个问题所在。

被迫把国土已批GTYP和复垦用地FKYD字段改为短整给值1。

J = ['cx', 'fc']
fJ = ['fJ', '']def CYFX(XZ,TG,GTYP,FKYD):if TG in J and XZ in fJ:if GTYP == 1:return "土规为建设用地,现状为非建设用地,已批未建"else:return "土规为建设用地,现状为非建设用地,未批未建"elif TG in fJ and XZ in J:if FKYD == 1:return "土规为非建设用地,现状为建设用地,复垦用地"elif GTYP == 1:return "土规为非建设用地,现状为建设用地,非复垦用地,已批已建"else:return "土规为非建设用地,现状为建设用地,非复垦用地,未批已建"elif XZ in J and TG in fJ:return "土规与现状均为建设用地"else:return "土规与现状均为非建设用地"

赋值:

CYFX( !XZXJDLDM!, !TGXJDLDM!, !GTYP!, !FKYD!)

3.3三规合一之现状XZ与城规CG建设用地差异CYFQMC

J = ['cx', 'fc']
fJ = ['fJ', '']def CYFX(XZ,CG,GHYP):if CG in J and XZ in fJ:if GHYP == 1:return "城规为建设用地,现状为非建设用地,已批未建"else:return "城规为建设用地,现状为非建设用地,未批未建"elif XZ in J and CG in fJ:if GHYP == 1:return "城规为非建设用地,现状为建设用地,已批已建"else:return "城规为非建设用地,现状为建设用地,未批已建"elif XZ in J and CG in J:return "城规与现状均为建设用地"else:return "城规与现状均为非建设用地"

4.字符串操作

4.1地块编号

如按镇区首字母大写加5位数字:HP00001,后面的ID可以用自动生成的ObjectID或者重新生成一个

ID=0
def newID():global IDID+=1return IDnewID()

接下来是字符串的对齐操作,左对齐5位,补充0,再添加打头字母即可。

'HP'+'{:0>5}'.format('ID')

5.ArcGIS中python的中文支持问题

查了不少地方,最终解决方案为中文字符串后加 .decode('utf-8'),如:

'建设用地区'.decode('utf-8')

补充点题外的:忽然发现字段查询器那里SQL语句,可以使用例如 CGYDDM NOT IN ( '' , 'E1' , 'E2' , 'FZBYD', 'H2' ) 的方式完成多个条件的简化,看来SQL语法还是要单独去学学。

未完待续

ArcGIS使用字段计算器python脚本整理三规合一图斑相关推荐

  1. arcgis中字段计算器使用python-ArcGIS使用字段计算器python脚本整理三规合一图斑

    最近试着使用字段计算器内的python脚本整理图斑,蹒跚学步,做下记录. 1.城规用地代码CGYDDM转用地名称CGYDMC 做一个python字典再索引即可(码齐这些分类还挺累..) list = ...

  2. arcgis python字段计算器_ArcGIS 字段计算器 Python 坑

    最近要处理个简单数据,一个字段中为文本类型,包含各种描述.要求是包含平方米的数值提取出来,变成数值,如果包含多个,则把各个值累加起来. 比如 字段值为 "非法占用100平方米" 处 ...

  3. 基于Arcgis的字段计算器数列式递进计算方法

    在Excel表格里面,我们可以对单元格的拖拽填充,来进行对其他单元格有规律的赋值.如下图. 而在Arcgis中,当对要素属性表格进行如上操作时,则需要利用到字段计算器的功能. 首先我们需要勾选字段计算 ...

  4. ArcGIS之字段计算器

    FieldCalculator Python 本次技巧在ArcGIS字段计算器模式下进行,可快速实现字段数值处理,记录下来作为笔记以备以后查用方便,同时作为技术交流与大家分享,互相学习. 标题  01 ...

  5. ArcGIS使用python进行三规合一用地调整

    1.流程图 2.在多个相关要素union叠加后的图层字段进行python分类计算. if-elif-else一条道走到黑的python代码(未优化,感觉可重用代码比较多,等OOP拯救) SGHY( ! ...

  6. Arcgis用字段计算器计算只出一部分值另外一部分为null

    文章目录 1.问题描述 2.解决方法 step1 把数据导入mdb(Personal Geodatabase)中 step2 再把数据导入到工作空间中进行计算 1.问题描述   下图中,我想利用字段计 ...

  7. python24点计算器_24点计算器Python脚本

    使用Python脚本枚举24点答案,去除冗余括号,效率没有Ruby版本的好,可能因精度的关系,和其它人些的答案数目不一致,记录之. # -*- coding:gbk -*- import iterto ...

  8. 24点计算器Python脚本

    使用Python脚本枚举24点答案,去除冗余括号,效率没有Ruby版本的好,可能因精度的关系,和其它人些的答案数目不一致,记录之. # -*- coding:gbk -*-import itertoo ...

  9. arcgis字段计算器VB脚本提取字符串

    从左往右提取 left(字段名称,提取长度) Left( [地貌类型区],5) 从右往左提取 right(字段名称,提取长度) Right( [地理位置_1],3)

最新文章

  1. 史上最全《知识图谱》2020综述论文!!!
  2. sphinx索引文件进一步说明——最好是结合lucene一起看,直觉告诉我二者本质无异...
  3. htmlparser新建tag类(以iframe标签为例)
  4. html5录像功能限制时间,HTML5拍照和摄像机功能实战详解
  5. 【爬虫剑谱】二卷2章 实战篇-精美动漫图片爬取并保存
  6. Python取出SQL表单中的字段名
  7. LTE IDLE DRX和CDRX
  8. 虚拟机web服务器安装与配置,实验Web服务器的安装与配置.doc
  9. python计算圆周率_用python程序求圆周率到任意位
  10. 中国大学MOOC-陈越、何钦铭-数据结构-2020春期中考试
  11. 【HDOJ】4210 Su-domino-ku
  12. matplotlib画布中属性设置常用函数及其说明
  13. 天猫商品详情接口,天猫商品优惠券接口,天猫api接口,天猫价格监控接口,天猫比价接口,品牌维权接口,天猫销量api接口,接口代码可对接数据分析业务,品牌维权,比价业务,行业分析业务接口代码分享
  14. mybatis-plus字典回写工具包
  15. Android中Manifest.xml配置文件
  16. jvm- STW的疑惑
  17. 一款超级给力的弱网测试神器—Qnet(附视频)
  18. 滇西应用技术大学有没有计算机专业,科普滇西应用技术大学在哪以及滇西应用技术大学有哪些好专业...
  19. c语言二级考试程序设计题难吗,计算机二级C语言考试程序设计题
  20. 数据结构和算法——基于Java——1.数组

热门文章

  1. win7internet信息服务器安装,Win7如何安装启用Internet信息服务(IIS)管理器
  2. 如何使用SPSS按行显示和按列显示的摘要报告
  3. 分布式定时任务调度实战
  4. java class文件反编译 去掉无用注释
  5. poi动态合并内容相同的单元格
  6. Kali之MSF的MS08-067漏洞复现详解
  7. AD GPO应用实例
  8. 游戏跨服架构进化之路
  9. 32位和64位的区别
  10. VMWare Workstation 7.1 官方英文原版 + 有效密钥 + 汉化补丁