Sie müssen schnell mehrere Ebenen aus mehreren Ordnern zum QGIS-Projekt hinzufügen

12

Ich habe mehrere Zip-Dateien mit Bildern heruntergeladen (der Inhalt der Dateien ist jp2, jpg, jpw, xml, htm und .dbf, .prj, .sbn, .sbx, .shp, .shx) und möchte diese Bilder schnell hinzufügen mein Arbeitsprojekt in QGIS 2.6.1. Ich versuche zu vermeiden, zu jeder Datei einzeln navigieren und sie hinzufügen zu müssen. Da sich jede Datei in einem anderen Ordner befindet, konnte ich nicht mehrere Dateien gleichzeitig hinzufügen.

reevesii
quelle
Sie haben also ZIP-Dateien in Ihren Ordnern oder haben den Inhalt der ZIP-Dateien bereits extrahiert? Ich arbeite eine Antwort für den letzteren Fall aus. Ich fürchte, der erste Fall würde ein bisschen (Python) -Skripting erfordern.
Germán Carrillo
Ich habe bereits Inhalte extrahiert.
Reevesii

Antworten:

23

Was Sie brauchen, ist das QGIS-Plugin Alle laden . Sie können nicht nur Dateien aus mehreren Verzeichnissen gleichzeitig laden, sondern auch:

  • Reflektieren Sie die Verzeichnisstruktur im QGIS-Inhaltsverzeichnis (mittels verschachtelter Layergruppen).
  • Wenden Sie alphanumerische Filter an, damit Sie nur Ebenen laden, die Ihrem Filter entsprechen (denken Sie an reguläre Ausdrücke).
  • Laden Sie nur bestimmte Geometrien oder Rastertypen (z. B. nur Polygonvektoren oder Multiband-Raster).
  • Laden Sie nur bestimmte Dateierweiterungen (z. B. nur .shp-Dateien).
  • Laden Sie nur Ebenen, die innerhalb eines Begrenzungsrahmens liegen oder diesen überschneiden.

und mehr. Werfen Sie einen Blick auf https://github.com/gacarrillor/loadthemall für weitere Details.

Bildbeschreibung hier eingeben

Germán Carrillo
quelle
@ Germán Carrillo Es scheint das perfekte Plugin für meine Bedürfnisse zu sein, aber wenn ich versuche, die Dateien zu laden, erhalte ich die Fehlermeldung: "Mit diesem Filter können keine KML-Dateien aus dem Basisverzeichnis geladen werden. Ändern Sie diese Parameter und versuchen Sie es erneut." Ich verwende QGIS 2.14.2, alle Filter sind deaktiviert und die von mir ausgewählte Karte enthält zwei Karten mit jeweils einer kml-Datei (zum Testen muss ich einen größeren Datensatz importieren).
Hannes Ledegen
@HannesLedegen Hast du es mit dem 'Interesects'-Filter anstelle von' Contains 'versucht? Wenn das nicht funktioniert, öffnen Sie bitte eine neue Ausgabe auf der GitHub-Seite des Projekts und beschreiben Sie alles im Detail.
Germán Carrillo
2

Alternativ zur Verwendung eines Plugins können Sie dem Befehl Ebene hinzufügen eine durch Semikolon getrennte Liste von Dateien geben. Sie können eine solche Liste folgendermaßen erstellen:

cd /d <Path_to_the_directory_where_your_files_are>
dir *.shp /s /b >All.txt

Auf diese Weise erhalten Sie eine Datei mit dem Namen All.txt, die die Pfade zu allen Dateien mit einer bestimmten Erweiterung enthält (Sie können je nach den von Ihnen verwendeten Dateien eine andere Maske verwenden), wobei sich jede Datei in einer neuen Zeile befindet.

D:\Data\01\data01_1.shp
D:\Data\01\data01_2.shp
D:\Data\02\data02_1.shp
D:\Data\02\data02_2.shp

Ersetzen Sie dann einfach alle Zeilenumbrüche mit ;einem Texteditor (wie Notepad ++ ) und fügen Sie das Ergebnis in den Add Vector Layer...Dialog ein.

Für Notepad ++ müssen Sie den Modus auf Erweitert ersetzen ändern und ersetzen \r\nmit ;. Sie würden eine Datei erhalten, die so aussieht:

D:\Data\01\data01_1.shp;D:\Data\01\data01_2.shp;D:\Data\02\data02_1.shp;D:\Data\02\data02_2.shp
Alex
quelle
0

Unter Linux können Sie eine Liste von .shpDateien extrahieren und direkt in das Dialogfeld "Vektor importieren" einfügen:

#on the command line
ls /home/yourpath/*/*shp|tr "\n" '@'|sed 's/@/" "/g'|sed 's/^/"/g'

Bildbeschreibung hier eingeben

Ich fand dies unter QGIS Docker nützlich , da das Plugin "Alle laden" aus irgendeinem Grund seinen Dialog nicht zeigte.

RafDouglas
quelle