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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 jeu. 17 mai 2018 19:17

Sylther
Membre
Lieu: paris
Date d'inscription: 17 mai 2016
Messages: 25

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 (ven. 18 mai 2018 18:06)

Hors ligne

 

#2 ven. 18 mai 2018 18:11

Sylther
Membre
Lieu: paris
Date d'inscription: 17 mai 2016
Messages: 25

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 ven. 18 mai 2018 18:39

SANTANNA
Membre
Lieu: Angers
Date d'inscription: 18 janv. 2008
Messages: 1968

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 lun. 21 mai 2018 11:35

Sylther
Membre
Lieu: paris
Date d'inscription: 17 mai 2016
Messages: 25

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 (lun. 21 mai 2018 11:36)

Hors ligne

 

#5 lun. 21 mai 2018 19:20

SANTANNA
Membre
Lieu: Angers
Date d'inscription: 18 janv. 2008
Messages: 1968

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

Partagez  |