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)

相关推荐