Besoin d'ajouter rapidement plusieurs couches de plusieurs dossiers au projet QGIS


12

J'ai téléchargé plusieurs fichiers Zip d'imagerie (le contenu de chacun est jp2, jpg, jpw, xml, htm et .dbf, .prj, .sbn, .sbx, .shp, .shx) et j'aimerais ajouter rapidement cette imagerie à mon projet de travail dans QGIS 2.6.1. J'essaie d'éviter d'avoir à naviguer et à ajouter chaque fichier séparément. Étant donné que chaque fichier se trouve dans un dossier différent, je n'ai pas pu trouver un moyen d'ajouter plusieurs fichiers à la fois.


Vous avez donc des fichiers zip dans vos dossiers ou vous avez déjà extrait le contenu des fichiers zip? J'élabore une réponse pour ce dernier cas. Je crains que le premier cas nécessite un peu de script (Python).
Germán Carrillo

J'ai déjà extrait du contenu.
reevesii

Réponses:


23

Ce dont vous avez besoin, c'est du plugin QGIS, chargez- les tous . Outre le chargement de fichiers à partir de plusieurs répertoires à la fois, vous pouvez:

  • Refléter la structure des répertoires dans la table des matières QGIS (au moyen de groupes de couches imbriqués).
  • Appliquez des filtres alphanumériques pour ne charger que des calques correspondant à votre filtre (pensez aux expressions régulières).
  • Charger uniquement certains types de géométrie ou de raster (par exemple, uniquement des vecteurs polygonaux ou des rasters multibandes).
  • Chargez uniquement certaines extensions de fichier (par exemple, uniquement les fichiers .shp).
  • Chargez uniquement les calques qui se trouvent à l'intérieur ou qui coupent un cadre de délimitation donné.

et plus. Jetez un œil à https://github.com/gacarrillor/loadthemall pour plus de détails.

entrez la description de l'image ici


@ Germán Carrillo Cela semble être le plugin parfait pour mes besoins, mais quand j'essaie de charger les fichiers, j'obtiens l'erreur: "Il n'y a pas de fichiers KML à charger depuis le répertoire de base avec ce filtre. Modifiez ces paramètres et réessayez". J'utilise QGIS 2.14.2, tous les filtres sont désactivés et la carte que j'ai sélectionnée contient deux cartes avec un fichier kml chacune (juste pour tester, j'ai un ensemble de données plus important à importer).
Hannes Ledegen

@HannesLedegen Avez-vous essayé avec le filtre "Intersections" au lieu de "Contient"? Si cela ne fonctionne pas, veuillez ouvrir un nouveau problème dans la page GitHub du projet, décrivant tout en détail.
Germán Carrillo

2

Au lieu d'utiliser un plugin, vous pouvez donner à la commande Ajouter une couche une liste de fichiers délimités par des points-virgules. Vous pouvez créer une telle liste de la manière suivante:

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

Cela vous donne un fichier nommé All.txt, qui contient les chemins d'accès à tous les fichiers avec une extension spécifique (vous pouvez utiliser un masque différent en fonction des fichiers que vous avez), où chaque fichier se trouve sur une nouvelle ligne.

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

Remplacez ensuite simplement tous les retours à la ligne à l' ;aide d'un éditeur de texte (comme Notepad ++ ) et collez le résultat dans la Add Vector Layer...boîte de dialogue.

Pour Notepad ++, vous devez remplacer le mode de remplacement par Extended et remplacer \r\npar ;. Vous obtiendrez un fichier qui ressemble à ceci:

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

0

Sous Linux, vous pouvez extraire une liste de .shpfichiers et la nourrir directement dans la boîte de dialogue "Importer un vecteur":

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

entrez la description de l'image ici

J'ai trouvé cela utile sous QGIS Docker , parce que pour une raison quelconque, le plugin "Load Them All" n'affichait pas sa boîte de dialogue.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.