¿Proyectando atributo de una capa de polígono a otra en QGIS?

16

Tengo 2 capas de polígono que se pueden encontrar aquí . Las dos capas se superponen. El primero contiene un mapa de los condados alemanes en 1928 y el segundo, cómo están en 2014.

La capa 2014 contiene información sobre la población (llamada Bev en el conjunto de datos). ¿Es posible proyectar el atributo de población de una capa de polígono a la otra?

Para ser un poco más específico:

Considere la situación en la que tengo 2 condados en la capa con el atributo de población, pero en la misma área en la otra capa solo hay 1 condado. ¿Puede QGIS agregar la población de los dos condados y escribir esta información en la otra capa?

Si esto funciona, ¿hay también una forma de hacerlo cuando la capa con la información tiene un área específica solo 1 condado pero hay 2 condados en la otra capa? En este caso, me gustaría dividir la población proporcional al tamaño del condado.

    
pregunta Alex 03.02.2016 - 22:57

2 respuestas

8
  

Descargo de responsabilidad:

     
  1. Creo que en este caso en particular, sería mucho más preciso utilizar los datos de población de 2014 como una capa de puntos con tantos detalles como   posible (centroide de suburbios, ciudades, aldeas ...)

  2.   
  3. Si BEV_ es realmente una población, hay algunos valores realmente extraños como GEN = Uelzen, BEV_ = 92553 donde este polígono es   En comparación con el área de imagen satelital de Google del tamaño de lodo de unos pocos   campos de fútbol.

  4.   

Si realmente desea obtener valores numéricos basados en la proporción de área de polígono superpuesta entre capas (L1 = counties_2014, L2 = german empire 1928):

  1. Antes de realizar cualquier cálculo, sugiero usar sistemas de coordenadas proyectadas en unidades de metros, respectivamente unidades de metros cuadrados para el área. En este caso utilicé EPSG: 3857
  2. En L1 use Calculadora de campo , cree la columna " Área " y rellene con $ área
  3. Intersección de capas - Vector / Herramientas de geoprocesamiento / Intersección ... - Entrada = L1, Intersección = L2
  4. En la Capa intersectada use Calculadora de campo , cree una columna para la población ajustada por la nueva área " PopArea " y rellene con "Población" * $ área / "Área"
  5. Disuelva la capa intersecada con Caja de herramientas de procesamiento - encuentre Disolver polígonos
    • elija alguna columna de valores de polígonos únicos como "Nombre" de L2
    • marque Calcular min / max / suma ... y cópielo en " PopArea "
    • la capa final tendrá la columna sum_diss , que es lo que está buscando (en este caso en particular, la población de 1928 condados de 2014)

Si lo hizo bien, debería obtener aproximadamente 77 millones de personas distribuidas en función del área de los condados L2 de los 81 millones en L1.

    
respondido por el Miro 01.03.2016 - 16:21
9

Si entiendo su pregunta correctamente, esto podría resolver su primera pregunta. Hice una prueba rápida y el siguiente método parece funcionar, pero vale la pena echarle un vistazo para verificar si es correcto.

  1. cree puntos aleatorios en la capa de 1928 (los centroides podrían funcionar mejor. Deberá verificar);
  2. interseca la capa de puntos con la capa 2014 (la capa de puntos debe ser la capa de entrada);
  3. Unir atributos por ubicación. La capa de destino es la capa de 2014 y la capa de puntos es la capa de unión. El uso contiene como predicado geométrico. Deje el resumen de atributos como predeterminado (primera característica localizada). Mantenga todos los registros en el cuadro desplegable de la tabla Unirse.

Comprueba si la capa de salida es correcta.

Si es posible, ejecútelo a través de la caja de herramientas de procesamiento en qgis (no tiene que guardar cada capa, sino guardarla como una capa temporal).

No estoy exactamente seguro de lo que implica tu segunda pregunta. ¿Podrías elaborar?

    
respondido por el PyMapr 01.03.2016 - 11:56

Lea otras preguntas en las etiquetas