5 votos

Mapa de Cartograma de Dorling a partir de Shapefile usando QGIS

Me gustaría crear un mapa sencillo de cartograma de Dorling en QGIS. Mi objetivo es que sea un estilo similar a estos mapas creados por el New York Times:

http://www.nytimes.com/interactive/2013/11/20/us/which-states-will-allow-old-health-policies-to-be-renewed.html?smid=pl-share&_r=0

Tengo un shapefile de jurisdicciones y me gustaría redimensionarlas basándome en su población. El shapefile ya tiene polígonos cuadrados de tamaño igual para cada jurisdicción, con cada polígono colocado aproximadamente en su ubicación geográfica correcta en relación con los demás polígonos.

El complemento de Cartograma en QGIS hace un buen trabajo al crear un cartograma contiguo, pero me gustaría mantener la forma cuadrada de cada polígono; simplemente redimensionarlos más grandes o más pequeños basándome en su población.

Después de redimensionarlos, también me gustaría poder hacer algunos estilos básicos en ellos (por ejemplo, tener polígonos de colores diferentes basados en el tipo de jurisdicción, como Ciudad, Pueblo, etc.).

2voto

Mat Puntos 196

Hay un par de herramientas disponibles (ProtoViz, Mapresso) que pueden hacer esto pero ya no están siendo desarrolladas o mantendidas activamente.

Encontré este ejemplo de d3 en Bloc.ks que hace un Cartograma de Dorling (¿o es Demers?).

Usa graficación dirigida por fuerza para empujar los estados en un diseño agradable para minimizar superposiciones, aunque algunas superposiciones todavía existen (mostradas como marrón en ese ejemplo).

Si tienes suficiente conocimiento de JavaScript, quizás puedas adaptarlo, o incluso codificarlo para exportar los resultados como un archivo shapefile o archivo WKT delimitado.

El Cartograma resultante puede ser insertado en Map Composer como un marco HTML. Quizás puedas extraer el SVG (d3 funciona como SVG) e importarlo como una imagen también.

2voto

Adam Ernst Puntos 6939

Hay código funcional real en el Apéndice B del folleto CATMOD de Dorling que describe el método.

El pseudocódigo es:

Para cada región
   Calcular el radio de un círculo de manera que su área sea proporcional a la población
   Mientras las fuerzas calculadas a continuación no sean despreciables
     Para cada región (el orden del cálculo no tiene efecto)
       Para cada región que se superpone con la región
          Registrar una fuerza alejándose de la superposición en proporción a ella
       Para cada región que originalmente limitaba con la región
          Registrar una fuerza hacia ella proporcional a la distancia al cuadrado
       Si las fuerzas de repulsión son mayores que las de atracción
         Escalar las fuerzas para que sean menores que la distancia del círculo más cercano
       Combinar las dos fuerzas agregadas para cada círculo
   Para cada región
     Aplicar la fuerzas registradas actuando sobre cada círculo a su centroide

Creo que en su mayoría es cuestión de bucles y control de registros para hacerlo eficiente. Veré si puedo encontrar algún código la próxima vez que esté en casa.

2voto

Electropepper Puntos 70

Creo que la forma más fácil sería utilizar Adobe Illustrator (o algún otro editor vectorial) o programáticamente (como D3 - que no es necesariamente fácil)

Con QGIS o ArcGIS, los símbolos en posiciones de centroide se superpondrán o serán discontinuos, en lugar de desplazarse a posiciones corregidas (o al menos de manera ordenada y ordenada, preservando la forma como en el ejemplo de NYT).

Entonces, si puedes exportar un mapa de símbolos proporcionales a Illustrator u otra alternativa de código abierto, puedes ajustar manualmente los símbolos a ubicaciones apropiadas con facilidad.

0voto

nuecaster Puntos 128

Si conviertes el archivo de forma de polígono a un archivo de forma de punto con los mismos atributos, puedes usar la configuración de estilo para mostrar cuadrados de diferentes tamaños basados en el campo de población.

Ve a propiedades de la capa, pestaña de estilo. Escoge "símbolo único." Selecciona cuadrado para la forma del símbolo. Junto a donde dice "tamaño" haz clic en el pequeño ícono de menú. Escoge la opción Asistente de tamaño... y elige población para el campo. Ajusta las otras configuraciones y reorganiza los puntos hasta que te guste cómo se ve.

0 votos

Creo que eso no funcionará muy bien porque los cuadrados no se desplazarán por los más grandes, simplemente se superpondrán.

0 votos

El Asistente de Tamaño es una característica útil, y una que me acerca más a la salida deseada. Sin embargo, como mencionó @underdark, aunque puedo controlar el tamaño de los cuadrados, estos terminan superponiéndose; mientras que otros (principalmente los más pequeños) quedan bastante lejos de sus características adyacentes, dejando mucho "espacio en blanco" entre algunos de los cuadrados. Podría reorganizar/mover los puntos para colocar los cuadrados más cerca uno del otro, pero entonces si quiero redimensionar los cuadrados basándome en un atributo diferente, los puntos tendrían que ser reorganizados nuevamente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X