Pages: 1
- Sujet précédent - QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant - Sujet suivant
#1 Thu 17 May 2018 19:17
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
Re: QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant
Je me réponds à moi-même
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: 3947
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
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: 3947
Re: QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant
Bonjour,
Génial. Je ne connaissais pas ce lien, merci.
Ca peut se comprendre, Il est officiellement tout neuf de ce week-end.
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
Pages: 1
- Sujet précédent - QGIS 3.0.2: Écrire un shapefile depuis un script python indépendant - Sujet suivant