Important

La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 72.22%.

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

The next step is to compute the extent of the selected features. That’s where we can use the model-only tool called Vector layer bounds. First, we will have to create a layer that has the extent of those selected features. Then, we can use this tool on that layer.

An easy way of creating a layer with the extent of the selected features is to compute a convex hull of the input points layer. It will use only the selected point, so the convex hull will have the same bounding box as the selection. Then we can add the Vector layer bounds algorithm, and use the convex hull layer as input. It should look this in the modeler canvas:

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

The result from the Vector layer bounds is a set of four numeric values and a extent object. We will use both the numeric outputs and the extent for this exercise.

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

We can now add the algorithm that rasterizes the vector layer, using the extent from the Vector layer bounds algorithm as input.

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

../../../_images/rasterize3.png

Le canvas devrait être :

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

Finally, fill the no-data values of the raster layer using the Close gaps algorithm.

../../../_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