字段计算器和Python 3字符串重分类警告

问题描述 投票:2回答:1

我在ArcPro中抛出了python 3警告,其中指出:

警告002858:某些行在评估python表达式时由于错误而设置为NULL:文件“ string”,第3行,在重新分类中

我正在使用的代码如下:

UpOrDown_PerAcre = reclass(!GP2040Area!,!UpOrDownNum!)

代码块

def reclass(GP2040AREA, UpOrDownNum): if (UpOrDownNum != 0 or UpOrDownNum != 999): UpOrDown_PerAcre = GP2040AREA * UpOrDownNum return UpOrDown_PerAcre

我想做的是,对于UpOrDownNum中每个不为0或999的单元,在新列UpOrDown_PerAcre中输出单元GP2040ArEA和UpOrDownNum的倍数。

根据我的理解,第3行是“ UpOrDown_PerAcre = GP2040AREA * UpOrDownNum”,它表示输出是字符串?我确实将if语句归类为if (UpOrDownNum == int and UpOrDownNum != 0 or UpOrDownNum != 999):,因为UpOrDownNum中存在-are-空值,可能会抛出“字符串”警告,但从if语句中删除该值后,它是相同的。

我到底在哪里出错?

python arcgis
1个回答
0
投票

也许检查UpOrDownNum不为None(Python的null版本):

def reclass(GP2040AREA, UpOrDownNum):
    if (UpOrDownNum is not None and (UpOrDownNum != 0 or UpOrDownNum != 999)):
        UpOrDown_PerAcre = GP2040AREA * UpOrDownNum
        return UpOrDown_PerAcre
    else:
        return None # or 0 or -1 or whatever you want to signify the UpOrDown_PerAcre wasn't calculated
© www.soinside.com 2019 - 2024. All rights reserved.