#1 Fri 08 June 2018 12:56
- dioptris
- Participant occasionnel
- Date d'inscription: 6 Jun 2018
- Messages: 18
QGIS / PyQgis: generer des points à partir d'une couche
Bonjour
je suis débutant en pyqgis et je rencontre des problèmes pour aboutir aux résultats que je veux.
j'ai une couche de point comportant 4 colonnes dont l'ID , les coordonnées (X,Y) et n le nombre de fois que je répéter mes point qui diffère pour chaque point .
et mon objectif est de créer des points superposables aux points de la première couche et en fonction du nombre n qui est rattacher aux points
-mon premier problème c'est que après lancement je vois qu’un point apparaitre
-comment faire intégrer le nombre n
# Specify the geometry type
layer = QgsVectorLayer('Point?crs=EPSG :2154', 'point' , 'memory')
# Set the provider to accept the data source
prov = layer.dataProvider()
crecp=iface.activeLayer()
iter=crecp.getFeatures()
for f in iter:
point = QgsPoint(f['X'],f['Y'])
# Add a new feature and assign the geometry
feat = QgsFeature()
feat.setGeometry(QgsGeometry.fromPoint(point))
prov.addFeatures([feat])
# Update extent of the layer
layer.updateExtents()
# Add the layer to the Layers panel
QgsMapLayerRegistry.instance().addMapLayers([layer])
Hors ligne
#2 Fri 08 June 2018 14:54
Re: QGIS / PyQgis: generer des points à partir d'une couche
Tu dois mettre la création du QgsFeature dans la boucle (sinon prov.addFeatures n'est appelé qu'une seule fois) et imbriquer une deuxième boucle pour intégrer le nombre n. Par exemple :
Code:
for f in iter: point = QgsPoint(f['X'],f['Y']) n = f['n_repete'] for i in range(n): # Add a new feature and assign the geometry feat = QgsFeature() feat.setGeometry(QgsGeometry.fromPoint(point)) prov.addFeatures([feat])
Hors ligne
#3 Fri 08 June 2018 16:02
- dioptris
- Participant occasionnel
- Date d'inscription: 6 Jun 2018
- Messages: 18
Re: QGIS / PyQgis: generer des points à partir d'une couche
merci gvellut j'ai essayé ca mais il m'affiche cette erreur :
line 10, in <module>
n = f['n_repete']
KeyError: 'n_repete'
Hors ligne
#4 Fri 08 June 2018 16:14
- dioptris
- Participant occasionnel
- Date d'inscription: 6 Jun 2018
- Messages: 18
Re: QGIS / PyQgis: generer des points à partir d'une couche
merci encore j'ai vu l'erreur le n_repete' n'est pas defini dans ma table attributaire.
Aussi JE VEUX
-intégrer la couche qui vient d’être créer comme un champ dans ma couche initiale.
-la table attribut n'est pas utilisable
Dernière modification par dioptris (Fri 08 June 2018 16:22)
Hors ligne