Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2026

Jusqu'au 08 décembre 2025, participez à la sélection des conférences !

#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

Léo a écrit:

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 wink )


Sylvain M.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo