26.6. La interfaz de procesamiento por lotes

26.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á.

../../../_images/batch_processing_right_click.png

Figura 26.30 Procesamiento por lotes con clic derecho

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….

../../../_images/parameters_dialog.png

Figura 26.31 diálogo de procesamiento por lotes de algoritmo

26.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.

../../../_images/batch_processing.png

Figura 26.32 Procesamiento por Lotes

Desde la barra de herramientas superior, puede:

  • symbologyAdd Añadir fila: añade una nueva entrada de tratamiento para la configuración

  • symbologyRemove 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.

  • fileOpen Abrir un archivo de configuración de procesamiento por lotes

  • fileSave 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 Autofill… ► con options para rellenar rápidamente las celdas de abajo. Las opciones disponibles dependen del tipo de parámetro.

  • La 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 checkbox 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.

26.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.

  • calculateField 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 ficheros que coincidan con un Patrón de archivo en una carpeta a Mirar. P.ej. *.shp añadirá a la lista todos los archivos SHP de la carpeta. Confirme |caja de confirmación| Buscar recursivamente para mirar también las subcarpetas.

    • Seleccionar Archivos… individualmente en el disco

    • Añadir Todos los Archivos de un Directorio…

    • Seleccionar desde Capas Abiertas… en el proyecto activo

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 checkbox 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).

    ../../../_images/batch_processing_save.png

    Figura 26.33 Guardar Procesamiento por lotes

    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)'
    

26.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.