Mais

Erro “selecionar por atributo”, ao usar getParameter


Estou desenvolvendo uma ferramenta ArcGIS por Python. Abaixo está uma parte das entradas:

StudyArea = arcpy.GetParameterAsText (0) LandCover = arcpy.GetParameterAsText (1) gridcode = arcpy.GetParameterAsText (2)

gridcode é um campo da LandCover.

O gridcode visa derivar o campo que contém o código de classe de cobertura da terra.

Em seguida, tento selecionar alguns tipos de cobertura da terra (código de cobertura da terra <17 e = 21), e o código que escrevo é:

arcpy.SelectLayerByAttribute_management ("LC_test", "NEW_SELECTION", 'gridcode <17 ou gridcode = 21')

"LC_test" é a camada de feição do LandCover

O problema é: no arquivo de forma LandCover, se o campo do código da cobertura do solo também for denominado "código de grade", a ferramenta funcionará bem.

Se o nome do campo não for "gridcode", a ferramenta falha ao executar. O erro é "expressão inválida".

Alguém pode me ajudar com isso?


Você está usandocódigo de gradecomo texto em uma string, em vez de uma variável.

Tentar:

arcpy.SelectLayerByAttribute_management ("LC_test", "NEW_SELECTION", '"' gridcode + '" <17 ou "' + gridcode + '" = 21')

A sintaxe exata que você procura depende das fontes de dados e tipos de campo. Consulte a referência do ArcGIS SQL para expressões de consulta usadas na ajuda do ArcGIS.


Assista o vídeo: How to Create Attribute Queries in ArcGIS (Outubro 2021).