Importante

La traducción es un esfuerzo comunitario puede unirse. Esta página está actualmente traducida en |progreso de traducción|.

17.21. Usar herramientas exclusivas para modelado para crear un modelo

Nota

Esta lección muestra cómo usar algunos algoritmos que solo están disponibles en el modelador, para proporcionar funcionalidad adicional a los modelos.

El objetivo de esta lección es usar el modelador para crear un algoritmo de interpolación que tenga en cuenta la selección actual, no solo para usar solo las entidades seleccionadas, sino para usar la extensión de esa selección para crear la capa ráster interpolada.

El proceso de interpolación consta de dos pasos, como ya se explicó en lecciones anteriores: rasterizar la capa de puntos y rellenar los valores sin datos que aparecen en la capa rasterizada. En caso de que la capa de puntos tenga una selección, solo se usarán los puntos seleccionados, pero si la extensión de salida está configurada para ajustarse automáticamente, se usará la extensión completa de la capa. Es decir, la extensión de la capa siempre se considera la extensión total de todas las entidades, no la que se calcula solo a partir de las seleccionadas. Intentaremos solucionarlo utilizando algunas herramientas adicionales en nuestro modelo.

Abra el modelador e inicie el modelo agregando las entradas necesarias. En este caso necesitamos una capa vectorial (restringida a puntos) y un atributo de ella, con los valores que usaremos para rasterizar.

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

Complete los parámetros del algoritmo como se muestra a continuación:

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

El lienzo debería ahora parecer así.

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

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

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

El algoritmo ahora está listo para guardarse y agregarse a la caja de herramientas. Puede ejecutarlo y generará una capa ráster a partir de la interpolación de los puntos seleccionados en la capa de entrada, y la capa tendrá la misma extensión que la selección.

Aquí hay una mejora del algoritmo. Hemos utilizado un valor codificado para el tamaño de celda al rasterizar. Este valor está bien para nuestra capa de entrada de prueba, pero podría no serlo para otros casos. Podríamos agregar un nuevo parámetro, para que el usuario ingrese el valor deseado, pero un enfoque mucho mejor sería tener ese valor calculado automáticamente.

Podemos usar la calculadora exclusiva del modelador y calcular ese valor a partir de las coordenadas de extensión. Por ejemplo, para crear una capa con un ancho fijo de 100 píxeles, podemos usar la siguiente fórmula en la calculadora.

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

Ahora tenemos que editar el algoritmo de rasterización, por lo que usa la salida de la calculadora en lugar del valor codificado.

El algoritmo final debería verse así:

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