Mais

Usando Python para calculadora de campo?

Usando Python para calculadora de campo?


Tenho problemas com o Field Calculator, usando ArcGIS 10.2. Tentei escrever uma declaração, mas não sei o que está errado.

Eu tenho duas colunas:

O primeiro contém um código numérico. Cada código representa alguns dados de texto. Por exemplo: "1" significa "árvores, etc."

A segunda coluna (string) está vazia e deve conter dados de texto. Você poderia me ajudar com Python?


Seu código não está formatado corretamente: código Python:

  1. O recuo é importante em Python, pois define onde as funções e condições começam e terminam.
  2. Você precisa de um:após a definição da função
  3. O operador correto para comparação de igualdade é o==e não simplesmente=que atribui um valor a uma variável.

Além disso, com relação à calculadora de campo no ArcGIS, se você usar uma função para calcular seu valor, você também precisará marcar a caixa de seleção "Mostrar Codeblock".

No seu caso, você tem duas possibilidades:

  1. Sua instrução if / else é muito simples, então você pode reescrever em uma única linha do Python e não há necessidade de um bloco de código:

    "SampleText" if! Coded! == 1 mais "SampleText_2"
  2. Usando um bloco de código, com a caixa de seleção do bloco de código ativada, o bloco de código deve ser:

    def Text_d (Coded): se Coded == 1: return "SampleText" else: return "SampleText_2"

    e, em seguida, na caixa "Coded =" abaixo, você precisará escrever:

    Text_d (! Codificado!)

    Este segundo método oferece a possibilidade de usar muitas funcionalidades Python, como condições aninhadas:

    def Text_d (Coded): se Coded == 1: return "SampleText" elif Coded == 2: return "SampleText_2" else: return "SampleText_3"