Kontrola wersji jest niezbędnym narzędziem do tworzenia oprogramowania, pozwalającym rzetelnie i czysto cofnąć się w czasie do czasu, gdy X wykonał swoją pracę dokładnie dokładnie, lub zobaczyć, co się zmieniło od tego czasu do teraz - zwykle używane, gdy próbuje się dowiedzieć, dlaczego X nie działa już poprawnie.
Jednak wszystkie narzędzia, o których wiem, działają tylko na zwykłych plikach tekstowych. Przyborniki (standardowe, nie przyborniki Pythona wprowadzone w 10.1), a tym samym ich modele, są binarne. Czy ktoś ma praktyczną metodę wprowadzenia wersji?
Uwaga: przechowywanie wersji różni się od tworzenia kopii zapasowych . Istnieje wiele prostych sposobów na tworzenie migawek plików do określonego Date / Time - Kopia zapasowa systemu Windows, wcześniejsze wersje , xcopy /s d:\foobar\ x:\foobar_%date%
, zip stuff_%date%.zip stuff\*
, i tak dalej.
Zastosowanie narzędzia takiego jak git , fossil , mercurial , subversion lub ... do pliku binarnego jest o jeden krok lepsze niż użycie xcopy lub zip w takim stopniu, w jakim można dodać komunikat zatwierdzenia, „Model foobar% date% teraz zastępuje poprzedni wyniki tylko wtedy, gdy Baz nie istnieje ” , ale nadal jest anemiczny w porównaniu z tym, co ten sam zestaw narzędzi może zastosować do plików tekstowych: np. pokaż mi dokładnie, co zostało zmienione między rokiem ubiegłym a dniem dzisiejszym .
źródło
Obecnie mam przepływ pracy ArcCatalog: otwieranie przybornika> wybieranie modelu> edycja> plik> eksport> do python , przejście do narzędzia SCM > odświeżanie zmian> zatwierdzanie zmian (wprowadź komentarz do dziennika) .
Jest to uciążliwe, więc nie robię tego zbyt często, przez co tracę wiele korzyści wynikających z wersjonowania.
źródło
ModelBuilder jest stary, niezgrabny i nie otrzymuje żadnych istotnych aktualizacji w ArcGIS Pro, jeśli ten tweet jest jakimkolwiek wskazaniem. Nigdy nie byłem wielkim fanem tego (choć niechętnie nadal go używam, kiedy muszę), więc możesz rozważyć tę odpowiedź jako pomijanie pytania i zalecenie, aby spojrzeć na alternatywy .
FME jest prawdopodobnie najbardziej oczywistą alternatywą ModelBuilder, ponieważ ma podobny interfejs użytkownika. Jedną istotną zaletą jest to, że jego dokumenty są w formacie zwykłego tekstu, więc mogą się różnić (chociaż często istnieje wiele bezsensownych, automatycznie generowanych cruftów, które musisz nauczyć się ignorować). Jest to jednak oprogramowanie komercyjne, więc dla niektórych jego koszt może być nieosiągalny.
Inne, z którymi jestem mniej zaznajomiony, to: Orfeo Toolbox , Whitebox Geospatial Analysis Tools oraz graficzny modeler QGIS (oparty na SEXTANTE ). Są to wszystkie środowiska modelowania open source z GUI.
Duży nacisk, jaki zaobserwowałem na GIS i konferencjach otwartych danych w ostatnich latach, dotyczy idei „odtwarzalnych badań”, to znaczy danych i procesów, które mogą być łatwo udostępniane i powielane przez innych. Często oznacza to korzystanie z otwartych formatów danych, oprogramowania typu open source i wspólnych repozytoriów. Python i R są do tego bardzo popularne.
Myślałem, że prezentacja Dharhasa Pothiny na temat Pythona i GIS na początku tego roku stanowiła dobry argument na ten temat. Zgadzam się dość mocno, że nadmierne poleganie na GUI jest szkodliwe dla odtwarzalności. Dzięki kodowi, o ile znasz język, możesz go szybko skanować i dowiedzieć się, co się dzieje, podczas gdy za pomocą GUI musisz klikać i przewijać wiele różnych okien, często zagnieżdżonych głęboko w sobie , aby uzyskać wartości i ustawienia.
Oczywiście istnieje tutaj kompromis, ale moim zdaniem każdy wykonujący jakąkolwiek poważną pracę (badania naukowe, tworzenie polityki itp.) Powinien korzystać z narzędzi, które ułatwiają odtwarzalność.
Przepraszam, że to nie odpowiada bezpośrednio na twoje pytanie (choć nie sądzę, że istnieje łatwa odpowiedź).
źródło
Wprowadzenie zestawów narzędzi Python w ArcGIS 10.1 for Desktop unieważnia czteroletnie stwierdzenie, że wszystkie :
Standardowe zestawy narzędzi są binarne, ale zestawy narzędzi Python (* .pyt) są plikami tekstowymi.
W związku z tym uważam, że przyborniki Python powinny być brane pod uwagę, jeśli kontrola wersji kodu źródłowego przewyższa wymagania dotyczące GUI budującego model.
Zdajesz sobie z tego sprawę z odpowiedzi na pytanie: Dlaczego uczyć się / korzystać z Python Toolbox nad Python Script Tools? ale pomyślałem, że powinienem dołączyć to jako odpowiedź, aby opcja korzystania z przyborników Pythona (w celu uzyskania łatwego dostępu do kontroli wersji) zamiast standardowych przyborników nie była pomijana przez przyszłych czytelników tego pytania i odpowiedzi.
źródło
Pod wieloma względami cieszę się, że ESRI nie przebudowało całego środowiska Geoprocessing Framework i Modelbuilder wraz z przejściem do ArcGIS Pro. Istnieje wiele organizacji (badawczych), które dużo zainwestowały w budowę gigantycznych modeli niestandardowych, które bez wątpienia wymagałyby pełnego remontu, gdyby ESRI nie działało.
Podobnie jak w przypadku przejścia do Python / Geoprocessing z tła makro Arc / Info AML, niewątpliwie oznaczałoby to ogromny wpływ i wielu ludzi zagubionych. Nawet jakieś 5–8 lat po pierwszym wydaniu ArcGIS nadal byli badacze i organizacje rządowe, od czasu do czasu odnoszące się do modeli AML na forach takich jak ten, których nie byli jeszcze w stanie przekonwertować na Python z powodu czasu, pieniędzy lub inne ograniczenia. To tylko ilustruje potencjalny wpływ takiego przejścia, które niewątpliwie byłoby ogromne.
Zgadzam się, że ModelBuilder może być czasem „niezręczny”, jeśli nie znasz go dobrze, ale ponieważ naprawdę zacząłem uczyć się języka Python i zacząłem rozumieć programowanie sprawdzania poprawności narzędzi ( http://resources.arcgis.com/en/help/main /10.2/index.html#//00150000000v000000 ), znaczna część „bólu” została uwolniona. Teraz lepiej rozumiem niektóre z „tajemniczych” komunikatów o błędach, które może wysunąć narzędzie do sprawdzania poprawności, i nie mogę się zdecydować, która część modelu jest uszkodzona, i teraz mogę skuteczniej je naprawić lub zapobiec, pisząc odpowiedni kod sprawdzania poprawności narzędzia . Jest to szczególnie cenne przy „integracji” przyborników / modeli innych niż Python ze skryptami Pythona.
Jedno życzenie wciąż mam, a to znacznie poprawiłoby życie z ModelBuilderłatwiejsze, jeśli automatyczne sprawdzanie poprawności narzędzi faktycznie podświetliło narzędzia i automatycznie otworzyło modele, które powodują ostrzeżenia lub błędy związane ze zmiennymi. Alternatywnie, co najmniej listy błędów i ostrzeżeń, które pojawiają się po kliknięciu „OK” na niewłaściwym modelu, powinny zawierać dokładną nazwę narzędzia i nazwę modelu, w którym znajduje się to narzędzie, które jest nieprawidłowe. Jeśli masz wiele zagnieżdżonych modeli, znalezienie narzędzia, które spowodowało konkretny błąd sprawdzania poprawności, może być czasem żmudne, z wykazem błędów, które nie zawierają nazwy narzędzia lub (pod) modelu, a jedynie nieprawidłową nazwę zmiennej. Właściwie nie wiem, dlaczego ESRI nie umieściło nazwy narzędzia i modelu na liście, wydaje się, że jest to łatwa naprawa tego problemu.
Przydałby się także rodzaj funkcji „Szukaj”, aby znaleźć narzędzia według nazwy zdefiniowanej w modelach.
źródło