ArcGIS地类编码转地类名称

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


前言

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

一、土地利用数据下载

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

登录注册,可免费下载各省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属性表连接及字段计算器还有很多的操作空间。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值