Gibt es eine automatische Funktion in QGIS, um alle Dateien in einem Projekt für die Übertragbarkeit zu packen?

35

In meinem Projekt verwende ich viele Geodaten aus verschiedenen Verzeichnissen. Jetzt möchte ich das QGIS-Projekt einem Kollegen geben (zB auf einer CD).

Ist es möglich, die Formen aus verschiedenen Verzeichnissen automatisch in ein Verzeichnis zu kopieren?

Hendrik Pehlke
quelle
1
Ab dem 05.02.2016 funktioniert das QConsolidate-Plugin ordnungsgemäß mit Shapefiles, TIF-Rastern und (!) Arc-Coverages. File-Geodatabase-Feature-Classes (als Punkte) werden jedoch nicht in den Ausgabeordner kopiert.
Stu Smith

Antworten:

44

Sie suchen nach dem QConsolidate- Plugin, das sehr gut funktioniert. Es wird alles in ein einzelnes Verzeichnis übertragen und die QGS-Projektdatei (eine XML-Datei) neu geschrieben, um auf die neuen Quellspeicherorte zu verweisen.


QConsolidate wird weiterhin als experimentell aufgeführt - Sie müssen im Einstellungsdialog "Auch experimentelle Plugins anzeigen" aktivieren.

Es funktioniert jedoch sehr gut. Anmerkungen:

  • Sie müssen das Projekt, an dem Sie arbeiten, gespeichert haben, bevor Sie versuchen, es an einer anderen Stelle zu konsolidieren.
  • Das Ausgabeformat ist die Projektdatei (.QGS) zusammen mit einem Ordner namens "Ebenen", der (überraschend!) Die Ebenen enthält.
  • QConsolidate konvertiert Datenbankebenen in Shapefiles und schreibt die Projektdatei neu, um auf das neue Shapefile zu verweisen.
  • Während Sie das konsolidierte Projekt häufig auf einer externen Festplatte oder einem USB-Stick freigeben möchten, sollten Sie es zuerst auf einer lokalen Festplatte speichern, da die vielen Schreibvorgänge die Arbeit erheblich verlangsamen, wenn Sie versuchen, es direkt auf einem langsamen Datenträger zu konsolidieren.
Simbamangu
quelle
Vielen Dank. QConsolidate ist genau das, wonach ich gesucht habe.
Hendrik Pehlke,
1
Habe gerade nach einer Antwort für das gleiche Problem gesucht. Ich denke, mit den Qconsolidate- und Relocator-Plugins kann das Thema als beantwortet angesehen werden. ABER: Ich hoffe wirklich, dass die Entwicklung von Relocator sich beschleunigt, da QConsolidate fast tot zu sein scheint :( Kein einziges Commit in 2 Jahren auf der Github-Seite.
Martin
20

Ich habe gerade die drei Plug-ins getestet, die versuchen, Ihre Anforderungen an eine Projektdatei mit einer Reihe von dateibasierten Formaten zu erfüllen. Hier sind die Ergebnisse:

Getestete Plugins waren:

  • QKonsolidieren 0.2.1
  • QPackage 1.3
  • Umsetzer 0.9

Die Tests wurden unter QGIS 2.18.14 64bit unter Windows 10 ausgeführt

Alle drei Plugins haben Shapefiles problemlos verarbeitet, Daten in das Zielverzeichnis verschoben und ein Projekt erstellt, das auf die lokalen Kopien der Datasets verweist.

QKonsolidieren

  • FileGDB: nicht kopiert oder übersetzt (Datenverlust). Die Projektdatei verweist immer noch auf die Ebene
  • Spatialite: übersetzt in SHP
  • Geopaket: Ohne Übersetzung kopiert
  • GeoTiff: intakt kopiert

QPackage

  • FileGDB: übersetzt in SHP
  • Spatialite: übersetzt in SHP
  • Geopaket: übersetzt in SHP
  • GeoTiff: intakt kopiert

Umsiedler

  • FileGDB: In SHP übersetzt, falscher Pfad in der Projektdatei
  • Spatialite: In SHP übersetzt, falscher Pfad in der Projektdatei
  • Geopaket: In SHP übersetzt, falscher Pfad in der Projektdatei
  • GeoTiff: intakt kopiert

Von den dreien schien QPackage am besten zu funktionieren. Datenbankverbindungen und Webserviceschichten wurden nicht getestet.

Andy Harfoot
quelle
Hervorragende Antwort - dachte darüber nach, meine in ähnlicher Weise zu aktualisieren und fand dies. Welche Erfahrungen haben Sie mit der umgeschriebenen .QGS-Datei selbst? Meine letzte Erfahrung mit QConsolidate vor einiger Zeit bestand darin, fehlerhafte Verzeichnisse mit Daten und QGS-Dateien zu erstellen.
Simbamangu
Um ehrlich zu sein, ich verwende die Plugins nicht, sondern schreibe nach Bedarf Änderungen an einer Kopie der QGS-Datei. Diese Antwort basierte auf einigen Tests für einen Kunden, von denen ich dachte, dass sie einen größeren Nutzen haben würden.
Andy Harfoot
Ich habe QPackage benutzt und es funktioniert ziemlich gut. Ich werde andere Option, aber ich bin im Moment zufrieden mit dieser Lösung ...
Paulo Martinho
6

Ich kenne keinen Weg in QGIS selbst, aber die Projektdatei (.qgs) ist nur eine Textdatei. Ein primitiver, aber effektiver Weg wäre daher, alles manuell in ein Verzeichnis zu kopieren und dann die <datasource></datasource>Tags in der .qgs-Datei entweder mit Suchen und Ersetzen oder mit einem regulären Ausdruck zu ändern , um auf das neue Verzeichnis zu verweisen.

Wenn Sie viele verschiedene Dateien / Verzeichnisse haben, besteht eine Möglichkeit darin, diese in Python zu automatisieren, indem Sie nach jedem Tag in der .qgs-Datei suchen, jede zugehörige Datei mit diesem Namen in ein Verzeichnis kopieren und dann die .qgs-Datei ersetzen Tag mit dem neuen Verzeichnis.

Stev_k
quelle
4

Es gibt jetzt auch das neue Relocator Plugin . (momentan auch als experimentell markiert). Gibt Ihnen die Möglichkeit, alle Ebenen mit der Projektdatei in einem Verzeichnis oder sogar in einer Zip-Datei zu speichern.

Bernd V.
quelle