Uzyskiwanie listy wybranych funkcji w ArcGIS na komputer przy użyciu kodu Python?


20

Mam pytanie dotyczące wyboru w ArcGIS na komputery. Zakładam, że mam jedną warstwę w ArcMap i wybrałem dwie z pięciu funkcji.

Czy można uzyskać listę wszystkich wybranych funkcji za pomocą Pythona?

Byłoby dobrze, gdyby istniał sposób na uzyskanie jednego specjalnego (lub wszystkich) atrybutów wybranych funkcji przechowywanych na liście, które można zapisać w pliku txt.

Czy można to zrobić w ArcGIS na komputery?

Odpowiedzi:


33

Za każdym razem, gdy masz zaznaczenie na warstwie, obiekt kursora zwróci tylko wybrane wiersze.

for row in arcpy.SearchCursor("name_of_layer_with_selection"):
    print row.field1, row.field2

6
Problem jednak polega na tym, że jeśli wszystkie funkcje zostaną zwrócone, nie wiadomo, czy wybrano WSZYSTKIE czy BRAK.
Matej

2
Czy dotyczy to również wybranych funkcji w klasie elementów?
Jio

13

funkcja Opisz również zwróci listę. Nie jestem pewien, czy jest to szybsze niż metoda kursora, ale uważam, że jest to przydatne narzędzie. Wynikowa lista to identyfikatory obiektu dla zestawu wyboru.

import arcpy

aa = arcpy.Describe("someFC")
ss = aa.FIDset
tt = ss.split("; ")
Print tt

[u'1363', u'1364', u'1365', u'1367', u'1369', u'1370']

Dobre rozwiązanie też! Niestety nie jestem w stanie ustawić dwukrotności zielonej pięty. To rozwiązanie uniezależnia skrypt od różnych wersji ArcGIS, ponieważ w ArcGIS 10.1 kursory są wywoływane w inny sposób niż w ArcGI 10.0 (ArcGIS 10.1 arcpy.da.SearchCursor, ArcGIS 10.0 arcpy.SearchCursor ...).
Sven

4
Oba typy kursorów są dostępne w 10.1. Nie musisz używać nowych kursorów arcpy.da.
blah238,

1
Ta odpowiedź umożliwia sprawdzenie pustego wyboru, co zapobiegnie przypadkowemu wywołaniu narzędzia w całej klasie obiektów, podczas gdy w rzeczywistości było to zero obiektów spełniających kryteria wyboru.
nickbrick

Świetna wskazówka @Sam Flarity, jest to miła (szybsza?) Alternatywa dla korzystania z arcpy.SearchCursor lub arcpy.da.SearchCursor
grego
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.