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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 17 May 2018 19:17

Sylther
Participant actif
Lieu: Mtp
Date d'inscription: 17 May 2016
Messages: 137

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 actif
Lieu: Mtp
Date d'inscription: 17 May 2016
Messages: 137

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: 3789

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 actif
Lieu: Mtp
Date d'inscription: 17 May 2016
Messages: 137

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: 3789

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