arcgis字段计算器条件语句
ArcGIS字段计算器中的条件语句有如下格式:
if condition1:
    expression1
elif condition2:
    expression2
else:
    expression3
其中,condition为表达式,可以为以下几种类型:
- 字段名
- 字符串
- 数字
- NULL或None
以下是一些常见的条件语句及其解释:
- “fieldName” = 0:如果字段名为fieldName的值等于0,则执行后面的表达式。
- “fieldName” <> ‘value’:如果字段名为fieldName的值不等于‘value’,则执行后面的表达式。
- “fieldName” > 10 AND “fieldName” < 20:如果字段名为fieldName的值大于10且小于20,则执行后面的表达式。
- “fieldName” IS NULL:如果字段名为fieldName的值为NULL,则执行后面的表达式。
在expression中,可以使用各种算术、逻辑、字符串和日期函数等。例如:
- “fieldName” * 2:将字段名为fieldName的值乘以2。
-
‘Hello’ + “fieldName”:将字段名为fieldName的字符串值与‘Hello’字符串连接。
- dateDiff(‘d’, “dateField1”, “dateField2”):计算两个日期字段之间的天数差异。
需要注意的是,条件语句和表达式语句必须以冒号(:)结尾。另外,通常在执行条件语句之前,需要使用Python的两个函数进行转换,以确保ArcGIS能够正确地解释它们:
- Pre-logic Script Code(上文逻辑标签内的代码)
将Python函数和变量定义放在这个标记中。这个代码会在条件语句执行之前,被先执行。可以使用def语句定义函数,并使用import语句导入Python模块。
- Show Codeblock(打开代码块)
当你需要重复使用同样的上述前缀语句时,你就可以使用这样的代码块。这个标记内的Python代码,可以在整个字段计算器对话框中被多个条件语句和表达式语句共享。
例如下图中RED字段=None时修改为number=2,若RED值>=1时,number=1:
![image.png](attachment:image.png)
python
def setNumber(RED):
    if RED == None:
        return 2
字段字符串去重复
    elif RED >= 1:
        return 1
    else:
        return 0
后缀语句结尾不需要冒号。其中setNumber函数名可以自定义,RED为表格字段名。写入打开代码块的Pre-logic Script Code后,在number欄输入:
python
setNumber(!RED!)
就可以直接进行赋值计算。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。