#1 Sat 15 November 2025 17:03
- leolou72
- Juste Inscrit !
- Date d'inscription: 13 Nov 2025
- Messages: 2
QGIS: .CSV via Python
Bonjour,
Je fais du géo-référencement de conduite d'eau potable et mon client utilise QGIS.
Mon client m'envoie des données sur un tableur qu'on se partage, de ce tableur, je sors un .csv.
Lorsque je fais mon géo-referencement mes points gps arrivent en .csv aussi.
L'idée est de fusionner mes points gps avec les données de mon client est ensuite de lui fournir un .shp.
Je me suis donc lancé dans la création d'un scripte python sur QGIS pour automatiser cela mais, étant novice, je me suis vite confronté à un problème ! Je n'arrive pas à ouvrir mes .csv dans QGIS.
Avec l'aide d'IA je suis arrivé ça :
Code:
Terrain_csv = QFileDialog.getOpenFileName(None, "Sélectionner le fichier TERRAIN .CSV ", "", "CSV Files (*.csv)") ## Demande le chemin d'accès Couche_terrain = QgsVectorLayer(Terrain_csv + "?delimiter=;", 'Nom_de_la_couche', 'delimitedtext')
Mais à chaque fois la couche n'est pas valide ...
Je vous remercie par avance.
Hors ligne
#2 Mon 17 November 2025 15:11
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1032
Re: QGIS: .CSV via Python
Quelle est la structure des fichiers CSV ? (première ligne généralement)
OGR2OGR (composant de GDAL, intégré avec QGis) fait cela en une seule ligne de commande :
Code:
ogr2ogr -f "ESRI Shapefile" sortie.shp input.csv -oo X_POSSIBLE_NAMES=longitude -oo Y_POSSIBLE_NAMES=latitude -a_srs EPSG:4326
Sinon, pour un script Python, j'aurais fait indépendament de QGis, via le Module GeoPandas. Exemple :
Code:
import geopandas as gpd
import pandas as pd
from shapely.geometry import Point
# 1. Lire le CSV avec pandas
df = pd.read_csv("ton_fichier.csv")
# 2. Créer une colonne 'geometry' avec des objets Point (ex: longitude, latitude)
geometry = [Point(xy) for xy in zip(df["longitude"], df["latitude"])]
# 3. Créer un GeoDataFrame
gdf = gpd.GeoDataFrame(df, geometry=geometry, crs="EPSG:4326") # WGS84
# 4. Exporter en Shapefile
gdf.to_file("sortie.shp", driver="ESRI Shapefile")Sylvain M.
Hors ligne
#3 Mon 24 November 2025 22:36
- leolou72
- Juste Inscrit !
- Date d'inscription: 13 Nov 2025
- Messages: 2
Re: QGIS: .CSV via Python
Bonjour,
Ravi d'avoir eu de l'aide d'un voisin Mayennais !
Je te fais ce retour assez tardivement, je fais ce petit truc sur mon temps libre et j'ai mis du temps à le mettre en œuvre.
En effet beaucoup plus simple, je mettais mis en tête d'ouvrir les deux csv dans qgis ( Sauf qu'il y en a un des deux qui n'a pas de coordonnées ... ) avant de les joindre, alors qu'il est plus simple de jointer les deux avant et de transformer le résultat en .shp ensuite !
Pour répondre à tes questions mon .csv "Terrain" qui sont donc mes coordonnées gps du terrain se structure de la manière suivante :
TOPO_MAT;X;Y;Z
L_002;Coordonnées X;Coordonées Y;Coordonnées Z
L_002 étant le nom du "chantier"
Et le .csv de mon client :
Matricule;Date;Profondeur;Diamètre;Matériaux;Date_Levé
L_002;19/05/2025;80;100;PVC;25/05/2025
J'ai utilisé ton script avec le module Pandas car j'ai vu que je pouvais l'utiliser aussi pour faire ma jointure et pour créer un ID_commun (qui va mettre utile lorsqu'un chantier qui nécessite plusieurs points gps)
Cordialement,
Léo
Hors ligne
#4 Hier 15:48
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1032
Re: QGIS: .CSV via Python
J'ai utilisé ton script avec le module Pandas car j'ai vu que je pouvais l'utiliser aussi pour faire ma jointure et pour créer un ID_commun (qui va mettre utile lorsqu'un chantier qui nécessite plusieurs points gps)
Et du coup, ça a marché ? (j'ai un doute de savoir si tu attends encore de l'aide ou si c'est OK
)
Sylvain M.
Hors ligne


