Czy w QGIS jest funkcja automatyczna do pakowania wszystkich plików w projekcie w celu przeniesienia?

35

W moim projekcie korzystam z wielu geodanych z różnych katalogów. Teraz chcę przekazać projekt QGIS koledze (np. Na płycie CD).

Czy możliwe jest automatyczne kopiowanie kształtów z różnych katalogów do jednego katalogu?

Hendrik Pehlke
źródło
1
Od 2016-02-05 wtyczka QConsolidate działa poprawnie z plikami kształtów, rastrami tif i (!) Zasięgami Arc. Jednak klasy obiektów geobazy danych (jako punkty) nie są kopiowane do folderu wyjściowego.
Stu Smith

Odpowiedzi:

44

Szukasz wtyczki QConsolidate , która działa bardzo dobrze. Przeniesie wszystko do jednego katalogu i przepisze plik projektu .QGS (plik XML), aby wskazał nowe lokalizacje źródłowe.


QConsolidate wciąż jest wymieniony jako eksperymentalny - musisz włączyć „Pokaż także eksperymentalne wtyczki” w oknie dialogowym ustawień.

Jednak - działa bardzo dobrze. Uwagi:

  • Musisz zapisać projekt, nad którym pracujesz, zanim spróbujesz skonsolidować go w innym miejscu;
  • Format wyjściowy to plik projektu (.QGS) wraz z folderem o nazwie „warstwy”, który (niespodzianka!) Zawiera warstwy;
  • QConsolidate konwertuje warstwy bazy danych na pliki shapefile i przepisuje plik projektu, aby odwoływał się do nowego pliku shapefile;
  • Chociaż często możesz chcieć udostępnić skonsolidowany projekt na dysku zewnętrznym / kciuka, najpierw zapisz go na lokalnym dysku twardym, ponieważ wiele wykonanych operacji zapisu naprawdę spowolni, jeśli spróbujesz skonsolidować bezpośrednio na wolnym nośniku.
Simbamangu
źródło
Dziękuję Ci bardzo. QConsolidate jest dokładnie tym, czego szukałem.
Hendrik Pehlke,
1
Po prostu szukałem odpowiedzi na ten sam problem. Wydaje mi się, że dzięki wtyczkom Qconsolidate i relocator temat można uznać za udzielony. ALE: Naprawdę mam nadzieję, że rozwój relokatora przyspieszy, ponieważ QConsolidate wydaje się być prawie martwy :( Ani jednego zatwierdzenia przez 2 lata na stronie github.
martin
20

Właśnie przetestowałem trzy wtyczki, które próbują zrobić to, o co prosisz w pliku projektu z wieloma formatami opartymi na plikach. Oto wyniki:

Testowane wtyczki to:

  • QConsolidate 0.2.1
  • QPackage 1.3
  • relokator 0.9

Testy przeprowadzono na 64-bitowym systemie QGIS 2.18.14 w systemie Windows 10

Wszystkie trzy wtyczki bez problemu obsługiwały pliki kształtów, przenosiły dane do katalogu docelowego i tworzyły projekt odwołujący się do lokalnych kopii zestawów danych.

QConsolidate

  • FileGDB: nie skopiowano ani nie przetłumaczono (utrata danych). Plik projektu nadal odwołuje się do warstwy
  • Spatialite: przetłumaczone na SHP
  • Geopackage: skopiowane bez tłumaczenia
  • GeoTiff: nienaruszone skopiowane

QPackage

  • FileGDB: przetłumaczono na SHP
  • Spatialite: przetłumaczone na SHP
  • Geopackage: przetłumaczono na SHP
  • GeoTiff: nienaruszone skopiowane

relokator

  • FileGDB: przetłumaczony na SHP, niepoprawna ścieżka w pliku projektu
  • Spatialite: przetłumaczony na SHP, niepoprawna ścieżka w pliku projektu
  • Geopackage: przetłumaczony na SHP, niepoprawna ścieżka w pliku projektu
  • GeoTiff: nienaruszone skopiowane

Z tych trzech QPackage wydaje się działać najlepiej. Połączenia z bazą danych i warstwy usług internetowych nie zostały przetestowane.

Andy Harfoot
źródło
Doskonała odpowiedź - myślałem o podobnej aktualizacji mojego i znalazłem to. Jakie masz doświadczenie z samego przepisanego pliku .QGS? Moje ostatnie doświadczenie z QConsolidate jakiś czas temu dawało zniekształcone katalogi danych i pliku QGS.
Simbamangu
Szczerze mówiąc, nie używam wtyczek, ale modyfikuję skrypty w kopii pliku QGS zgodnie z wymaganiami. Ta odpowiedź była oparta na testach dla klienta, które, jak sądzę, przyniosłyby szersze korzyści.
Andy Harfoot,
Użyłem QPackage i działa całkiem dobrze. Zrobię inną opcję, ale w tej chwili jestem zadowolony z tego rozwiązania ...
Paulo Martinho,
6

Nie znam sposobu w samym QGIS, ale plik projektu (.qgs) jest tylko plikiem tekstowym. Dlatego prymitywnym, ale skutecznym sposobem byłoby skopiowanie wszystkiego ręcznie do jednego katalogu, a następnie zmiana <datasource></datasource>znaczników w pliku .qgs za pomocą funkcji znajdź i zamień lub wyrażenia regularnego wskazującego nowy katalog.

Jeśli masz wiele różnych plików / katalogów, jedną z opcji byłoby zautomatyzowanie go w pythonie poprzez wyszukanie każdego znacznika w pliku .qgs, skopiowanie każdego powiązanego pliku o tej nazwie do katalogu, a następnie zastąpienie .qgs tag z nowym katalogiem.

Stev_k
źródło
4

Pojawiła się również nowa wtyczka relokatora . (w tej chwili oznaczone jako eksperymentalne). Daje możliwość zapisania wszystkich warstw z plikiem projektu w jednym katalogu lub nawet w pliku zip.

Bernd V.
źródło