Mer

Hvordan sletter du valgte rader ved hjelp av ArcPy?


Jeg vil slette alle radene i en funksjonsklasse, men forbli radene 1 til 5. På den annen side vil jeg være de første fem radene og slette andre. Jeg vet at jeg må bruke søkemarkøren og oppdatere markøren, men jeg kunne ikke bruke dem. Hvordan kan jeg slette radene ved hjelp av ArcPy?


Du kan bruke en Update Cursor til å slette rader basert på forholdene dine. I dette eksemplet slettes alle rader der OBJECTID> 5.

importer arcpy fc = r'C:  temp  test.gdb  tmp 'med arcpy.da.UpdateCursor (fc, "OBJECTID") som markør: for rad i markør: hvis rad [0]> 5: cursor.deleteRow ( )

Alternativt kan du bruke Select Layer By Attribute (Data Management).

importer arcpy, os fc = r'C:  temp  test.gdb  tmp 'outws = r'C:  temp  test.gdb' # Lag et lag fra funksjonsklassen arcpy.MakeFeatureLayer_management (fc, "fc_lyr") # Bruk et SQL-spørsmål til å velge OBJECTID 1 - 5 arcpy.SelectLayerByAttribute_management ("fc_lyr", "", "" OBJECTID "<= 5 ') # Skriv de valgte funksjonene til en ny funksjonsklasse arcpy.CopyFeatures_management (" fc_lyr ", os .path.join (outws, "fc_out"))


Se videoen: Insert Delete Python Arcmap (Oktober 2021).