Estoy tratando de usar la sintaxis de Python en la calculadora de campo de ArcGIS 10 y estoy completamente confundido. Hasta ahora, los cálculos más básicos me fallan, y no entiendo por qué. Estoy tratando de crear una función para simplemente establecer los valores de todas las celdas en una columna para ser un múltiplo del argumento que paso (quería probar algo simple para probarlo, ya que cualquier cosa más complicada que probé también falló )
Sin embargo, los mensajes de error me dicen que mi sintaxis es incorrecta:
Pero no puedo entender lo que es incorrecto.
Por otro lado, también me horroriza lo difícil que es escribir python legible en el cuadro de la calculadora de campo, ya que no hay resaltado de sintaxis o sangría clara. Sería más rápido y más fácil escribir un script externo de Python para hacer este cálculo, pero quiero tratar de descubrir cómo funciona esta nueva función dentro del programa.
code-block
; Solo quería una forma rápida de hacer un cálculo más complicado quea + b
def test(var1): return var1*2
. Ej. ), Luego copiar el bloque de código y hacer clic derecho en la ventana interactiva seleccionando "Ejecutar código de Python desde el portapapeles", luego probar / depurar la función con posibles valores paravar1
(p. Ej.,test(4)
debería devolver 8). Es un método puro de Python para desarrollar y probar el bloque de código antes de introducirlo en ArcGIS.Respuestas:
Puede ser porque está usando un nombre de campo donde debe ir un nombre de parámetro.
En cambio, intente algo como:
fuente
!field!
convención solo funciona dentro de la expresión, no en el bloque de código. También puede simplemente poner10
como expresión y dejar el bloque de código en blanco.!field!
bloque de código.Como Jason Scheirer comentó, ¡no puedes usar el campo! dentro de la lógica previa al script.
Pre Script Logic:
avg_miles =
Nota: Un "truco" que puede usar para simplificar este desastre ... Puede usar la ventana de Comando interactiva en ArcMap para crear y probar el código de Python (como definir métodos). Una vez que las cosas funcionen, puede hacer referencia a un método de Python creado en la ventana interactiva desde la ventana Calcular campo.
fuente