Arcgis如何使用三调数据统计土地三大类

您所在的位置:网站首页 土地图斑代码 Arcgis如何使用三调数据统计土地三大类

Arcgis如何使用三调数据统计土地三大类

2024-07-15 18:05| 来源: 网络整理| 查看: 265

目录 Arcgis如何使用三调数据统计土地三大类背景基础数据解决方法操作步骤

Arcgis如何使用三调数据统计土地三大类 背景

三调数据具有多种用途,国土空间规划需要以三调数据为基础来编制。按照我国《土地管理法》,土地按用途被分为三大类,即农用地、建设用地、未利用地。如何实现三调数据向三大类转换,是分析土地利用变化时不可或缺的一部分。

本文阐述如何用ARCGIS实现三调数据向三大类转换。

基础数据

基础数据为三调数据中的【DLTB】图层,

名称格式坐标系说明DLTBShapefile未知用于提取三大类数据 解决方法 使用【添加字段】工具,创建新字段用于存储三大类。使用【字段计算器】工具,设置计算条件,对字段赋值。 工具名称工具位置添加字段【属性表】→【表选项】→【添加字段】字段计算器【右键菜单】→【字段计算器】 操作步骤

1.新建分类字段 如图所示,打开DLTB图层属性表,添加文本型字段“三大类”。 添加字段“三大类” 2. 对字段进行赋值 右击三大类字段,打开【字段计算器】对话框,【解析程序】选择“Python",勾选【显示代码块】;本例按照《第三次全国土地调查工作分类与三大类对照表》中的三调分类与三大类对应规则进行分类,判断代码如下所示:

// 创建函数getClassify def getClassify(dlbm): nyd=['0101','0102','0103','0201','0202','0203','0204','0301','0302','0303','0304','0305','0306','0307','0401','0402','0403','1006','1103','1104','1107','1202','1203','1104A'] wlyd=['0404','1101','1102','1105','1106','1108','1110','1204','1205','1206','1207'] if dlbm in nyd: return "农用地" elif dlbm in wlyd: return "未利用地" else: return "建设用地"

复制全部代码粘贴至【预逻辑脚本代码窗口中】,然后引用该函数,引用方法为:设置【三大类=】“getClassify(!DLBM!)”,!DLBM!为原属性表的DLBM字段。 在这里插入图片描述 点击【确定】,得到赋值完成的“三大类”,赋值结果如下所示: 在这里插入图片描述

注: Python有着严格的代码缩进规则,请严格进行代码的复制粘贴,否则会发生错误,无法生成赋值结果。 请检查对应规则是否更新,如果更新,请参照新规则进行代码修改后再赋值。

以下为建设用地的代码,需要自取:

jsyd=['05H1','0501','0502','0503','0504','0505','0506','0507','0508','0601','0602','0603','0701','0702','08H1','08H2','08H2A','0809','0810','0901','0902','0903','0904','0905','0906','1001','1002','1003','1004','1005','1007','1008','1009','1109','1201','09','0810A','06H1']

2020/12/11 我对代码做了改进,可以直接将未归类的代码输出为“请查询:DLBM",避免了这部分代码直接返回到建设用地中,以下为改进后的代码:

def getClassify(dlbm): nyd=['0101','0102','0103','0201','0202','0203','0204','0301','0302','0303','0304','0305','0306','0307','0401','0402','0403','1006','1103','1104','1107','1202','1203','1104A'] wlyd=['0404','1101','1102','1105','1106','1108','1110','1204','1205','1206','1207'] jsyd=['05H1','0501','0502','0503','0504','0505','0506','0507','0508','0601','0602','0603','0701','0702','08H1','08H2','08H2A','0809','0810','0901','0902','0903','0904','0905','0906','1001','1002','1003','1004','1005','1007','1008','1009','1109','1201','09','0810A','06H1'] if dlbm in nyd: return "农用地" elif dlbm in wlyd: return "未利用地" elif dlbm in jsyd: return "建设用地" else: return "请查询:{0}".format(dlbm)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3