【ArcGIS制图】&利用字段计算器编写脚本,对数据分类

大家是否记得之前,写过一篇关于使用python脚本对数据进行分类的例子,如果不清楚的话,可以查阅下面的链接。

https://blog.csdn.net/u010608964/article/details/89929059

在上面的例子中,需要对数据进行读取,然后利用更新游标对属性表遍历,按照我们的逻辑对数据进行分类,然后再更新分类字段。而今天我们使用的是ArcGIS Desktop的字段计算器,编写脚本来分类。那么,还是看一下下面的数据。其中,【BOU2_3M_ID】是我们用来分类的数据,【Class】字段则用于分类的结果。

【ArcGIS制图】&利用字段计算器编写脚本,对数据分类_第1张图片

按照1-2000为一个等级,2000-4000为一个等级,4000-6000为一个等级,大于6000为一个等级。那么我们来编写代码了。首先,打开字段计算器,如下图所示,勾选好【Python】、【Show Codeblock】,而下面的Pre-Logic Script Code则为我们的编写Python脚本的区域。这里写了一个函数,用于逻辑判断。不过需要特别注意的是,python非常讲究代码的缩进,所以大家可以事先在其他编辑器中调试后,运行成功,然后将代码粘贴过来。

【ArcGIS制图】&利用字段计算器编写脚本,对数据分类_第2张图片

编写好代码后,只需要在字段【Class】下面填上面的函数,选择需要分类的字段作为参数,建议点击上面的【Fields】下的字段。这样在【Class】下就完成对函数的引用。

最后,我们来看一下分类的结果。

【ArcGIS制图】&利用字段计算器编写脚本,对数据分类_第3张图片

好了,最后就贴一下在这实现过程中的代码了。当然了,这里是一个例子,小伙伴们可以按照自己的需要进行逻辑设计。

def MyClassFunction(BOU2_4M_ID):
    if BOU2_4M_ID== 1:
        return "A"
    elif BOU2_4M_ID > 1 and BOU2_4M_ID < 2000:
        return "B"
    elif BOU2_4M_ID >= 2000 and BOU2_4M_ID < 4000:
        return "C"
    elif BOU2_4M_ID >= 4000 and BOU2_4M_ID < 6000:
        return "D"
    elif BOU2_4M_ID >= 6000:
        return "E"
    else:
        return "NA"


                                更多内容,请微信扫二维码关注公众号,或者加入arcpy开发qq学习群:487352121

                                                                        

你可能感兴趣的:(arcpy,插件开发)