Saltar al contenido

¿Realizando intersección de múltiples capas en QGIS?

Revisamos profundamente cada una de las reseñas en nuestra web con el objetivo de mostrarte siempre información veraz y actual.

Solución:

Para que la entidad de una capa se represente en todas las capas, debe estar representada en cualquier selección de dos capas por pozo. Usando esta teoría, simplemente puede ejecutar múltiples funciones de intersección de acuerdo con el orden a continuación. El ejemplo supone 4 capas en total denominadas Layer1, Layer2, Layer3 y Layer4.

  1. Ejecute una intersección entre Layer1 y Layer2 para obtener Output1.
  2. Ejecute una intersección entre Output1 y Layer3 para obtener Output2.
  3. Ejecute una intersección entre Output2 y Layer4 para obtener Output3.

La salida 3 debe contener todas las entidades que aparecen en las 4 capas. Para el campo ‘Recuento’, creo que puede simplemente archivarlo con la cantidad de capas involucradas en la intersección, a menos que esté confundiendo qué datos desea que contenga ese campo.

Este método no es elocuente y si tiene muchas capas o capas con muchas funciones, podría llevar mucho tiempo, pero debería funcionar y es un proceso simple de armar.

Olvidé publicar mi solución…
PASO 1 : Fusionar capas
Al final, cambié mi versión de Qgis a 2.14.11, el algoritmo toma un solo parámetro de entrada (capas) separados por un punto y coma:
processing.alghelp('qgis:mergevectorlayers‘)

ALGORITHM: Merge vector layers
    LAYERS 
    OUTPUT 

Antes era:

processing.runalg('qgis:mergevectorlayers', layer1, layer2, output)

También puede hacer un ciclo para usar esta versión del algoritmo.

for i, layer in enumerate(layers):

            if i == 0:
                layer1 = layers[i]
                layer2 = slayers[i+1]
                processing.runalg('qgis:mergevectorlayers', layer1, layer2, savename)
            if i == leng-1:
                break
            else:
                layer1 = QgsVectorLayer(savename, 'temp', 'ogr')
                layer2 = sme_layers[i+1]
                savename = name          

                processing.runalg('qgis:mergevectorlayers', layer1, layer2,  savename)

PASO 2 : superponer la capa consigo misma

processing.alghelp('grass:v.overlay')



ALGORITHM: v.overlay - Overlays two vector maps.
    ainput 
    atype 
    binput 
    operator 
    -t 
    GRASS_REGION_PARAMETER 
    GRASS_SNAP_TOLERANCE_PARAMETER 
    GRASS_MIN_AREA_PARAMETER 
    GRASS_OUTPUT_TYPE_PARAMETER 
    output 

PASO 3
La respuesta de Joseph parece decente.

Si haces scroll puedes encontrar las observaciones de otros sys admins, tú aún puedes dejar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *