【问题标题】:python len() fieldcalculationpython len() 字段计算
【发布时间】:2021-04-27 20:16:42
【问题描述】:

我正在尝试在 Arcgis pro 中的字段计算中编写脚本。其他字段的值将汇总在一个新字段中。对于低于 60 米的值,该值应设置为 60。应汇总所有其他值。此外,型号名称应以大写字母书写。如果任何字段中都没有值,则应显示“无数据”。 不幸的是我找不到错误..

对此的任何帮助将不胜感激!

值(!Typ1!,!Typ2!,!Typ3!,!Shape_area!,!total!)

def value (Fieldvalue1, Fieldvalue2, Fieldvalue3, Fieldvalue4, Fieldvalue5):
    
       
        if len(Fieldvalue1) > 1:
            combine = str(Fieldvalue1) + "_" + Fieldvalue4
            return combine
    
        elif len(Fieldvalue2) > 1:
            combine = str(Fieldvalue2) + "_" + Fieldvalue4
            return combine
    
        elif len(Fieldvalue3) > 1:
            combine = str(Fieldvalue3) + "_" + Fieldvalue4
            return combine

        if Fieldvalue4 < 60:
            return "60"

        else:
            return "No data"


        Fieldvalue5 = Fieldvalue5.upper()

【问题讨论】:

  • 您遇到的错误是什么?另外,你在哪里调用value 函数?

标签: python field calculation arcpy


【解决方案1】:

在加法之前尝试将Fieldvalue4转换为str,或者在if比较表达式中转换为int(如果是str)。

【讨论】:

  • 我现在在 if 开头插入了 Fieldvalue4 = int(Fieldvalue4)。但是现在出现了这个错误消息: ERROR 000539: Traceback (most recent call last): File "", line 1, in File "", line 6, in comStr TypeError: must be str, not int 执行失败(CalculateField)。
【解决方案2】:

字段具有长度属性:

def value (Fieldvalue1, Fieldvalue2, Fieldvalue3, Fieldvalue4, Fieldvalue5):

   
    if Fieldvalue1.length > 1:
        combine = str(Fieldvalue1) + "_" + Fieldvalue4
        return combine

    elif Fieldvalue2.length > 1:
        combine = str(Fieldvalue2) + "_" + Fieldvalue4
        return combine

    elif Fieldvalue3.length > 1:
        combine = str(Fieldvalue3) + "_" + Fieldvalue4
        return combine

    if Fieldvalue4 < 60:
        return "60"

    else:
        return "No data"

    # Dead code here
    Fieldvalue5 = Fieldvalue5.upper()

【讨论】:

  • 必须在哪里插入代码(Fieldvalue5.upper())?
  • 嗯,这取决于您要实现的目标以及您正在实现的逻辑...如果在任何情况下都必须运行该指令,您可以将其作为函数的第一行移动
猜你喜欢
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2022-08-17
  • 2012-10-11
相关资源
最近更新 更多