Vairāk

Kļūda “select by attribute”, izmantojot getParameter


Es izstrādāju Python ArcGIS rīku. Zemāk ir daļa no ievadēm:

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

gridcode ir lauks no LandCover.

gridcode mērķis ir iegūt lauku, kurā ir zemes seguma klases kods.

Tad es mēģinu izvēlēties dažus zemes seguma veidus (zemes seguma kods <17 un = 21), un es rakstu kodu:

arcpy.SelectLayerByAttribute_management ("LC_test", "NEW_SELECTION", "režģa kods <17 vai gridcode = 21")

"LC_test" ir LandCover iezīmju slānis

Problēma ir tāda: ja LandCover shapefile failā Land Cover kods ir nosaukts arī "režģa kods", rīks darbojas labi.

Ja lauka nosaukums nav “režģa kods”, rīku neizdodas izpildīt. Kļūda ir "nederīga izteiksme".

Vai kāds man var palīdzēt šajā jautājumā?


Jūs izmantojatrežģa kodskā tekstu virknē, nevis mainīgo.

Izmēģiniet:

arcpy.SelectLayerByAttribute_management ("LC_test", "NEW_SELECTION", "" "režģa kods + '" <17 vai "' + + režģa kods + '" = 21')

Precīza sintakse, kuru jūs meklējat, ir atkarīga no datu avotiem un lauku veidiem. Skatiet ArcGIS SQL atsauci uz vaicājuma izteiksmēm, kas tiek izmantotas ArcGIS palīdzībā.


Skatīties video: 0206 Simplify: select by attribute (Septembris 2021).