Organizujesz projekty GIS? [Zamknięte]

27

Od dłuższego czasu walczę z uporządkowaniem plików projektu.

Jakie są Twoje wskazówki dotyczące organizacji zbiorów danych, obrazów, plików kształtów itp.?

relima
źródło
2
Zobacz także odpowiedzi na to [pytanie] [1]. [1]: gis.stackexchange.com/questions/2976/…
jonatr

Odpowiedzi:

36

Uwaga: ta rant będzie aktualizowana w miarę, jak idę

W żadnym wypadku nie jestem komputerem ani ArcGIS pro, ale oto co robię:

Pliki podstawowe / DBS

  • Są to pliki, które mają charakter „surowy” i stanowią podstawę wszystkich moich analiz
  • Te pliki, bazy danych i dane są przechowywane poza moim projectsfolderem i są przechowywane na moim serwerze internetowym, komputerze lokalnym i Dropbox. Zawsze mam do nich dostęp, a oni są bardzo zorganizowani, zdezorientowani i zagregowani. Spędzisz dużo czasu na ich organizowaniu.
  • Umieściłem je wszystkie w bazach danych, czy to w Arc, czy w PostGIS.
  • Do każdej tabeli dodaję 3 pola w samej tabeli lub metadane: DATE_OBTAINED, DATA_DATE, SOURCE_NOTES
  • Również pliki podstawowe mogą być zapytaniami wielu innych tabel. Na przykład tabela może agregować cały uzyskany ruch w jedną dużą kwerendę / tabelę.
  • Umieszczam tu również wszystkie inne dane, które przeszukuję Internet.
  • NIGDY NIE WYKORZYSTAM ANALIZY BEZPOŚREDNIEJ NA KAŻDYM PLIKACH W PLIKACH PODSTAWOWYCH

Pliki projektu

  • Wszystkie moje pliki projektów znajdują się w my_projectsfolderze. Zawiera wszystko związane z tym projektem jak w, jeśli skopiuję i wkleję ten folder gdzie indziej, będzie on zawierał wszystko.
  • Zwykle mam następującą strukturę:
    • mój projekt/
      • Administrator/
      • komunikacja/
      • raw_data /
      • analizowane_dane /
      • dane_wyjściowe /
      • from_client /
      • FINAŁ/
      • kod/
      • some_document_date_time.doc
      • CZYTAJ
  • Powoli przeprowadzam się do lokalnego GIT. (możesz go hostować lokalnie lub na własnym serwerze). Powodem, dla którego nie umieściłem go w GitHub jest to, że github ma limit 1,2 gb, co jest bezużyteczne do analizy GIS
  • W przypadku moich projektów zwykle replikuję wszystkie tabele GIS, których potrzebuję do mojej analizy, do nowej bazy danych db: project_whthing.
  • 9 razy na 10, pracuję tylko w plikach SHP i zapisać wszystkie moje GIS (obrazy, Excel, współrzędne, itp) na moim projects/my_project/raw_data, projects/my_projects/analyzed_datai projects/my_projects/output_data.
  • Kiedy projekt jest zakończony, umieszczam ostatnią przesłaną kopię my_projects/FINAL/date_submitted
  • W moim MXD zwykle zapisuję na nowym MXD my_proj_dec_22_11__13_20.mxdna przykład co 2 lub 3 godziny
  • W przypadku dokumentów, ilustracji i przeważnie dokumentów do edycji Ms Word, znajdują się one w folderze my_projects, takim jak RFP_TENDER_Dec_22_11__11_15.doci draft_ver5_Dec_31_11__12_30.doc. Znowu wszystkie moje ostateczne produkty znajdują się w folderze FINAL
  • W przypadku R, kodu Python i niektórych C # robi się to nieco trudne, ponieważ hostuję go poza projektem, ale z roboczą kopią do my_projects/codefolderu. Robię to, ponieważ większość kodu Pythona jest wielokrotnego użytku. Jeśli umieścisz cały swój kod Python poza projektami, zapomnisz o nich. Poza tym cały mój kod Pythona działa na github.
  • Dla mnie pliki projektu obejmują dowolne typy plików, w tym śledzenie czasu, komunikację (wszystkie moje wiadomości e-mail zapisuję jako pliki .msg), rejestruję całą naszą ustną komunikację w pliku słownym i umieszczam wszystkie te pliki mój_projekt / komunikacja
  • Z ArcGIS użyj modeli, LYR i „zapisz wybór jako nową warstwę shp”. Te narzędzia ułatwią przechowywanie plików w mniejszych formatach, ponowne wykorzystanie plików, a dzięki modelom będą mogli używać czegoś w innym miejscu.

Ostateczne wyjście

  • Każdy projekt po sfinalizowaniu zostaje skompresowany i umieszczony na zewnętrznym dysku twardym.
  • Wszystkie produkty końcowe są konwertowane na pliki z tabel i na pliki PDF ze wszystkich innych formatów.
  • Każdy projekt, który wykonuję, drukowany jest w celu wydrukowania kopii zapasowej

Dolna linia

  • Każda osoba korzysta z wielu różnych programów i narzędzi. Wiele osób, które znam, organizuje się przy użyciu Basecamp , Harvest lub innych narzędzi. Również ludzie mają różne nawyki pracy i tendencje do zaburzeń obsesyjno-kompulsyjnych. Mam dość obsesję na punkcie porządkowania rzeczy, może trochę bardziej niż innych. Opracuj system, który powoduje najmniej stresu, gwarantując konsekwentność jego stosowania i aktualizacji
  • Wykonaj kopię zapasową i replikuj wszystko
  • Nie pracuj bezpośrednio na swoich surowych / podstawowych danych
  • W swoich projektach zawsze używaj pliku repliki, ponieważ dane zmieniają się w czasie i nie chcesz się starać, aby je znaleźć base_layer_2006.shp.
  • każdy folder my_projects musi mieć plik tekstowy README, który edytujesz podczas realizacji projektów, aby podać podstawowe informacje, o których wiesz, że zapomnisz później, gdy będziesz odwiedzać projekt 2 lata później
dassouki
źródło
Bardzo dobrze. Zgaduję, że nie przejmujesz się tworzeniem duplikatów wszystkich swoich zbiorów danych (nieprzetworzonych, analizowanych) i zajmowanej przestrzeni.
dchaboya,
2
@dchaboya koszt miejsca na dysku jest stosunkowo niski w porównaniu do poziomu stresu, który oszczędzam. Nie wierzę też w usuwanie niczego.
dassouki
Ciekawe, dlaczego ograniczenie github jest znaczące. Czy używasz git do wszystkiego, także bez kodu? Zaczynam używać kontroli wersji do tych samych celów i próbuję nauczyć się dobrych praktyk.
djq
@dassouki, dlaczego tworzysz nowe wersje plików MXD podczas korzystania z git? Możesz także kontrolować wersję tych plików MXD.
Paul Hiemstra
@PaulHiemstra Głównie dlatego, że łatwiej mi otwierać wiele wersji jednocześnie.
dassouki
8

Nie powiedziałeś, że pracujesz tylko z oprogramowaniem Desktop GIS, więc podzielę się niektórymi moimi doświadczeniami z myślenia programistycznego. Zacznę od stwierdzenia, że ​​zgadzam się z tym, co mówi @dassouki. Myślę, że najważniejsze nie jest to, jak się organizujesz, ale że to robisz.

Ale przejdź do mojego przepływu pracy. W języku programowania (w moim przypadku R) podoba mi się to, że skrypt, w którym piszę, dokumentuje wszystkie kroki, które podejmuję. Jest to w przeciwieństwie do korzystania z ArcGIS, w którym myślę, że trudniej jest zobaczyć, jak użytkownik przeszedł od surowych danych wejściowych do tego, co można zobaczyć w pliku MXD. Oczywiście możesz prowadzić dziennik wszystkich kroków, które wykonujesz w GUI, ale myślę, że język programowania nadaje się znacznie lepiej do zapisywania dokładnego przepływu pracy. Może to być szczególnie ważne, gdy klient / przełożony pyta, jak coś zrobiłeś lub co dokładnie zrobiłeś, aby wytworzyć określony produkt.

W praktyce mam więc kilka ważnych folderów na dysku (pamiętaj, że jestem naukowcem):

  • Eksperymenty, tutaj przechowuję wszystkie eksperymenty, które przeprowadzam, np. Próbuję pewnej analizy określonego zbioru danych. Każdy eksperyment ma swój własny katalog. Przechowuję również tabele wyników i takie tutaj. Wszystkie moje skrypty R znajdują się w tym katalogu.
  • Zestawy danych, wszystkie moje nieprzetworzone zestawy danych są przechowywane oddzielnie od
  • narzędzia, mam osobny katalog, w którym przechowuję kod uogólniony do ponownego użycia w innym projekcie.
  • Dokumenty, moja praca obraca się wokół pisania prac naukowych. Dla każdego papieru mam osobny katalog, w którym przechowuję moje pliki lateksowe. Pliki te odczytują ilustracje i tabele z katalogu eksperymentów. Artykuł może zawierać kilka ilustracji.
  • oprogramowanie, w osobnym katalogu przechowuję oprogramowanie, głównie napisane przeze mnie pakiety R i kod Fortran, który kompiluję do uruchamiania modeli.

Niektóre główne pomysły, których używam:

  • Oddzielne (względnie) statyczne elementy dynamiczne: na przykład zapisywanie uogólnionych skryptów w innym miejscu niż w przypadku zapisywania krótkoterminowych projektów. Lub oddziel swoje surowe dane od analiz na nich.
  • Używaj oprogramowania do zarządzania wersjami tam, gdzie możesz. Lubię merkurial i git.
  • Zautomatyzuj swoje kopie zapasowe !!!! Nigdy nie myślisz o nich, kiedy robisz to ręcznie, a następnie dysk twardy ulega awarii. W Linuksie taka automatyzacja jest łatwa. Nie jestem pewien, jak to działa pod Windows / Mac.

Ogólnie lubię używać języka programowania, ponieważ w jednym skrypcie możesz przejść od nieprzetworzonych danych do powstałych obrazów / tabel. R jest całkiem dobrym kandydatem, ponieważ może łatwo odczytywać i zapisywać dane GIS i ma mnóstwo analiz, zarówno GIS, jak i statystyk.

Paul Hiemstra
źródło
1
+1 na temat automatyzacji tworzenia kopii zapasowych. Właśnie dlatego Simlinkuję moje foldery do
dropboxa
3
Czy Dropbox ma potrzebne miejsce do przechowywania? A co myślisz o oddaniu swojej cennej pracy w ręce firmy zewnętrznej?
Paul Hiemstra
3

Chciałbym tylko dodać do powyższej odpowiedzi - 2 rzeczy.

  1. Lubię mieć foldery w katalogu importowania surowych danych - foldery za każdym razem, gdy otrzymuję zestaw danych - tj. Z nazwa_klienta-2011dec23. W ten sposób mogę prześledzić, kiedy otrzymałem każdy kawałek danych wykorzystany w projekcie.

  2. Lubię też składanie dokumentacji projektu w podróży - mogę wtedy utworzyć tutaj dokument Word lub prosty plik TXT, w którym mogę zapisać to, co zrobiłem w projekcie, datę i kto o to poprosił. W ten sposób mogę wrócić i ukryć się, ktoś pyta, dlaczego coś zrobiłem. Może to zabrzmieć nużąco w przypadku małych próśb, ale w końcu może cię uratować.

dklassen
źródło
1
Z pewnością jest to materiał Project Management 101. Chociaż spora część czasu poświęcana na projekt może być poświęcona utrzymywaniu wszystkiego w zorganizowany i dobrze udokumentowany sposób, ostatecznie może to potencjalnie zaoszczędzić czas i zapobiec skróceniu oczekiwanej długości życia.
dchaboya