4 votos

¿Utilizar el operador IF con el analizador de Python de la calculadora de campos de ArcGIS?

Quiero asignar números a un determinado tipo de edificio y necesito utilizar la calculadora de campo. He probado muchas versiones diferentes y todavía no encuentro lo que está mal. ¿Podría decirme dónde me equivoco?

! Printscreen ] 1

0 votos

La columna obyv es un tipo corto... Probé con float (entre otros) pero no ayudó.

9 votos

Parece un guión para VB en lugar de Python, ¿quizás comprobar el parser para VB Script?

0 votos

Artwork 21 ha respondido a esto, pero sólo para tu información (y cordura) escribe tus expresiones de calculadora de campo en un editor de texto que soporte el resaltado de sintaxis de python. Notepad++ o similar. Disminuirá en gran medida la frustración - la calculadora de campo es una herramienta tan poco amigable.

7voto

Hameno Puntos 129

Tu sintaxis de python no es correcta, prueba:

def myFunc(typ, oby):
  if typ == 'D':
    return 'Z'
  else: return '25'

llamada a la función:

myFunc(!TYP!, !obyy!)

2voto

Dennkster Puntos 331

Aquí hay una declaración if/then que funciona en VBS.

Para su código, yo pensaría algo así:

Dim result
if [TYP] = "D" then
     result = "Z"
else result = "25"
end if

Y:

obyv = result

0voto

pat Puntos 86

Parece que has utilizado "=" en lugar de "==".

def countRows(rowcount): 
    import arcpy 
    if %rowcount% == 0: 
        return "false" 
    else: 
        return "true"

0 votos

No es necesario import arcpy y creo que hacerlo haría que esto funcionara muy lentamente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X