¿Cómo crear cartogramas de área contigua en QGIS o R?

21

Esto es lo que quiero lograr (a la derecha):

http://junkcharts.typepad.com/.a/6a00d8341e992c53ef0162fd6913e8970d-pi

Estoy buscando una herramienta o un método para transformar un archivo de forma (con QGIS o R) en este formulario. Y tenga en cuenta: ¡no se trata solo de recortar una cuadrícula hexagonal o una cuadrícula de hexágonos! Cada hexágono debe representar un número igual de una medida (por ejemplo, cada hexágono representa 5,000 árboles).

¡Tal vez sabes sobre scapetoad! http://scapetoad.choros.ch/ Así que básicamente quiero producir una salida similar a scapetoad, pero con una cuadrícula más restringida (?).

editar: La mención de QGis y R no es una restricción, es justo donde estaba buscando una solución. ¡Por supuesto que estoy contento con cualquier herramienta, método o consejo!

Chrugel
fuente
44
El título de la imagen a la que hace referencia lo nombra por usted (al menos genéricamente); también el título de esa página de scapetoad: es un "cartograma". Más específicamente, es un cartograma de área (contigua) que emplea elementos hexagonales.
whuber
¡Esta referencia me fue muy útil para hacer esto en [r]!
jsta

Respuestas:

7

Un procedimiento un poco más satisfactorio:

  1. Produzca un cartograma en un método 'basado en difusión' (como scapetoad).

    En QGis:

  2. Cree una capa hexagonal [Complementos> Qmarxan> Crear cuadrícula de planificación] (use el número apropiado / deseado de hexágonos). editar: Dependiendo del propósito del mapa, la cuadrícula Qmarxans podría ser de dudosa calidad. El complemento mmqgis produce resultados mucho mejores (los polígonos se alinean perfectamente).

  3. Une la capa hexagonal con el cartograma [Vector> Herramientas de administración de datos> Unir atributos por ubicación]

  4. Ahora la nueva capa hexagonal tiene todas las propiedades / atributos del cartograma, y ​​es posible acceder a cada subunidad individualmente.

  5. Para una mejor preservación de la forma de las subunidades, es posible realizar algunos ajustes manuales: seleccione los hexágonos y cambie los atributos directamente en la tabla de atributos. Este paso funciona mejor si la capa es semitransparente y el cartograma original basado en difusión se muestra a continuación.

  6. Fusionar los hexágonos de una subunidad en una unidad: 1. Seleccione todos los hexágonos de una subunidad (si hay muchos: use la tabla de atributos para la selección). 2. 'alternar edición'> 'fusionar características seleccionadas'.

Principalmente la deficiencia b) permanece, pero a) está resuelta y también hasta cierto punto c) ya no es un gran problema, b / c este método no lleva tanto tiempo.

Editar: paso 4. (y coloreado después) conduce a este resultado (capa hexagonal transparente en la parte superior, cartograma 'basado en difusión' a continuación): Ilustración del "problema fronterizo"

Los hexágonos de color verde brillante claramente llevan una fila a mucho ...

¿Alguna idea de cómo es posible lograr una mejor / una adaptación personalizada de los "atributos de unión"? - Estoy buscando un método para darle al algoritmo algún tipo de umbral (como:> 50% del área).

Chrugel
fuente
Puedo dar fe de este enfoque, lo he hecho con éxito. No se resolvió una forma satisfactoria de unir espacialmente los hexágonos al polígono que tiene la mayor superposición; Sospecho que necesitaría postgresql / postgis (Unir atributos por ubicación coincide con el primero que encuentra, que puede no ser óptimo)
Steven Kay
2

Mientras tanto, presentaré cuál es mi idea hasta ahora:

  1. Produzca un cartograma en un método 'basado en difusión' (como scapetoad).

    En QGis:

  2. Cree una capa de puntos [Vector> Herramientas de investigación> Puntos regulares].

  3. Clip de capa de puntos con cartograma.

  4. Cree una capa hexagonal [Complementos> Qmarxan> Crear cuadrícula de planificación] (use el número apropiado / deseado de hexágonos).

  5. Contar puntos por polígono [Vector> Herramientas de análisis> Puntos en polígono].

  6. En las propiedades de capa de la capa hexagonal: aplique el etiquetado basado en reglas (o recorte) [Filtro: "PKTCNT"> = 1].

Eso es todo lo que tengo hasta ahora.

Las deficiencias son:

a) Esta es solo la forma general (las subunidades deben ser resueltas de nuevo ...)

b) La cantidad de hexágonos está un tanto arbitrariamente vinculada a la medida real, y peor

c) si quiero cambiar la unidad de la medida (por ejemplo, en lugar de 5'000 árboles por hexágono, ahora quiero 100'000 árboles por hexágono = reducir aún más la complejidad / detalle) Tengo que hacer todo el procedimiento nuevamente.

Chrugel
fuente