Utwórz warstwę z wybranych operacji NIE tworzy warstwy DYNAMICZNEJ . Powstała warstwa wcale nie jest dynamiczna. Opiera się na FIDset.
Jeśli zmienisz dane źródłowe, FID zmienią się, a twoja warstwa wyboru pęknie.
W warstwie wyboru nie ma klauzuli where. Opiera się na FIDset (FID, które zostały wybrane, gdy użyto opcji „Utwórz warstwę z wybranych funkcji”).
Pamiętaj, że jeśli dodasz lub usuniesz rekordy z danych źródłowych, identyfikatory FID zmienią się, a twoja warstwa wyboru pokaże nieprawidłowe rekordy.
Mylisz warstwę wyboru z warstwą zapytania, która przechowuje klauzulę where i jest dynamiczna.
EDYCJA: Lista funkcji dla warstwy wyboru jest przechowywana w pamięci. Złą praktyką jest używanie warstw wyboru innych niż do pracy tymczasowej, ponieważ nie ma możliwości odzyskania oryginalnego wyboru po zerwaniu warstwy wyboru.
Aby znaleźć listę funkcji w warstwie wyboru, możesz użyć wielu różnych metod, w tym SearchCursor, aby zbudować listę identyfikatorów.
Coś takiego:
OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
for row in scur:
OIDlist.append(row[0])
Z komentarza crmackey :
Istnieje również wbudowany sposób opisywania, aby uzyskać FIDSet. To jest ciąg znaków, ale łatwo go przekonwertować na listę:
OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))