Stosujesz kontrolę wersji w modelach ArcGIS ModelBuilder?


16

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 .

Zrzut ekranu WinMerge

Odpowiedzi:


9

Każde oprogramowanie do kontroli wersji głównego nurtu, czy to centralna centralna kontrola wersji, jak SVN, czy rozwiązania rozproszone, takie jak Git, Mercurial, Bazaar itp., Umożliwiają przechowywanie plików binarnych. Wszystkie są dość skuteczne zarówno pod względem wydajności, jak i pod względem zajmowanej przestrzeni.

Sprawdzanie różnic między wersjami / wersjami pliku to oczywiście inna historia. Niewiele możesz zrobić, jeśli chcesz porównać modele ArcGIS, które w rzeczywistości są binarne. Nie znam żadnych narzędzi różnicowych do modeli, wątpię, by takie istniały, ponieważ większość ludzi nie potrzebuje tej konkretnej funkcjonalności.


Ale nadal będziesz w stanie wycofać i / lub odzyskać poprzednie wersje, prawda?
Chad Cooper

1
Cóż, tak, ale myślę, że pytanie jest bardziej zgodne z rzeczywistymi różnicami między modelami, jeśli dobrze je rozumiem.
Petr Krebs,

Zgadza się. Już umieszczam binarny plik .tbx w VC (używając mercurial), ale nie różni się to tak bardzo od pobierania tego samego pliku ze zwykłej kopii zapasowej.
matt wilkie

1
Atrybuty git pozwalają używać prostych programów do wersji niektórych plików binarnych - są już programy do metadanych .docx i image exif. Modele ArcGIS wymagałyby podobnego programu niestandardowego.
James Conkling

Dobry pomysł, @JamesConkling. Czy jacyś pracownicy Esri chcą się zgłosić?
nmpeterson

7

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.


1
akceptując odpowiedź na teraz, bo to właśnie robię. Z przyjemnością przerzucę się na lepszy, jeśli się pojawi!
matt wilkie

bez problemu matowy. w każdym razie nie możesz wygrać własnej nagrody
Poniżej radaru

@ poniżej jestem tego świadomy, po tym, jak rozwiązania nie zostały nagrodzone (i zaakceptowałem odpowiedź, zanim mimo to otworzyłem nagrodę)
Matt Wilkie

6

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ź).


3
Nie można zgodzić się więcej na temat koncepcji powtarzalnych badań. Dla mnie jest to najbardziej przekonujący powód, dla którego naukowcy powinni używać OSS.
djq

2
Nie mogłem się bardziej zgodzić co do tego, że silne poleganie na GUI często szkodzi odtwarzalności. Rub z kodem jest w „tak długo, jak znasz język” . Mały rozmiar tej bramy utrzymuje wielu inteligentnych i produktywnych ludzi na zewnątrz, w dziczy. Naprawdę sednem tego pytania jest poszukiwanie sposobu na poszerzenie tej bramy. To frustrujące, ponieważ Modeller prawie ma zarówno GUI, jak i kod. Masz rację, obumiera winorośl z braku uwagi. Niestety, mamy ludzi, którzy właśnie znajdują mojo w automatyzacji i skryptach, dzięki dostępności Modellera.
matt wilkie

4

Wprowadzenie zestawów narzędzi Python w ArcGIS 10.1 for Desktop unieważnia czteroletnie stwierdzenie, że wszystkie :

Przyborniki, a tym samym ich modele, są binarne.

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.


dziękuję za wyciągnięcie tego ważnego rozróżnienia. To niefortunne, że to samo słowo, przybornik, używane jest w przypadku tak naprawdę zupełnie innych stworzeń. Poprawię odpowiednio sformułowanie.
matt wilkie

1

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.


Marco dzięki za twój punkt widzenia i perspektywę! Nie jest to jednak tematem tutaj, gdzie celem jest (próba) znalezienia użytecznej kontroli wersji dla Model Builder. Przejdźmy do czatu: chat.stackexchange.com/rooms/939/gis
matt wilkie
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.