Próbuję zrozumieć tworzenie geoprocesu za pomocą ModelBuilder, ale nie wiem, dlaczego podczas tworzenia geoprocesu za pomocą ModelBuilder ważne jest stosowanie warstw obiektów zamiast klas elementów. Czy ktoś może wyjaśnić dlaczego?
9
Odpowiedzi:
Modele mogą mieć wiele warstw wyjściowych podprocesu w zależności od ich wielkości i złożoności. Aby wyeliminować zapisywanie plików na dysku twardym, niektóre narzędzia zmuszają do korzystania z warstw obiektów (np. Iterate Feature Selection lub Select by Attribute ). Warstwy obiektów są tymczasowe i nie będą się utrzymywać po zakończeniu modelu.
Zobacz Tworzenie warstwy obiektów
źródło
Istnieje kilka powodów, dla których chcesz odwoływać się do warstw elementów w ModelBuilder, w przeciwieństwie do klas elementów. Po pierwsze, pomocne jest zrozumienie różnic.
Biorąc pod uwagę to tło, oto kilka powodów, dla których chcesz użyć narzędzia „Make Feature Layer” jako pośrednika między danymi surowymi a innymi narzędziami geoprzetwarzania.
Jeśli chcesz uruchomić Model z ArcCatalog lub wyeksportować swój model do skryptu Python, który można uruchomić poza ArcGIS, musisz użyć „Warstw funkcji”, aby przekonwertować surowe dane źródłowe na „Warstwy”. Byłoby to analogiczne do „dodawania danych” do sesji ArcMap.
Korzystanie z warstw ułatwia podzestaw danych podczas pracy w ModelBuilder. Powiedzmy, że chcesz przetwarzać wszystkie dane z atrybutem „A” za pomocą jednej metody, ale wszystkie dane z atrybutem „B” za pomocą innej metody. Możesz raz odwołać się do swoich surowych danych, a następnie podzielić je na dwie „gałęzie” za pomocą warstw funkcji i przetworzyć każdy zestaw niezależnie, ale wpływając na / aktualizując pojedynczy zestaw danych źródłowych.
źródło
Włączenie tymczasowych warstw do modeli skraca również czas przetwarzania. Z punktu widzenia przetwarzania jest znacznie wydajniejsze zapisywanie w pamięci niż zapisywanie na dysku. Podobnie możesz zapisać dane tymczasowe w obszarze roboczym in_memory , który jest również bardziej wydajny obliczeniowo.
Wiele operacji w ArcGIS wymaga tymczasowych warstw jako danych wejściowych. Na przykład Wybierz warstwę według lokalizacji (zarządzanie danymi) jest bardzo potężnym i poręcznym narzędziem, które pozwala wybierać cechy warstwy, które dzielą relacje przestrzenne z inną funkcją zaznaczania. Możesz określić złożone relacje, takie jak „HAVE_THEIR_CENTER_IN” lub „BOUNDARY_TOUCHES” itp.
Edytować:
Z ciekawości i aby rozwinąć różnice w przetwarzaniu przy użyciu warstw obiektów i przestrzeni roboczej in_memory, rozważ następujący test prędkości, w którym 39 000 punktów jest buforowanych 100 m:
Widzimy, że metody 2 i 3 są równoważne i około 3 razy szybsze niż metoda 1. Pokazuje to siłę użycia warstw cech jako pośrednich kroków w większych przepływach pracy.
źródło
in_memory
obszarze roboczym to nadal dane (np. Klasy elementów i tabele) nadal zajmują (potencjalnie dużo) miejsca. Z drugiej strony Warstwy funkcji to widok danych, umożliwiający wybranie podzbioru danych i wykorzystanie ich w kolejnych procesach, a nie duplikowanie danych tylko w celu uzyskania ich podzbioru. Warstwy funkcji nie zajmują prawie wcale miejsca. Lubię myśleć o nich jako o „wskaźnikach z metadanymi”, np. Wskazują one pewne dane i opisują, jak je wyszukiwać / renderować.in-memory
obszar roboczy jest w zasadzie geobazą plików, która znajduje się w pamięci, jeśli chcesz o tym myśleć w ten sposób.