最近试着使用字段计算器内的python脚本整理图斑,蹒跚学步,做下记录。
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":"城市道路用地",
"S1":"城市轨道交通用地",
"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! )
遇到一个问题,索引不能用中文??留待解决
"发展备用地":"发展备用地"
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。
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 TG 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 == "国土已批":
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 "城规与现状均为非建设用地" 未完待续