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é ?

#1 Thu 03 August 2023 12:15

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

QGIS/Modeleur graphique: Champs vectoriel

Bonjour à tous,

Après plusieurs recherches qui n'aboutissent pas, je viens demander de l'aide sur le forum pour comprendre pourquoi j'ai une erreur quand je lance un algorithme dans le modeleur graphique.
J'utilise le modeleur depuis peu, je ne suis donc pas très expérimenté, j'apprends "sur le tas" comme on dit.

Ce que je veux faire : réaliser un tampon dont la distance est fonction d'un champs d'une couche vectorielle.

Ce que je fais dans le modeleur : je définie une entrée "couche vecteur", puis je créé une entrée "champs vectoriel" pour cibler le champs qui m’intéresse.
Ensuite, j'utilise l'algorithme "Tampon" pour créer une couche avec pour distance un calcul basé sur le champs ciblé de ma couche vectorielle (formule : 1,2 * la valeur du champ). J'ai donc testé (valeur pré-calculée) :
1.2 * @champsvectoriel --> ne marche pas
1.2 * attribute(@couchevecteur, @champsvectoriel) --> ne marche pas

Peut-être que je n'utilise pas les bonnes expressions, mais je ne trouve justement nul part d'exemples de paramétrages du modeleur pour cette simple utilisation.

Je vous remercie.

PS : si vous connaissez un bon gros tuto qui me permettrait de trouver la réponse à ma question, et à d'autres futures du même type, je prends.

Hors ligne

 

#2 Thu 03 August 2023 12:18

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour à tous,

Après plusieurs recherches qui n'aboutissent pas, je viens demander de l'aide sur le forum pour comprendre pourquoi j'ai une erreur quand je lance un algorithme dans le modeleur graphique.
J'utilise le modeleur depuis peu, je ne suis donc pas très expérimenté, j'apprends "sur le tas" comme on dit.

Ce que je veux faire : réaliser un tampon dont la distance est fonction d'un champs d'une couche vectorielle.

Ce que je fais dans le modeleur : je définie une entrée "couche vecteur", puis je créé une entrée "champs vectoriel" pour cibler le champs qui m’intéresse.
Ensuite, j'utilise l'algorithme "Tampon" pour créer une couche avec pour distance un calcul basé sur le champs ciblé de ma couche vectorielle (formule : 1,2 * la valeur du champ). J'ai donc testé (valeur pré-calculée) :
1.2 * @champsvectoriel --> ne marche pas
1.2 * attribute(@couchevecteur, @champsvectoriel) --> ne marche pas

Peut-être que je n'utilise pas les bonnes expressions, mais je ne trouve justement nul part d'exemples de paramétrages du modeleur pour cette simple utilisation.

Je vous remercie.

PS : si vous connaissez un bon gros tuto qui me permettrait de trouver la réponse à ma question, et à d'autres futures du même type, je prends.

Hors ligne

 

#3 Thu 03 August 2023 14:29

LPlante
Participant occasionnel
Date d'inscription: 17 Nov 2021
Messages: 44

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour,

Est ce que tu peux créer dans un champ virtuel calculé (dans ton tableau attributaire) la distance du tampon?

Puis dans ton modeleur graphique, ta couche vecteur, ta couche vectorielle (le champs distance calculée) puis utiliser l'outil "distance tampon variable" en spécifiant pour le champ distance: l'entrée du modèle "ta_couche_vectorielle"

bon courage

Hors ligne

 

#4 Thu 03 August 2023 15:27

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour, et merci pour ta réponse.
L'algorithme "Distance tampon variable" ne fonctionne que pour des vecteurs lignes, pas pour des points ou des polygones, je ne peux donc pas l'utiliser.

Dernière modification par GDU42 (Thu 03 August 2023 15:36)

Hors ligne

 

#5 Thu 03 August 2023 16:02

LPlante
Participant occasionnel
Date d'inscription: 17 Nov 2021
Messages: 44

Re: QGIS/Modeleur graphique: Champs vectoriel

Curieux, c'est un message d'erreur qui te dis ca?
L'outil fonctionne avec tout type de géométrie de mon coté sur la 3.16.7

Hors ligne

 

#6 Thu 03 August 2023 16:14

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

Re: QGIS/Modeleur graphique: Champs vectoriel

J'utilise la version 3.28.9-FIRENZE.

Ci-dessous quand je veux tester l'algorithme sans passer par le modeleur (depuis la boîte Traitements) :
https://ibb.co/WWwqGRL

Je dois réaliser un tampon sur une couche de points (une dizaine), dont la largeur du tampon est définie dans un champ 'diametre' de ma couche.

Quand j'utilise l'algorithme TAMPON sans passer par le modeleur, en choisissant dans les options la couche d'entrée et le champ correspondant, ça fonctionne. Mais dans le modeleur, je ne sais pas reproduire la même chose.

Hors ligne

 

#7 Mon 07 August 2023 14:07

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1059

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour,
Le champ de valeur 'tampon' à utiliser se trouve dans une deuxième couche ou bien il n'y a qu'une couche en jeu dans votre traitement ?

Hors ligne

 

#8 Tue 29 August 2023 15:41

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour, il y a effectivement qu'une seule couche en jeu, celle que je met entrée de mon modeleur.
(désolé pour la réponse tardive, vacances ... ;-)

Hors ligne

 

#9 Tue 19 September 2023 09:20

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour,

Je me permet de relancer mon sujet, pour lequel je n'ai pas trouvé de solution... l'explication de mon problème en début de sujet.

Pour résumer : dans le modeleur, je veux utiliser le champs d'une couche vectorielle, que j'appelle en entrée, pour réaliser le calcul d'une distance tampon autour de cette même couche vectorielle.

Je vous remercie pour l'attention que vous porterez à résoudre mon problème.

Hors ligne

 

#10 Tue 19 September 2023 15:14

louloupzh18
Participant occasionnel
Lieu: Le Mans
Date d'inscription: 9 Apr 2015
Messages: 11

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour,

L'utilisation de commandes en python est-elle envisageable ? Personnellement j'aurai traité le problème comme cela de mon coté :

Code:

from qgis.core import QgsProject, QgsVectorLayer, QgsFeature, QgsField, QgsFields
from qgis.PyQt.QtCore import QVariant

# Obtenez la couche de points à partir du nom de la couche
points = QgsProject.instance().mapLayersByName('points')[0]

# Créez une nouvelle couche pour stocker les zones tampons
resultat = QgsVectorLayer("Polygon?crs=epsg:2154", "buffer_layer", "memory")

# Ajoutez la nouvelle couche au projet
QgsProject.instance().addMapLayer(resultat)

# Préparez la couche de buffer pour l'édition
resultat.startEditing()

# Ajoutez les champs nécessaires à la couche de buffer
fields = QgsFields()
fields.append(QgsField("id", QVariant.Int))
fields.append(QgsField("diametre", QVariant.Double))
resultat.dataProvider().addAttributes(fields)
resultat.updateFields()

# Parcourez chaque entité de la couche de points
for feature in points.getFeatures():
    diametre = feature['diametre']  # Assurez-vous que le champ s'appelle 'diametre'
    
    # Créez la géométrie tampon
    buffer_geom = feature.geometry().buffer(diametre, 20)
    
    # Ajoutez la géométrie tampon à la nouvelle couche
    buffer_feature = QgsFeature()
    buffer_feature.setGeometry(buffer_geom)
    buffer_feature.initAttributes(2)  # Initialisez deux attributs
    buffer_feature.setAttribute(0, feature.id())  # Définissez le premier attribut comme l'ID de l'entité
    buffer_feature.setAttribute(1, diametre)  # Définissez le deuxième attribut comme le diamètre
    resultat.dataProvider().addFeature(buffer_feature)

# Terminez l'édition et enregistrez les modifications
resultat.commitChanges()

A adapter bien sûr en fonction du besoin.

En espérant que cela aide,

louloupzh

Hors ligne

 

#11 Wed 20 September 2023 13:01

GDU42
Juste Inscrit !
Date d'inscription: 1 Aug 2023
Messages: 8

Re: QGIS/Modeleur graphique: Champs vectoriel

Bonjour Louloupzh, merci pour ton retour.

Je préfèrerais éviter l'utilisation du Python, que je ne maîtrise pas du tout. De plus, là je ne présente que la partie du protocole qui bug, la suite fonctionne bien dans le modeleur, donc ça ferait rajouter des lignes de Python supplémentaires.

C'est pourquoi je veux utiliser le modeleur. Je conserve néanmoins ton approche au cas où.

Dernière modification par GDU42 (Wed 20 September 2023 13:03)

Hors ligne

 

Pied de page des forums

Powered by FluxBB