Suite

Erreur "select by attribute", lors de l'utilisation de getParameter

Erreur


Je développe un outil ArcGIS par Python. Ci-dessous une partie des entrées :

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

gridcode est un champ de LandCover.

gridcode vise à dériver le champ qui contient le code de classe d'occupation du sol.

Ensuite, j'essaie de sélectionner certains types d'occupation du sol (code d'occupation du sol < 17 et = 21), et le code que j'écris est :

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

"LC_test" est la couche d'entités de LandCover

Le problème est le suivant : dans le fichier de formes LandCover, si le champ du code LandCover est également nommé "gridcode", l'outil fonctionne correctement.

Si le nom du champ n'est pas "gridcode", l'outil ne s'exécute pas. L'erreur est "expression invalide".

Est-ce que quelqu'un peut m'aider avec ça?


Vous utilisezcode de grillesous forme de texte dans une chaîne, au lieu d'une variable.

Essayer:

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

La syntaxe exacte que vous recherchez dépend des sources de données et des types de champs. Consultez la référence ArcGIS SQL pour les expressions de requête utilisées dans l'aide d'ArcGIS.


Voir la vidéo: Learn Excel - Scrape Webpages Using Power Query - Podcast 2056