Mam klasę funkcji z ponad 2000 cechami i muszę je wszystkie dostosować do poszczególnych klas na podstawie pola.
Czy jest na to sposób?
Mam klasę funkcji z ponad 2000 cechami i muszę je wszystkie dostosować do poszczególnych klas na podstawie pola.
Czy jest na to sposób?
Możesz użyć narzędzia Podziel według atrybutów:
Dzieli wejściowy zestaw danych według unikalnych atrybutów
Dostępne są wersje dla:
Split By Attributes
stale generuje pojedyncze.dbf
tabele, a nie poszczególne klasy obiektów. Jednak w ArcGIS Desktop 10.6 to samo narzędzie generuje poprawnie pojedyncze pliki kształtów . Nie rozumiem dlaczego i otrzymałem te same dane wyjściowe, próbując ustawić katalog roboczy na folder lub geobazę.Możesz to osiągnąć za pomocą bardzo prostego modelu, jeśli posiadasz ArcGIS 10.0 lub wyższy.
Utwórz model za pomocą Feature Iterator, w którym grupa według pola jest atrybutem, który chcesz wybrać, a następnie wyślij dane wyjściowe do narzędzia kopiowania funkcji za pomocą wbudowanego podstawienia, aby zapewnić unikalną nazwę pliku. Model pokazano poniżej:
źródło
Nie mam dostępu do ArcMap 10, tylko 9.3, ale spodziewam się, że nie będzie się tak bardzo różnił od tego.
Możesz utworzyć prosty skrypt w Pythonie, który sprawdza w polu atrybutu różne wartości, a następnie dla każdej z nich wykonuje operację WYBIERZ do oryginalnego pliku Shapefile.
Jeśli nie jesteś zaznajomiony ze skryptami w języku Python, wystarczy otworzyć IDLE (graficzny interfejs użytkownika w języku Python), utworzyć nowy plik i skopiować poniższy kod. Po dostosowaniu kodu do pliku my_shapefile, outputdir i my_attribute powinien działać.
źródło
Czy widziałeś tutaj zaktualizowane narzędzie Podziel warstwę według atrybutów dla ArcMap 10 ? Jeśli to nie działa, możesz użyć Split (Analiza) dla swoich potrzeb.
Przykładowy kod:
źródło
Split By Attribute
funkcjonalność, a twoja odpowiedź dotyczy głównieSplit [By Geometry]
.Użyłem skryptu @ AlexandreNeto i zaktualizowałem go dla użytkowników ArcGIS 10.x. Głównie teraz musisz zaimportować „arcpy” zamiast „arcgisscripting”:
źródło
Jest to jeszcze łatwiejszy sposób na zrobienie tego ... i jest wysyłany do GDB.
http://www.umesc.usgs.gov/management/dss/split_by_attribute_tool.html
pobierz narzędzie z USGS, zajęło mi 3 minuty robienie tego, co próbowałem przez 1 godzinę.
źródło
Wiem, że możesz używać iteratora w kreatorze modeli, ale jeśli wolisz używać Pythona, oto coś, co wymyśliłem. Dodaj skrypt do przybornika z parametrami w kolejności jako wejściowy plik shp, pola (wielowartościowe, uzyskane z danych wejściowych) i obszar roboczy. Ten skrypt podzieli plik shapefile na wiele plików shapefile na podstawie wybranych pól i wyśle je do wybranego folderu.
źródło
W końcu mam go współpracować z SearchCursor i Select_analysis
źródło
Nie znam narzędzi Iterate Feature Selection w ModelBuilder, ale eksportuję tylko to, ponieważ kod Pythona wskazuje, że można je wywoływać za pomocą arcpy.
źródło
Możesz użyć kursora wyszukiwania, aby przechodzić między poszczególnymi elementami w klasie elementów i zapisywać tylko geometrie w unikalnych klasach elementów. W tym przykładzie używam klasy obiektów USA i eksportuję stany do nowych plików kształtów:
źródło
cursor
operacji.Możesz użyć tokena geometrii (SHAPE @) w ramach funkcji kopiowania (zarządzanie danymi), aby wyeksportować każdą funkcję.
źródło
W Arcpy kursory honorują wybory warstwy / TableView. Zgodnie z Pobieraniem listy wybranych funkcji w ArcGIS na komputer za pomocą kodu Python?, możesz po prostu iterować wybrane funkcje.
Jeśli jednak chcesz dokonać wyboru za pomocą arcpy, użyj narzędzia SelectLayerByAttribute_management .
źródło