Estou tentando usar a sintaxe Python na calculadora de campo do ArcGIS 10 e estou completamente confuso. Até agora, os cálculos mais básicos estão falhando comigo, e eu não entendo o porquê. Estou tentando criar uma função para definir apenas os valores de todas as células em uma coluna para ser um múltiplo do argumento que passo (eu queria tentar algo simples para testá-lo, pois qualquer coisa mais complicada que eu tentei também falhou )
No entanto, as mensagens de erro estão dizendo que minha sintaxe está incorreta:
mas não consigo entender o que está incorreto.
Além disso, também estou horrorizado com a dificuldade de escrever python legível na caixa da calculadora de campo, pois não há realce de sintaxe ou recuo claro. Seria mais rápido e fácil escrever um script Python externo para fazer esse cálculo, mas quero tentar descobrir como essa nova função funcionou dentro do programa.
code-block
; Eu só queria uma maneira rápida de fazer um cálculo mais complicado do quea + b
def test(var1): return var1*2
), copiar o bloco de código e clicar com o botão direito do mouse na janela interativa escolhendo "Executar código python da área de transferência" e testar / depurar a função com valores possíveis paravar1
(por exemplo,test(4)
deve retornar 8). É um método Python puro de desenvolver e testar o bloco de código antes de introduzi-lo no ArcGIS.Respostas:
Pode ser porque você está usando um nome de campo para onde deve ir o nome de um parâmetro.
Em vez disso, tente algo como:
fonte
!field!
convenção funciona apenas dentro da expressão, não no bloco de código. Você também pode colocar10
como expressão e deixar o bloco de código em branco.!field!
no seu bloco de código.Como Jason Scheirer comentou, você não pode usar! Field! dentro da lógica pré-script.
Lógica pré-script:
avg_miles =
Nota: Um "truque" que você pode usar para simplificar essa bagunça ... Você pode usar a janela de comando interativa no ArcMap para criar e testar o código python (como definir métodos). Depois de fazer as coisas funcionarem, você pode fazer referência a um método python criado na janela interativa na janela Calcular campo.
fonte