ArcGIS地类编码转地类名称

您所在的位置:网站首页 arcgis中如何显示名称 ArcGIS地类编码转地类名称

ArcGIS地类编码转地类名称

2023-11-08 19:33| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、土地利用数据下载二、地类编码转地类名称 1.属性表连接2.字段编辑器总结

前言

        地类编码是为识别土地利用类型和属性特征而设置的编码。在地理信息系统中常常会用到,本文仅作练习使用。

一、土地利用数据下载

全国土地利用类型遥感监测空间分布数据

登录注册,可免费下载各省1km数据。

二、地类编码转地类名称 1.属性表连接

提前设置地类编码表格:在excel中打入下方表格,并另存为csv格式或dBase(方便ArcGIS打开):

在【内容列表】中,右键单击土地利用栅格图层,点击【连接和关联】→【连接】,连接将基于字段选择“VALUE”,连接表选择提前设置好的地类编码表格,连接基础字段为DLBM。

2.字段编辑器

在【内容列表】中,右键单击土地利用数据图层,选择【打开属性表】,点击属性表左上角

 按钮,选择【添加字段】。添加长度为10的文本类型字段“DLMC”。

 在属性表中,右键单击“DLMC”标题,点击【字段计算器】,

 在【字段计算器】中,解析程序选择“Python”,勾选“显示代码块”,输入下方代码,DLBM=文本框下输入代码块中输入的函数flag(),输入光标移到括号中,点击字段列表中的“Value”;

依据地类编码写入地类名称,代码如下:

def flag(p):   if p == 11 : return '水田'   if p == 12 : return '旱地'   if p == 21 : return '有林地'   if p == 22 : return '灌木林'   if p == 23 : return '疏林地'   if p == 24 : return '其他林地'   if p == 31 : return '高覆盖草地'   if p == 32 : return '中覆盖度草地'   if p == 33 : return '低覆盖度草地'   if p == 41 : return '河渠'   if p == 42 : return '湖泊'   if p == 43 : return '水库坑塘'   if p == 44 : return '永久性冰川雪地'   if p == 45 : return '滩涂'   if p == 46 : return '滩地'   if p == 51 : return '城镇用地'   if p == 52 : return '农村居民点'   if p == 53 : return '其他建设用地'   if p == 61 : return '沙地'   if p == 62 : return '戈壁'   if p == 63 : return '盐碱地'   if p == 64 : return '沼泽地'   if p == 65 : return '裸土地'   if p == 66 : return '裸岩石质地'   if p == 67 : return '其它'   if p == 99 : return '海洋'

提示:输入参数p为整型字段,返回值输入文本型字段。

 在【内容列表】中,右键单击土地利用数据图层,选择【打开属性表】,点击属性表左上角

 按钮,选择【添加字段】。

添加长度为10的文本类型字段“DLBM”。

 在属性表中,右键单击“DLBM”标题,点击【字段计算器】,

 在【字段计算器】中,解析程序选择“Python”,勾选“显示代码块”,输入下方代码,DLBM=文本框下输入代码块中输入的函数flag(),输入光标移到括号中,点击字段列表中的“DLMC”;

依据地类名称写入地类编码,代码如下:

def flag(p):   if p == u'水田' : return 11   if p == u'旱地' : return 12   if p == u'有林地' : return 21   if p == u'灌木林' : return 22   if p == u'疏林地' : return 23   if p == u'其他林地' : return 24   if p == u'高覆盖草地' : return 31   if p == u'中覆盖度草地' : return 32   if p == u'低覆盖度草地' : return 33   if p == u'河渠' : return 41   if p == u'湖泊' : return 42   if p == u'水库坑塘' : return 43   if p == u'永久性冰川雪地' : return 44   if p == u'滩涂' : return 45   if p == u'滩地' : return 46   if p == u'城镇用地' : return 51   if p == u'农村居民点' : return 52   if p == u'其他建设用地' : return 53   if p == u'沙地' : return 61   if p == u'戈壁' : return 62   if p == u'盐碱地' : return 63   if p == u'沼泽地' : return 64   if p == u'裸土地' : return 65   if p == u'裸岩石质地' : return 66   if p == u'其它' : return 67   if p == u'海洋' : return 99

提示:输入参数p为文本型字段,返回值输入整型字段。地类名称文本前加u,以避免读取中文时乱码,另一方法为在地类名称文本后方加入.decode(’utf-8'),例如

def flag(p):   if p == '水田'.decode('utf-8') : return 11   if p == '旱地'.decode('utf-8') : return 12   if p == '有林地'.decode('utf-8') : return 21   if p == '灌木林'.decode('utf-8') : return 22   if p == '疏林地'.decode('utf-8') : return 23   if p == '其他林地'.decode('utf-8') : return 24   if p == '高覆盖草地'.decode('utf-8') : return 31   if p == '中覆盖度草地'.decode('utf-8') : return 32   if p == '低覆盖度草地'.decode('utf-8') : return 33   if p == '河渠'.decode('utf-8') : return 41   if p == '湖泊'.decode('utf-8') : return 42   if p == '水库坑塘'.decode('utf-8') : return 43   if p == '永久性冰川雪地'.decode('utf-8') : return 44   if p == '滩涂'.decode('utf-8') : return 45   if p == '滩地'.decode('utf-8') : return 46   if p == '城镇用地'.decode('utf-8') : return 51   if p == '农村居民点'.decode('utf-8') : return 52   if p == '其他建设用地'.decode('utf-8') : return 53   if p == '沙地'.decode('utf-8') : return 61   if p == '戈壁'.decode('utf-8') : return 62   if p == '盐碱地'.decode('utf-8') : return 63   if p == '沼泽地'.decode('utf-8') : return 64   if p == '裸土地'.decode('utf-8') : return 65   if p == '裸岩石质地'.decode('utf-8') : return 66   if p == '其它'.decode('utf-8') : return 67   if p == '海洋'.decode('utf-8') : return 99

总结

以上就是今天要讲的内容,本文仅仅简单介绍了ArcGIS属性表连接及字段计算器的使用,而ArcGIS属性表连接及字段计算器还有很多的操作空间。



【本文地址】


今日新闻


推荐新闻


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