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

El siguiente paso es calcular la extensión de las características seleccionadas. Ahí es donde podemos usar la herramienta de solo modelo llamada Límites de capa vectorial. Primero, tendremos que crear una capa que tenga la extensión de esas características seleccionadas. Entonces, podemos usar esta herramienta en esa capa.

Una forma sencilla de crear una capa con la extensión de las entidades seleccionadas es calcular un casco convexo de la capa de puntos de entrada. Utilizará solo el punto seleccionado, por lo que el casco convexo tendrá el mismo cuadro delimitador que la selección. Luego, podemos agregar el algoritmo Límites de capa vectorial y usar la capa de casco convexo como entrada. Debería verse así en el lienzo del modelador:

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

El resultado de los límites de la capa vectorial es un conjunto de cuatro valores numéricos y un objeto de extensión. Usaremos tanto los resultados numéricos como la extensión para este ejercicio.

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

Ahora podemos agregar el algoritmo que rasteriza la capa vectorial, usando la extensión del algoritmo Límites de la capa vectorial como entrada.

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

Finalmente, complete los valores sin datos de la capa ráster usando el algoritmo Cerrar brechas.

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