在ArcMap中按村编小班号

在ArcMap中对数据计算字段
根据『村名』字段,同一个村的小班从1开始依次编号

『解析程序』选择『Python』
如果忘记选『Python』,默认按『VB脚本』运行下面代码会出错
『预逻辑脚本代码:』输入如下代码

a=[]    # 列表a用来存放字段值
def zx(b):
    a.append(b)    # 将字段值b追加到列表a
    return a.count(b)    # 统计字段值b在列表a中的数量

在下一个框中填写代码中定义的函数『zx(b)』,将函数参数『b』替换成『!村名!』
双击『字段:』框中的『村名』字段就可以得到『!村名!』

函数中的列表『a』在计算过程中会不断变大,如果数据量很大,计算到后面会很慢很卡
改进的方法是先按『村名』字段排序,再计算字段编号

在ArcMap中点开ArcToolbox,依次点击『数据管理工具』→『常规』→『排序』
『排序字段』选择『村名』字段,『排序方法』选择『ASCENDING』(升序)
排序好会生成一份新的数据,对这份数据计算字段编小班号
『预逻辑脚本代码:』输入如下代码

a=1
b=[]
def zx(c):
    global a,b    # 将a、b定义为全局变量
    if c not in b:
        b=[]    # 将列表b清空
        b.append(c)    # 将字段值c追加到列表b
        a=1
    else:
        a=a+1
    return a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值