24.6. La interfaz de procesamiento por lotes
24.6.1. Introducción
Todos los algoritmos (incluyendo modelos) se pueden ejecutar como un proceso por lotes. Es decir, que se pueden ejecutar utilizando no sólo un único conjunto de insumos, sino varios de ellos y ejecutar el algoritmo tantas veces sea necesario. Esto es útil al procesar grandes cantidades de datos, ya que no es necesario poner en marcha el algoritmo muchas veces desde la caja de herramientas.
Para ejecutar un algoritmo como un proceso por lotes, haga clic en su nombre en la caja de herramientas y seleccionar la opción Ejecutar como proceso por lotes en el menú emergente que aparecerá.
Si tiene que ejecutar el diálogo del algoritmo abierto, también puede iniciar la interfaz de procesamiento por lotes desde allí, haga clic en el botón Ejecutar como proceso por lotes….
24.6.2. La tabla de parámetros
Ejecutar un proceso por lotes es similar a realizar una única ejecución de un algoritmo. Hay que definir los valores de los parámetros, pero en este caso no necesitamos un único valor para cada parámetro, sino un conjunto de ellos, uno por cada vez que haya que ejecutar el algoritmo. Los valores se introducen mediante una tabla como la que se muestra a continuación, donde cada fila es una iteración y las columnas son los parámetros del algoritmo.
Desde la barra de herramientas superior, puede:
Añadir fila: añade una nueva entrada de tratamiento para la configuración
Remover fila(s): elimina las filas seleccionadas de la tabla. La selección de filas se realiza haciendo clic en el número de la izquierda y permite la combinación de teclas . para la selección múltiple.
Abrir un archivo de configuración de procesamiento por lotes
Guardar la configuración del procesamiento por lotes en un archivo
.JSON
que puede ser ejecutado posteriormente
De forma predeterminada, la tabla contiene sólo dos filas:
La primera fila muestra en cada celda un menú desplegable options para rellenar rápidamente las celdas de abajo. Las opciones disponibles dependen del tipo de parámetro.
conLa segunda fila (así como cada una de las siguientes) representa una única ejecución del algoritmo, y cada celda contiene el valor de uno de los parámetros. Es similar al diálogo de parámetros que se ve al ejecutar un algoritmo desde la caja de herramientas, pero con una disposición diferente.
En la parte inferior de la tabla, puede establecer si Cargar capas al completar.
Una vez que el tamaño de la tabla se ha establecido, este tiene que ser llenado con los valores deseados.
24.6.3. Llenado de la tabla de parámetros
Para la mayoría de los parámetros, establecer el valor es trivial. El widget apropiado, igual que en el diálogo de proceso single, se proporciona, permitiendo simplemente escribir el valor, o seleccionarlo de una lista de posibles valores, dependiendo del tipo de parámetro. Esto también incluye el widget de definición de datos, cuando es compatible.
Para automatizar la definición del proceso por lotes y evitar rellenar la tabla celda a celda, puede pulsar el menú Autorellenar… de un parámetro y seleccionar cualquiera de las siguientes opciones para sustituir los valores de la columna:
Rellenar tomará la entrada para el primer proceso y la introducirá para todos los demás procesos.
Calcular por expresión… le permitirá crear una nueva expresión de QGIS que se utilizará para actualizar todos los valores existentes dentro de esa columna. Los valores de los parámetros existentes (incluyendo los de otras columnas) están disponibles para su uso dentro de la expresión a través de variables. Por ejemplo, establecer el número de segmentos en función de la distancia de la zona de influencia de cada capa:
CASE WHEN @DISTANCE > 20 THEN 12 ELSE 8 END
Añadir valores por expresión… añadirá nuevas filas utilizando los valores de una expresión que devuelva una matriz (a diferencia de Calcular por expresión…, que sólo funciona con las filas existentes). El caso de uso previsto es permitir rellenar el diálogo de lotes utilizando series numéricas complejas. Por ejemplo, añadir filas para un buffer de lotes utilizando la expresión
generate_series(100, 1000, 50)
para el parámetro de distancia da como resultado nuevas filas con los valores 100, 150, 200, …. 1000.Al establecer un parámetro de archivo o de capa, se ofrecen más opciones:
Añadir archivos por patrón… añade nuevas filas a la tabla para los archivos coincidentes encontrados usando un patrón de archivo y una carpeta, con la opción de Buscar recursivamente. Por ejemplo, *.shp.
Seleccionar archivos
Añadir todos los archivos de un directorio
Seleccionar de las capas abiertas
El parámetro de datos de salida expone las mismas capacidades que cuando se ejecuta el algoritmo como un proceso único. Dependiendo del algoritmo, la salida puede ser:
omitido, si la celda se deja vacía
guardado como capa temporal: rellene la celda con
TEMPORARY_OUTPUT
y recuerde marcar la casilla Carga de capas al finalizar.guardado como un archivo plano (:archivo:`.SHP`, :archivo:`.GPKG`, :archivo:`.XML`, :archivo:`.PDF`, :archivo:`.JPG`,…) cuya ruta podría establecerse con las opciones Autofill expuestas de antemano. Por ejemplo, utilice Calcular por expresión… para establecer los nombres de los archivos de salida con expresiones complejas como
'/home/me/stuff/buffer_' || left(@INPUT, 30) || '_' || @DISTANCE || '.shp'
También puede escribir directamente la ruta del archivo o utilizar el diálogo de selección de archivos que aparece al pulsar el botón … que lo acompaña. Una vez seleccionado el archivo, se muestra un nuevo diálogo que permite autocompletar otras celdas de la misma columna (mismo parámetro).
Si se selecciona el valor predeterminado (No auto rellenar), sólo pondrá el nombre del archivo seleccionado en la celda seleccionada de la tabla de parámetros. Si se selecciona cualquiera de las otras opciones, todas las celdas debajo de la seleccionada se rellenarán automáticamente en base a un criterio definido:
Rellenar con números: añade incrementalmente un número al nombre del archivo
Rellenar con valores de parámetros: puede seleccionar un parámetro cuyo valor en la misma fila se anexa al nombre del archivo. Esto es especialmente útil para nombrar los objetos de datos de salida según los de entrada.
guardado como una capa dentro de un contenedor de base de datos:
# Indicate a layer within a GeoPackage file ogr:dbname='C:/Path/To/Geopackage.gpkg' table="New_Table" (geom) # Use the "Calculate By Expression" to output to different layers in a GeoPackage 'ogr:dbname=\'' || @project_folder || '/Buffers.gpkg\' table="' || @INPUT || '_' || @DISTANCE || '" (geom)'
24.6.4. Ejecutar el proceso por lotes
Para ejecutar el proceso por lotes una vez introducidos todos los valores necesarios, basta con hacer clic en Ejecutar. El panel Registro se activa y muestra los detalles y pasos del proceso de ejecución. El progreso de la tarea global por lotes se mostrará en la barra de progreso de la parte inferior del diálogo.