Chargement de plusieurs fichiers CSV dans QGIS 2.10


8

Comment puis-je charger plusieurs fichiers CSV dans QGIS avec Longitude / Latitude déjà inclus. J'ai téléchargé le plug-in "Load Them All", cependant, le résultat chargé a été converti en fichiers texte et ne peut pas être visualisé sur la carte. De l'aide? Existe-t-il des plug-ins disponibles qui peuvent charger plusieurs fichiers CSV qui fonctionneront correctement dans QGIS?


1
Vous pouvez demander cette fonctionnalité sur github.com/gacarrillor/loadthemall/issues Ouvrez simplement un nouveau numéro décrivant ce que vous aimeriez avoir. Ce serait bien de l'ajouter à Load Them All.
Germán Carrillo

En quoi les multiples fichiers csv sont-ils différents les uns des autres?
BillW

Réponses:


10

Vous pouvez utiliser le code suivant dans la console Python pour localiser vos fichiers csv dans un dossier spécifié et les charger en tant que fichiers de formes de points à l'aide de leurs champs de longitude / latitude. Le code suppose:

  • Le fichier csv est séparé par des virgules
  • Les noms des champs de longitude / latitude sont "x"et "y"respectivement
  • Le CRS des couches chargées sera en EPSG: 4326

Mais vous pouvez éditer ceci:

import glob, os

# Define path to  directory of your csv files
path_to_csv = "C:/Users/You/Desktop/csv folder/"  

# Set current directory to path of csv files
os.chdir(path_to_csv)  
# Find each .csv file and load them as vector layers
for fname in glob.glob("*.csv"):  
    uri = "file:///" + path_to_csv + fname + "?delimiter=%s&crs=epsg:4326&xField=%s&yField=%s" % (",", "x", "y")
    name = fname.replace('.csv', '')
    lyr = QgsVectorLayer(uri, name, 'delimitedtext')
    #QgsMapLayerRegistry.instance().addMapLayer(lyr)

Dans la nouvelle version de QGIS, la commande a QgsMapLayerRegistry.instance().addMapLayer(lyr)été actualisée. La solution est toujours valable si nous remplaçons l'ancienne ligne par: QgsProject.instance().addMapLayer(lyr) Vous devez également supprimer ou commenter la deuxième lignefrom qgis.core import QgsMapLayerRegistry

La solution fonctionne parfaitement.


1
Merci à tous vos commentaires ... cela fonctionne vraiment, sauf celui enregistré en tant que fichiers .csvt.
wgs84

@ wgs84 - Très bienvenu, heureux que cela ait fonctionné :)
Joseph

1

Vous pourriez avoir besoin de fichiers csvt le long de vos fichiers CSV pour indiquer à QGIS où il doit trouver la géométrie.

Le plugin peut utiliser Add Vector layeren arrière-plan, pas Add delimited textce qui fait une supposition éclairée sur les colonnes de géométrie.

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.