Potrzebujesz szybkiego dodawania wielu warstw z wielu folderów do projektu QGIS

12

Pobrałem kilka plików zip ze zdjęciami (zawartość każdego z nich to jp2, jpg, jpw, xml, htm i .dbf, .prj, .sbn, .sbx, .shp, .shx) i chciałbym szybko dodać te zdjęcia do mój projekt roboczy w QGIS 2.6.1. Staram się unikać konieczności nawigowania i dodawania każdego pliku osobno. Ponieważ każdy plik znajduje się w innym folderze, nie byłem w stanie znaleźć sposobu na dodanie wielu plików jednocześnie.

reevesii
źródło
Więc masz pliki zip w swoich folderach lub już rozpakowałeś zawartość plików zip? Opracowuję odpowiedź na ten drugi przypadek. Obawiam się, że poprzedni przypadek wymagałby nieco skryptów (Python).
Germán Carrillo
Już wyodrębniłem treść.
reevesii

Odpowiedzi:

24

Potrzebujesz wtyczki QGIS Load Them All . Oprócz ładowania plików z kilku katalogów na raz możesz:

  • Odzwierciedlaj strukturę katalogów w Spisie treści QGIS (za pomocą zagnieżdżonych grup warstw).
  • Zastosuj filtry alfanumeryczne, aby po prostu załadować warstwy pasujące do Twojego filtra (pomyśl o wyrażeniach regularnych).
  • Załaduj tylko określoną geometrię lub typ rastra (np. Tylko wektory wielokątów lub rastry wielopasmowe).
  • Załaduj tylko niektóre rozszerzenia plików (np. Tylko pliki .shp).
  • Załaduj tylko warstwy, które leżą w środku lub przecinają daną obwiednię.

i więcej. Więcej informacji znajdziesz na https://github.com/gacarrillor/loadthemall .

wprowadź opis zdjęcia tutaj

Germán Carrillo
źródło
@ Germán Carrillo To wydaje się być idealną wtyczką dla moich potrzeb, ale kiedy próbuję załadować pliki, pojawia się błąd: „Nie ma plików KML do załadowania z katalogu podstawowego z tym filtrem. Zmień te parametry i spróbuj ponownie”. Używam QGIS 2.14.2, wszystkie filtry są wyłączone, a wybrana mapa zawiera dwie mapy z jednym plikiem kml każdy (tylko do przetestowania, mam większy zestaw danych do zaimportowania).
Hannes Ledegen,
@HannesLedegen Czy próbowałeś z filtrem „Interesects” zamiast „Contains”? Jeśli to nie zadziała, otwórz nowy problem na stronie GitHub projektu, opisując wszystko szczegółowo.
Germán Carrillo
2

Alternatywą dla wtyczki jest dodanie polecenia Dodaj warstwę do listy plików rozdzielanych średnikami. Możesz utworzyć taką listę w następujący sposób:

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

Daje to plik o nazwie All.txt, który zawiera ścieżki do wszystkich plików z określonym rozszerzeniem (możesz użyć innej maski w zależności od posiadanych plików), gdzie każdy plik znajduje się w nowej linii.

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

Następnie po prostu zamień wszystkie ;znaki nowej linii za pomocą edytora tekstu (takiego jak Notepad ++ ) i wklej wynik w Add Vector Layer...oknie dialogowym.

Dla Notepad ++ trzeba zmienić tryb rozszerzony do zastąpienia i wymienić \r\nz ;. Otrzymasz plik, który wygląda następująco:

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
źródło
0

W systemie Linux możesz wyodrębnić listę .shpplików i podać ją bezpośrednio w oknie dialogowym „Importuj wektor”:

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

wprowadź opis zdjęcia tutaj

Uznałem to za przydatne w QGIS Docker , ponieważ z jakiegoś powodu wtyczka „Load Them All” nie wyświetlała swojego okna dialogowego.

RafDouglas
źródło