Pages: 1
- Sujet précédent - QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches - Sujet suivant
#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)
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
Pages: 1
- Sujet précédent - QGIS/Modeleur graphique: Possibilite de choisir entre 2 couches - Sujet suivant