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 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 17 May 2018 19:17

Sylther
Participant assidu
Lieu: Mpl
Date d'inscription: 17 May 2016
Messages: 186
Site web

QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant

Bonjour,

Tout est dans le titre ou presque.
Je cherche à écrire un shapefile depuis un script indépendant.

Code:

from qgis.core import *
from qgis.PyQt.QtCore import QVariant
from qgis.utils import QGis


QgsApplication.setPrefixPath("/usr", True)
qgs = QgsApplication([], False)

qgs.initQgis()

fields = QgsFields()
fields.append(QgsField("ID_HYD", QVariant.Int))
fields.append(QgsField("SBD_KM2", QVariant.Double))


writer = QgsVectorFileWriter("/home/sylvain/test.shp", "UTF8", fields, QGis.WKBPoint, None, "ESRI Shapefile")

qgs.exitQgis()

Ici un bout de code simplifié à l'extrême extrait de la fonction d'enregistrement de mon script.
Mais ceci buggue :

Code:

/usr/bin/python3.5 /home/sylvain/test.py
Must construct a QGuiApplication first.

Process finished with exit code 1

Je suis preneur de tout information pour pouvoir écrire un shapefile sans créer une interface.
Merci pour tout aide, liens, etc.

Bonne soirée.
S.

Dernière modification par Sylther (Fri 18 May 2018 18:06)

Hors ligne

 

#2 Fri 18 May 2018 18:11

Sylther
Participant assidu
Lieu: Mpl
Date d'inscription: 17 May 2016
Messages: 186
Site web

Re: QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant

Je me réponds à moi-même smile

En fait il y des clowneries dans la doc de Qgis sur cet aspect (ou plutôt des éléments de l'API 2.x qui traînent dans la doc de la v.3)

Mon problème venait de la syntaxe pour l'instanciation d'un QgsVectorFileWriter.

La bonne syntaxe est dans mon cas :

Code:

writer = QgsVectorFileWriter("/home/sylvain/test.shp", "UTF8", fields, QgsWkbTypes.Point, QgsCoordinateReferenceSystem('EPSG:2154'),  "ESRI Shapefile")

++, S.

Hors ligne

 

#3 Fri 18 May 2018 18:39

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant

Bonjour

En fait il y des clowneries dans la doc de Qgis sur cet aspect (ou plutôt des éléments de l'API 2.x qui traînent dans la doc de la v.3)


Pour info, la documentation est assurée essentiellement par des bénévoles, très peu nombreux, ne maîtrisant pas tous les aspects de QGIS (sans compter que le changement v2->v3 est colossal) et tant que ce sera comme cela, attendez-vous à malheureusement y trouver des clowneries (et encore plus dans le livre de recettes PyQGIS qui requiert une certaine compétence par rapport au manuel utilisateur classique).
Cela dit, vous pouvez aussi utiliser la documentation de l'API PyQGIS accessible, pour la classe ici concernée, à https://qgis.org/pyqgis/3.0/core/Vector … riter.html

Hors ligne

 

#4 Mon 21 May 2018 11:35

Sylther
Participant assidu
Lieu: Mpl
Date d'inscription: 17 May 2016
Messages: 186
Site web

Re: QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant

Génial. Je ne connaissais pas ce lien, merci.
De mon côté, j'en étais resté à cela qui est nettement plus austère.

Pour les contributions, il y a aussi le github des exemples de code présents dans la documentation. C'est cette page ci qui m'a induit en erreur.. Je suis sur des corrections que je soumettrai.

Bonne journée.

Dernière modification par Sylther (Mon 21 May 2018 11:36)

Hors ligne

 

#5 Mon 21 May 2018 19:20

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant

Bonjour,

Sylther a écrit:

Génial. Je ne connaissais pas ce lien, merci.


Ca peut se comprendre, Il est officiellement tout neuf de ce week-end. big_smile

De mon côté, j'en étais resté à cela qui est nettement plus austère.


Le pendant c++ en fait

Pour les contributions, il y a aussi le github des exemples de code présents dans la documentation. C'est cette page ci qui m'a induit en erreur..


Vu la date de la dernière modif et les imports PyQt4, c'est que du 2.x

Je suis sur des corrections que je soumettrai.


Cool! Merci. Par contre, il n'y a pas à ma connaissance de lien entre ce dépôt et celui du code non à jour envoyé l'autre fois (https://github.com/qgis/QGIS-Documentation) donc si possibilité de soumettre correctifs des deux côtés, cool++

Hors ligne

 

Pied de page des forums

Powered by FluxBB