Procesamiento por Lotes usando el Marco de Procesamiento (QGIS3)¶
El Marco de Procesamiento en QGIS provee un ambiente dentro de QGIS para ejecutar algoritmos nativos y de terceros para el procesamiento de datos. Contiene un agradable interfaz de procesamiento que le permite a uno ejecutar un algoritmo fácilmente sobre varias capas. El procesamiento por lotes es una herramienta útil que puede ahorrar esfuerzo manual y ayudarle a automatizar tareas repetitivas.
Vista general de la tarea¶
Tomaremos varias capas capas globales vector para recortarlas a la extensión de África en un solo comando por lotes.
Otras habilidades que aprenderá¶
Crear un Filtro que eliminará las entidades no deseadas de una capa sin crear una nueva capa.
Fusionar múltiples capas en un solo archivo Geopackage.
Obtener los datos¶
Natural Earth tiene varias capas globales vector. Descargue las siguientes capas
Ferrocarriles <https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_railroads.zip>`_
Para su comodidad, puede descargar directamente un geopackage que contiene las capas de arriba a continuación:
Fuente de Datos: [NATURALEARTH]
Procedimiento¶
En el Panel Explorador QGIS, localice el directorio donde guardó sus datos descargados. Expanda el
zip
o la entradagpkg
y seleccione la capane_10m_admin_0_countries
. Arrastre la capa a la pantalla.
Verá la capa cargada en el panel Capas. Como nuestra tarea es recortar las capas globales al límite de África, necesitamos primero preparar una capa que contiene entidades sólo de ese continente. Miremos en la tabla de atributos para ver que columna puede ser usada para consultar las entidades que pertenecen a un continente particular. Haga clic-derecho a la capa
ne_10m_admin_0_countries
y seleccione Abrir Tabla de Atributos.
Nota
Consejo: Puede también usar el atajo de teclado F6 para abrir la tabla de atributos de la capa seleccionada.
En la ventana Tabla de Atributos, a medida que desliza horizontalmente, verá que los datos contienen un atributo llamado CONTINENT. Podemos usar este atributo para filtrar objetos espaciales.
Cierre la tabla de atributos y retorne a la ventana principal QGIS. Clic-derecho la capa
ne_10m_admin_0_countries
y seleccione Filtrar.
En la ventana Constructor de consultas, seleccione el campo CONTINENT y haga clic en Muestra. Esto rellenará el panel Valores con un subconjunto de valores de ese atributo de las prestaciones. Este paso es útil para comprender qué tipo de valores están presentes en su conjunto de datos. Podemos ver que nuestro conjunto de datos contiene un valor llamado Africa entre otros.
Ahora ingrese la expresión en la caja de texto Expresión de filtrado específica del proveedor. Puede hacer clic en la etiqueta CONTINENT, seguido por el botón = y la etiqueta Africa. O puede escribir la siguiente expresión en la caja de texto. Clic en Aceptar después de ingresar la expresión.
"CONTINENT" = 'Africa'
Verá que la pantalla del mapa ahora contiene sólo los países de África. Note el ícono de filtro junto al nombre de capa, lo que indica que la capa tiene un filtro aplicado. Si quisiera ver y usar todos los objetos espaciales de la capa, puede hacer clic en el ícono de filtro y limpiar la expresión. Por ahora, mantendremos el filtro de manera que podamos recortar otras capas a África.
Ahora estamos listos para ejecutar el proceso por lotes para recortar las capas. Localice las capas globales natural earth
ne_10m_railroads
,ne_10m_ports
yne_10m_urban_areas
en el panel Navegador QGIS Browser. Mantenga presionada la tecla Ctrl y clic en cada capa para seleccionarlas. Una vez seleccionadas, arrástrelas a la pantalla.
Una vez que las capas estén cargadas, notará que son capas globales y tienen objetos espaciales que abarcan todos los países. Ahora, es tiempo para nuestro proceso de recorte por lotes para recortar estas capas a África. Abra
.
Navegue todos los algoritmos disponibles y encuentre la herramienta Recortar de . También puede usar la caja Buscar para encontrar fácilmente el algoritmo.
Clic-derecho el algoritmo Cortar y seleccione Ejecutar como proceso por lotes.
En el diálogo Procesamiento por lotes, la primera pestaña es Parámetros donde definiremos nuestras entradas. Cada fila en la tabla representa 1 tarea de procesamiento. Clic el botón Añadir fila para agregar una nueva fila. Como nuestra tarea involucra 3 capas, agregue 3 filas.
Clic … junto a la primera fila en la columna Capas de entrada. Seleccione Seleccionar de Open Layers.
En el diálogo Selección múltiple, marque las 3 capas que queremos recortar y clic en Aceptar.
Notará que las columnas Capa de entrada serán autopobladas con todas las capas que había seleccionado. A continuación, necesitamos seleccionar la capa que contiene el límite para recortar todas nuestras capas de entrada. Clic al botón … para la primera fila bajo la columna Capa de superposición y seleccione Seleccionar de Open Layers.
En el diálogo Selección múltiple, marque
ne_10m_admin_0_countries
y clic Aceptar.
Como la capa de recorte es la misma para todas las entradas, un atajo práctico es hacer doble-clic al encabezado de la columna Capa de superposición y la misma capa se autollenará para todas las filas.
A continuación, necesitamos definir todas nuestras salidas. Clic el botón … junto a la primera fila en la columna Cortado.
Navegue al directorio donde quiere sus capas de salida. Escriba el nombre de archivo como
clipped_
y clic en Guardar.
Verá que aparece un nuevo diálogo Configuración de autollenado. Seleccione
Llenar con valores de parámetro
como el Modo de autollenado. SeleccioneCapa de entrada
como el Parámetro a usar. Esta configuración agregará el nombre del archivo de entrada a la salida junto con el nombre de archivo especificadoclipped_
. Esto es importante para asegurar que todos los archivos de salida tienen nombres únicos y no se sobreescriben uno al otro.
Ahora estamos listos para iniciar el procesamiento por lotes. Asegúrese de marcar Cargar capas al completar y clic en Ejecutar.
El algoritmo de recorte se ejecutará para cada una de las entradas y creará los archivos de salida que hayamos especificado. Una vez finalizado el proceso por lotes, haga clic en Cerrar para volver a QGIS.
Nota
Consejo: QGIS puede ahora ejecutar tareas de Procesamiento en segundo plano sin bloquear el interfaz de usuario. Así si su proceso por lotes está tomando muncho tiempo, puede cerrar el diálogo y continuar trabajando en otras tareas en QGIS mientras el proceso sigue corriendo en segundo plano.
De vuelta a la ventana principal QGIS, verá agregadas las capas a la pantalla QGIS. Como notará, todas las capas globales está debidamente recortadas al límite continental que habíamos especificado.
Hemos realizado la tarea de recortar múltiples capas en un lote. Pero QGIS3 tiene otra prestación muy útil que le ayudará a guardar y entregar el resultado de una manera más eficiente. Si quisiera entregar las capas recortadas a alguien, debería comprimir los archivos individuales fuera de QGIS. Una mejor opción es empaquetar las capas de salida en un único Geopackage. En la etiqueta QGIS Navegador, localice las capas de salida recortadas. Puede que tenga que hacer clic en el botón Actualizar para ver los archivos recién añadidos.
Mantenga presionada la tecla Ctrl y seleccione las capas. Arrástrelas a la pantalla para cargarlas en QGIS.
En la Caja de herramientas, localice la herramienta .
En el diálogo Empaquetar capas, clic en el botón … junto a Capas de entrada.
En el diálogo Selección mútiple, marque las capas
clipped_ne_10m_ports
,clipped_ne_10m_railroads
yclipped_ne_10m_urban_areas
. Clic en Aceptar.
Una vez que estén seleccionadas las capas de entrada, clic en … junto a Geopackage destino y elija Guardar a Archivo.
Ingrese el nombre del archivo de salida como
clipped_layers
.
Clic en Ejecutar para iniciar el proceso de empaquetado.
Una vez que termine el proceso, verá un nuevo archivo geopackage en su Explorador QGIS que contiene todas las capas de salida recortadas. Éste es un archivo solo en su computadora que contiene todas las capas de salida.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)