¿Cambiar las propiedades de estilo de varias capas simultáneamente?

31

Estoy trabajando en datos masivos. Tengo unos cientos de imágenes GeoTIFF importadas en un proyecto QGIS, y me gustaría modificar sus propiedades de capa, como el valor sin datos, la transparencia de ciertos valores de píxeles, asignaciones de mapas de colores ...

Pero parece que no puedo encontrar una manera de aplicar estos cambios a varias capas a la vez, sin editar el archivo XML con una búsqueda y reemplazo global. ¿Hay alguna manera de hacer esto usando la GUI?

Kay F. Jahnke
fuente

Respuestas:

45

En las versiones actuales de QGIS, puede usar Copiar estilo y luego Pegar estilo en el menú desplegable superior Capas (si tiene una o más capas seleccionadas en la lista de capas).


Para algunas versiones anteriores: puede seleccionar varias capas en la lista de capas, hacer clic con el botón derecho y usar Pegar estilo en el menú contextual.

Para otras versiones anteriores:

El complemento MultiQML le permite aplicar un estilo de capa QGIS a varias capas a la vez. Creo que es lo más parecido a lo que estás buscando actualmente.

bajo oscuro
fuente
7

Si guarda las opciones de estilo para la capa de un vector como un archivo .qml, puede aplicarlo en varias capas a la vez con el complemento MultiQML. Básicamente, es una ventana de interfaz que le permite seleccionar a qué capas desea que se aplique el estilo (a mano o 'seleccionar todo'), el botón 'aplicar estilo' le permite seleccionar el qml con la información del estilo.

Información que se encuentra aquí: MultiQML

Tim Couwelier
fuente
5

Esto funciona para QGIS 3.4 =>

  1. Crea un grupo de todas las capas que quieras que tengan el mismo estilo
  2. Edite el estilo de una de las capas del grupo a su gusto.
  3. Haga clic derecho en la capa con el estilo correcto; 'Estilos' -> 'Estilo de copia' -> 'Simbología'
  4. Seleccione el grupo que creó antes
  5. Haga clic derecho en el grupo; 'Pegar estilo'
GISinHelsinki
fuente
Esta debe ser la respuesta aceptada, es rápida y fácil y simplemente funciona ... sin ningún tipo de complicación en la locura.
Shawty
2

Puede guardar su proyecto, cerrar QGIS, encontrar la definición de estilo en el archivo .qgs de su proyecto y luego pegarlo para cada capa.

Nicolas Boisteault
fuente
1

Escribí un script de Python que podría ser útil si desea aplicar el estilo a todas las capas de un grupo o más. Todo lo que necesita tener es un archivo .qml guardado con las propiedades que desea aplicar para cada tipo de capa.

from qgis.core import *
import os
#copy line 9-21 and change file names and group names if you have more groups

QML_file = ('yourqmlfile.qml')#insert path to qml file 
#add other qml files if you want to change style for more groups


def applystyle_group(name):
    root = QgsProject.instance().layerTreeRoot()
    point = root.findGroup(name) #Find Group
    for child in point.children():
        if isinstance(child, QgsLayerTreeLayer):
            if child.layer().type()==0:
                child.layer().loadNamedStyle(QML_file)#change the file name accordingly
                #you can add styles for other types of layers in the same group (line, point and polygon)

try: #If group is not present this will keep script running if you want to add more
    applystyle_group("*")#insert name of QGIS group
except Exception:
    pass
BC B.
fuente