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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sun 20 October 2024 11:40

20-100-LV
Participant occasionnel
Date d'inscription: 2 Mar 2022
Messages: 26

QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches

Bonjour,

Je suis confronté à un problème dans l'élaboration d'un modèle de traitement dont le but est d'extraire des géométries depuis des flux WFS et d'enregistrer les attributs des entités sélectionnées dans un tableur.

Le modèle fonctionne très bien mais si un des flux n'est pas opérationnel alors tout le modèle plante. J'aimerais donc avoir la possibilité de shunter un ou plusieurs flux qui ne seraient pas disponibles au moment de lancer le modèle.

J'ai donc créé une entrée de type énumération avec Oui et Non puis créé une branche conditionnelle sur la valeur 0 (Oui) pour lancer l'extraction. Cela fonctionne parfaitement. Si je choisis Non, l'extraction ne se lance pas.

Le problème c'est que je souhaite fusionner toutes les extractions dans un tableur or si j'ai choisi "Non" sur un des flux, cela bloque l'intégralité de la fusion car cet algorithme se trouve en fin de processing.
J'ai alors pensé à appeler une couche "vide" pour contourner le problème mais sans succès.

image du modèle en fichier joint.

Je voudrais savoir s'il est possible de paramétrer le choix d'entrée d'un algorithme en fonction d'une condition ?

J'ai testé d'utiliser une entrée de type "valeur pré calculée" comme ci-dessous mais sans succès :

CASE
WHEN  @utiliser_le_flux_communes_ =0 THEN 
'WFS:// pagingEnabled=\'true\' preferCoordinatesForWfsT11=\'false\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'BDTOPO_V3:commune\' url=\'https://data.geopf.fr/wfs/ows\' url=\'https://data.geopf.fr/wfs/ows?VERSION=2.0.0\' version=\'auto\''
WHEN @utiliser_le_flux_communes_ =1 THEN 'Z:\sig\_PROJET_ETAT_INITIAL\testOCTOBRE2024\polygoneVide.gpkg'
END


j'ai également essayé cette expression en choisissant une entrée de type valeur basée sur le flux et en paramétrant le filtrage des entités avec la même  expression mais sans succès non plus...

Quelqu'un aurait une idée pour contourner ce problème ?
Pour info, le modèle complet utilise une quarantaine de flux donc l'enjeu est important ^^

Merci pour vos conseils, éclairages ou solutions !

PS : j'ai lu le sujet ci-dessous mais aucune solution n'y est proposée.
https://georezo.net/forum/viewtopic.php?id=120334

Dernière modification par 20-100-LV (Sun 20 October 2024 11:42)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Mon 21 October 2024 14:13

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

Re: QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches

Bonjour,

Je vous laisse lire ce post et voir si la solution proposée vous convient : https://gis.stackexchange.com/questions … which-some

Et nous dire si oui.

Hors ligne

 

#3 Mon 21 October 2024 17:08

20-100-LV
Participant occasionnel
Date d'inscription: 2 Mar 2022
Messages: 26

Re: QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches

Bonjour,
Merci Gladal pour cette piste que je vais explorer la semaine prochaine.

Je ne manquerai pas de vous tenir au courant.

Hors ligne

 

#4 Tue 22 October 2024 14:59

20-100-LV
Participant occasionnel
Date d'inscription: 2 Mar 2022
Messages: 26

Re: QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches

Bonjour,
J'ai pris quelques minutes pour regarder la solution proposée et de ce que je comprends, il faudrait que je me fasse un CASE WHEN pour le nombre de possibilités totales que je peux rencontrer.
Sur le principe, pourquoi pas (j'ai testé avec 2 entrées uniquement et cela fonctionne parfaitement); mais le souci c'est que je dispose de plus de 40 entrées donc un nombre de possibilités énorme (2 puissance 40).
Le souci que je vais alors rencontrer c'est de générer automatiquement mon expression :

CASE
WHEN Boolean1 IS TRUE AND Boolean2 IS TRUE THEN array(@Output_from_Algorithm1, @Output_from_Algorithm2, @All_other_relevant_algorithms)
WHEN Boolean1 IS TRUE AND Boolean2 IS FALSE THEN array(@Output_from_Algorithm1,  @All_other_relevant_algorithms)
WHEN Boolean1 IS FALSE AND Boolean2 IS TRUE THEN array(@Output_from_Algorithm2, @All_other_relevant_algorithms)
ELSE array(@All_other_relevant_algorithms)
END

Dernière modification par 20-100-LV (Tue 22 October 2024 16:52)

Hors ligne

 

#5 Tue 22 October 2024 17:36

20-100-LV
Participant occasionnel
Date d'inscription: 2 Mar 2022
Messages: 26

Re: QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches

Un petit rafraîchissement du sujet.

Comme j'étais dérouté par la génération de beaucoup de combinaisons dans le "CASE WHEN", j'ai poursuivi mes tests sur la possibilité d'utiliser une entrée d'algorithme qui serait différente selon un booléen et je suis parvenu à un résultat positif du côté de l'expression "if".

L'expression suivante fonctionne parfaitement, elle permet de choisir entre la couche "coucheaAutiliser" et la couche "polygoneVide"

if(   @use_the_input_city_  =0 ,
'C:\\Users\\xxxxxx\\coucheAutiliser.gpkg','C:\\Users\\xxxxxxx\\polygoneVide.gpkg'
)


Je poursuivrai mes tests plus tard mais cela semble être une bonne piste.

Hors ligne

 

#6 Wed 23 October 2024 09:35

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

Re: QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches

Content que ça fonctionne. Redites nous si vous avez plus de détails suite à vos tests. Merci.

Hors ligne

 

Pied de page des forums

Powered by FluxBB