7 - Boîte à outils de traitements

Branches conditionnelles

Dans le modeleur il est possible d'utiliser des outils de modélisation.

Nous allons voir comment compléter le résultat de l'exercice précédent en utilisant des branches conditionnelles, nous permettant de créer et d'utiliser ou non un index spatial sur la grille en fonction du choix de l'utilisateur, exprimé sous forme d'une case à cocher.

Modifier le modèle obtenu dans l'exercice précédent en passant par exemple par

Ajouter un booléen comme entrée

Remplir les propriétés comme indiqué 

Ajouter branche conditionnelle

Dans les propriétés ajouter une condition : Bouton d'ajout, puis bouton pour préciser l'expression.

Dans le nom de la branche tapez : Utilisez index spatial. Puis ajouter une 2ème branche qui s'appellera Ne pas utilisez index spatial avec comme condition NOT @indexspatial

Relions maintenant les deux branches aux algorithmes appropriés...

Ajouter l'algorithme Créer un index spatial.

et cliquer sur le bouton ... pour indiquer les dépendances :

Choisir la condition Utilisez index spatial

Ajouter un 2ème algorithme extraire par localisation et paramétrer le comme ci-dessous :

et préciser la dépendance

Modifier l'algorithme extraire par localisation existant auparavant :

Mettre à jour l'algorithme Compter les points dans les polygones pour qu'il utilise la bonne entrée en fonction de la variable @indexspatial.

Utiliser l'expression suivante :

if ( @indexspatial, @Extraire_par_localisation__avec_index_spatial__OUTPUT, @Extraire_par_localisation__pas_d_index_spatial__OUTPUT )

Préciser les dépendances :

Votre modèle doit maintenant ressembler à :

tester maintenant votre modèle avec une grille de 500m en activant l'index spatial :

Observer le résultat dans le journal : sur l'ordinateur utilisé pour créer les supports on relève :

Createspatialindex : 5.679s

extraire par localisation : 1.756s

temps total : 8.14s

Refaire le traitement sans activer l'index spatial :

Pour extraire par localisation on note le message :

II n'existe pas d'index spatial pour la couche en entrée, les performances seront fortement dégradées

extraire par localisation : 1.675s

Temps total de traitement : 2.42s

On constate donc que dans notre cas la création de l'index spatial est plus coûteux que le bénéfice obtenu dans l'algorithme extraire par localisation, mais cet exercice avait surtout pour but de montrer l'utilisation des branches conditionnelles dans le modeleur.

Remerciements à Ujaval Gandhi www.spatialthinks.compour les cours mis à disposition dont est inspiré ce paragraphe.

PrécédentPrécédentFin
AccueilAccueilImprimerImprimer Licence ouverte ETALAB Réalisé avec Scenari (nouvelle fenêtre)