17.21. Utilisation d’outils de modélisation uniquement pour créer un modèle

Note

Cette leçon montre comment utiliser quelques algorithmes disponibles seulement dans le modeleur, pour apporter des fonctionnalités additionnelles aux modèles.

L’objectif de cette leçon est d’utiliser le modeleur pour créer un algorithme d’interpolation qui prend en compte la sélection active , pas seulement pour utiliser les entités sélectionnées, mais pour utiliser l’emprise de cette sélection afin de créer la couche raster interpolarisée.

Le processus d’interpolation implique deux étapes, comme il a déjà été expliqué dans de précédentes leçons : rasteriser les couches de points et remplir les valeurs absentes qui apparaissent dans la couche rastérisée. Dans le cas où la couche de points a une sélection, seuls les points sélectionnés seront utilisés, mais si l’étendue de sortie est définie pour être automatiquement ajustée, l’étendue complète de la couche sera utilisée. C’est-à-dire que l’étendue de la couche est toujours considérée comme l’étendue totale de toutes les entités, et non celle calculée à partir des seules sélectionnées. Nous allons essayer de résoudre ce problème en utilisant des outils supplémentaires dans notre modèle.

Ouvrez le modeleur et commencez le modèle en ajoutant les entrées demandées. Dans ce cas nous avons besoin d’une couche vecteur (restreintes aux points) et un attribut en provenant, avec les valeurs que nous utiliserons pour la rasterisation.

../../../_images/inputs.png

L’étape suivante consiste à calculer l’emprise de l’entité sélectionnée. C’est là que nous pouvons utiliser l’outil de modélisation unique appelé Vector layer bounds. D’abord, nous allons devoir créer une couche qui possède une emprise de ces entités sélectionnée. Ensuite nous pourrons utiliser cet outil sur cette couche.

Une manière simple de créer une couche avec l’étendue des entités sélectionnées consiste à calculer une enveloppe convexe de la couche de points d’entrée. Cela utilisera uniquement les points sélectionnés, de sorte que l’enveloppe convexe aura la même boîte englobante que la sélection. Ensuite, nous pouvons ajouter l’algorithme Limites de la couche vecteur, et utiliser la couche de l’enveloppe convexe en entrée. Cela devrait ressembler à ça dans l’espace de travail du modeleur :

../../../_images/convexhull_and_extent.png

Le résultat du Vector layer bounds est un ensemble de quatre valeurs numériques et d’une emprise d’objet. Nous utiliserons à la fois les résultats numériques et l’emprise pour cet exercice.

../../../_images/extent_outputs.png

Nous pouvons maintenant ajouter l’algorithme qui rasterise la couche vecteur, en utilisant comme source l’emprise de l’algorithme du Vector layer bounds

Remplissez les paramètres de l’algorithme comme montré par la suite :

../../../_images/rasterize2.png

Le canvas devrait être :

../../../_images/canvas_rasterize.png

Enfin, remplissez les valeurs absentes de la couche raster avec l’algorithme Close gaps.

../../../_images/close_gaps1.png

L’algorithme est maintenant prêt à être sauvegardé et ajouté à la boîte à outil. Vous pouvez le lancer et cela génèrera une couche raster depuis l’interpolation des points sélectionnés dans la couche d’entrée, et la couche aura la même emprise que la sélection.

Voici une amélioration de l’algorithme. Nous avons utilisé une valeur programmée pour la taille de la cellule quand s’est rasterisé. Cette valeur est bonne pour notre test de couche d’entrée, mais elle ne le sera peut être pas pour d’autres cas. Nous pouvons ajouter de nouveaux paramètres, afin que l’utilisateur entre les valeurs qu’il souhaite, mais une meilleur approche serait d’avoir cette valeur automatiquement calculer.

Nous pouvons utiliser la calculateur de modèle simple, et calculer cette valeur à partir des coordonnées d’étendue. Par exemple, pour créer une couche avec une largeur fixe de 100 pixels, nous pouvons utiliser la formule suivante dans la calculatrice.

../../../_images/calculator1.png

Maintenant, nous devons éditer l’algorithme de rasterisation, afin qu’il utilise la sortie de la calculatrice au lieu de la valeur programmée.

Le script complet devrait être :

../../../_images/final.png