ArcGIS中用几行简单Python代码解决工作中字段计算问题
原创 小祝 GIS前沿 2021-08-26
因为文本赋值或者进行加减法赋值固定位数的时候比较困难,使用这个代码的话就可以在文本型字段下进行9位数的流水号赋值:
max = 121 #从某个号开始流水号
def LSH(XZ):
global max
XZ = XZ.strip()
if XZ == None or XZ == "":
max = max + 1
return str(max).zfill(9)
else:
return XZ
使用方法如下:
具体功能:对某个字段进行流水号赋值及其进行9位数的流水号赋值及确认某号开始流水,在农经权、房屋一体化及各类权证工作中及其有效!
做数据二级或多级分类的时候,一个一个的数据融合太过于苦恼,例如耕地(按照资源部给出的定义为:水田、旱地、水浇地),当我要对地类二级分类的时候,岂不是要对数据做五六次融合以及好多次数据筛选?
对于懒人来说,这怎么可以!
对于工作精英来说,这种小事浪费这么多时间,真是对自己能力的一种亵渎。
咳咳,回到正题。
基于这种考虑,我们做了这样几行代码,如下:
def a(b)
if b == u"旱地"
return "耕地"
elif b == u"水田"
return "耕地"
elif b == u"水浇地"
return "耕地"
else
return"非耕地"
这是更新过后的字段,这样再提取耕地数据就轻而易举了
关于这个的应用场景呢,主要是基于一个项目的需求,要求做把地类分为耕地与非耕地两种类型,我们先新建一个分类字段,设置为字符串类型(即文本型),再根据DLMC进行类型识别,如果是旱地、水田、水浇地就属于耕地,不是则属于非耕地;再根据属性字段提取矢量数据就可以得到耕地数据及非耕地数据。
- END -
赞 (0)