¿Construir mapas de calor efectivos?

65

Usando ArcGIS, QGIS, Grass y / o GVSIG:

  • ¿Cuáles son algunas de las herramientas y procesos involucrados en la construcción de mapas de calor efectivos?
  • ¿Cuáles son los complementos involucrados?
  • ¿Cuáles son los principales requisitos de datos?
  • ¿Cuáles son algunos de los defectos con los mapas de calor existentes?
  • ¿Cuáles son algunos de los problemas que los mapas de calor no pueden cubrir de manera efectiva?
  • ¿Cómo no hacer un mapa de calor?
  • ¿Existen mejores alternativas (en el mismo contexto) que el mapa de calor para la representación de datos?
dassouki
fuente
Aunque no utiliza ninguna de las herramientas que especificó, es posible que también desee ver este script de Python jjguy.com/heatmap
radek
1
Dassouki, ¿podrías aclarar lo que quieres decir con "mapa de calor"? Wikipedia parece pensar que es una interpretación coroplásica de una serie de valores. Esto es sutil, pero importante, diferente de todas las respuestas en este hilo, lo que supone que simplemente significa un mapa de cualquier atributo basado en la cuadrícula (o imagen), especialmente uno que ha sido interpolado en la cuadrícula a partir de datos de puntos. Las respuestas a cada una de sus preguntas con viñetas serán diferentes para un verdadero mapa de calor.
whuber

Respuestas:

74

Esta pregunta se ha convertido a Community Wiki y wiki bloqueado porque es un ejemplo de una pregunta que busca una lista de respuestas y parece ser lo suficientemente popular como para protegerla del cierre. Debe tratarse como un caso especial y no debe verse como el tipo de pregunta que se recomienda en este, o en cualquier sitio de Stack Exchange, pero si desea contribuir con más contenido, no dude en hacerlo editando esta respuesta .


Hay al menos dos tipos diferentes de mapas de calor:

  1. Mapas de calor que representan la concentración de puntos, y
  2. Mapas de calor que representan distribuciones de valores de atributos

Cada método tiene ventajas y problemas, me temo que entrar en detalles va mucho más allá de estas preguntas y respuestas.

Intentaré enumerar algunos métodos y funciones para QGIS y GRASS.

Concentración de puntos

Si está rastreando el movimiento de vida silvestre, vehículos, etc., puede ser útil evaluar regiones con alta concentración de mensajes de ubicación.

Herramientas: por ejemplo, el complemento QGIS Heatmap (disponible en versiones> 1.7.x) o GRASS v.neighbours o v.kernel

Distribuciones de valores de atributos

Aquí, básicamente estamos hablando más o menos acerca de los métodos de interpolación. Los métodos incluyen:

  1. IDW

    Dependiendo de la implementación, esto puede ser global (utilizando todos los puntos disponibles en el conjunto) o local (limitado por el número de puntos o la distancia máxima entre puntos y la posición interpolada).

    Herramientas: complemento de interpolación QGIS (global), GRASS v.surf.idw o r.surf.idw (local)

  2. Splines

    Nuevamente, gran cantidad de implementaciones posibles. B-Splines son populares.

    Herramientas: GRASS v.surf.bspline

  3. Kriging

    Método estadístico con varios subtipos.

    Herramientas: GRASS v.krige (gracias a om_henners por la sugerencia) o usando R.

oscuridad
fuente
1
Hay una interfaz a través de GRASS para kriging, v.krige ( grass.osgeo.org/wiki/V.krige_GSoC_2009 ), pero aún requiere R, y los diversos paquetes y enlaces R mencionados en la página Wiki de GRASS.
om_henners
Desde QGIS 2.8 hay un procesador de mapa de calor para capas de puntos. No es necesario crear nuevos datos.
Alexandre Neto
34

Estadísticamente, así es como debes hacer un mapa de calor:

1) Integrar características de puntos. La idea de la integración es tomar puntos que deberían considerarse coincidentes y fusionarlos como una sola ubicación. Me gusta usar el análisis del vecino más cercano y usar un valor apropiado a partir de ahí. (Por ejemplo, cuando hago un mapa de calor del crimen, utilizo el primer vecino promedio más cercano para el conjunto de datos de parcela subyacente contra el cual se geocodifican los delitos).

2) Recoge eventos . Esto crea un peso espacial para todos sus puntos integrados. Por ejemplo, si tiene 5 eventos en una sola ubicación, se convertirá en un punto con peso 5. Esto es esencial para los próximos dos pasos. Si necesita agregar un atributo en los eventos agrupados, es decir, los diferentes eventos tienen un mayor peso, entonces puede usar una unión espacial uno a uno . Utilice el resultado de 'recopilar evento' como destino y sus eventos integrados originales como características de unión. Establecer las reglas de combinación de mapas de campo combina estadísticamente el atributo en los eventos integrados (normalmente con un SUMA, aunque puede usar otras estadísticas).

3) Determine la autocorrelación espacial máxima utilizando la I de Moran global . Tal como dice, ejecute el I de Moran global a diferentes intervalos para determinar la banda máxima de autocorrelación espacial en la escala apropiada para el análisis que está haciendo. Es posible que desee ejecutar el vecino más cercano nuevamente en sus eventos recopilados para determinar el rango de inicio para las pruebas I de su moran. (por ejemplo, use el valor máximo para el primer vecino más cercano)

4) Ejecute Getis-Ord Gi * . Use una banda de distancia fija basada en el análisis I de su moran, o use la banda de distancia fija como zona de indiferencia. Su peso espacial de eventos de recopilación es su campo de recuento numérico. Esto le dará puntajes z para cada punto de evento en su conjunto.

5) Ejecute IDW contra sus resultados de Getis-Ord Gi *.

Este resultado es significativamente diferente de lo que obtienes con la densidad del kernel. Le mostrará dónde se agrupan los valores altos y bajos en lugar de solo dónde los valores son altos, sin tener en cuenta la agrupación, como en la densidad del kernel.

castillo-blord
fuente
20

Si bien me gustan los mapas de calor, me doy cuenta de que a menudo se usan mal.

Por lo general, lo que he visto es un proceso mediante el cual el color de cada píxel se basa en el resultado de una función ponderada de distancia inversa aplicada a una colección de puntos. Cada vez que un mapa tiene muchos marcadores de puntos superpuestos, creo que vale la pena considerar un mapa de calor.

Aquí hay una API basada en web .

GeoChalkboard tiene un buen tutorial para ello .

Puede usar IDW en ArcGIS.

Kirk Kuykendall
fuente
77
Solo tenga en cuenta que IDW es muy sensible a las ubicaciones de recopilación de datos. Si los datos están agrupados, por ejemplo, potencialmente obtendrás malas anomalías matemáticas.
Reed Copsey
@Reed Copsey ¿Qué alternativa sugerirías?
fmark
2
@fmark: hay muchas rutinas de interpolación que puede usar en lugar de IDW, incluidos los enfoques basados ​​en vecino natural / triangulación, Kriging, splining / tensión mínima, etc.
Reed Copsey
@Reed Nunca me ha preocupado realmente la corrección matemática de los mapas de calor (tal vez debería estarlo). Pero sí creo que útilmente comunican grupos en muchas situaciones. Aquí hay un ejemplo de un mapa que creo que podría ser útil como mapa de calor: www2.clustrmaps.com/counter/maps.php?url=http://clustrmaps.com
Kirk Kuykendall el
2
Creo que son una gran herramienta. La corrección matemática / estadística probablemente solo sea importante si está utilizando los resultados para la toma de decisiones, pero si es para transmitir el sentido general de la distribución, IDW probablemente esté bien. (Es más una cuestión de grupos que causan grandes "sesgos" en los resultados del mapa de calor, especialmente entre grupos, debido a anomalías matemáticas.)
Reed Copsey
12

Para mapas de calor simples y generar líneas de cuenta atrás, he usado QGis con la integración de Grass:

  1. Cargar puntos de datos
  2. Cargar una forma limitante, por ejemplo, límite del condado
  3. Crear un mapa de hierba
  4. Abra la caja de herramientas Grass y haga clic en la lista de módulos para buscar cada herramienta
  5. Cargue el módulo v.in.ogr.qgis y cargue tanto los datos del punto como la forma del límite, cada vez que recuerde hacer clic en la salida de visualización para cada uno; dé a cada uno un nombre útil como pointdata y maskshape
  6. Convierta la máscara de máscara en un ráster para usarla como máscara con v.to.rast y agréguela al conjunto de mapas, llámela algo así como maskraster , esto puede llevar tiempo para polígonos complejos.
  7. Cargue el módulo r.mask para forzar que la siguiente acción se limite a la región del búfer.
  8. Ejecute v.surf.rst para generar una cuadrícula interpolada a partir de datos de punto : elija la columna adecuada como el campo de atributo para realizar la interpolación y llámela algo así como rastersurface . Este es el bit que lleva tiempo y genera un ráster que puede usarse como mapa de calor o puede sombrearse en 3D.
  9. Cierre la caja de herramientas Grass
  10. Use el complemento GDAL Raster Contours eligiendo el ráster GRASS como entrada; deje el valor de niveles predeterminado en 10 y elija un directorio de salida donde se guardará el archivo de forma de contornos. Marque el "Nombre del atributo" y escriba un nombre.

NB: ¡Para que esto funcione, los conjuntos de datos deben estar en la misma proyección!

Adrian
fuente
4

Creo que esta pregunta ha sido ampliamente respondida, excepto por un par de puntos sobre los problemas.

Los mapas de calor pueden ser geniales, pero una falla y un problema clásico radica en la interpretación. Tome la diferencia entre un mapa de calor de los eventos delictivos en comparación con un mapa (calor o no) de la tasa / proporción de delitos. Si bien el mapa de calor del evento podría ser útil en términos de identificación de la densidad general del evento, es ciego como una estimación del riesgo, pero a menudo se interpretaría o se utilizaría de manera incorrecta. Considere la misma cantidad de eventos en una región del mismo tamaño y forma, pero con una población diferente, mientras que el crimen podría concentrarse en un área, eso podría ser simplemente porque hay más personas en ese espacio. Además, las tasas de datos de eventos, como los delitos, pueden ser difíciles de modelar, ya que para generar un mapa de mapa de calor, pueden requerir un evento como modelo de población, pero las personas no tienden a quedarse quietas.

Un segundo problema es que un mapa de calor se limita a considerar una sola escala espacial, y seleccionar esta escala espacial, es decir, el tamaño del grano o la tasa de descomposición, puede ser complicado y depende de los objetivos del estudio, pero debe justificarse . Si el punto es identificar el centro del grupo más fuerte y la escala en la que ocurre (tal vez para identificar la fuente de un brote de enfermedad y un factor en su propagación), una mejor opción podría ser considerar múltiples escalas. Con ponderaciones apropiadas proporcionales a la escala / área para producir un ráster tridimensional, donde los máximos locales en el ráster de escala espacial 3D indican la ubicación del centro de los grupos y sus respectivos tamaños, y la persistencia entre escalas.

Craig Stobbs
fuente
1
Haces algunos puntos muy válidos. Estos dos problemas son en realidad problemas clásicos de la geografía. El primer problema está relacionado con la interpretación de la no uniformidad subyacente del espacio, es decir, dado que la distribución de personas no es uniforme (con algunas áreas escasamente pobladas), la oportunidad de delincuencia tampoco es uniforme. El patrón en uno es forzado por el patrón en el otro. La segunda cuestión de escala es parte del Problema de unidad de área modificable (MAUP) que afectará cualquier medida que dependa de un área para medir, por ejemplo, la densidad. Este es un problema clásico en la mayoría del trabajo geográfico.
WhiteboxDev
Considere también los polígonos de Thiessen como primer vistazo a los patrones espaciales. Son bastante simples, pero también son capaces de mostrar muchos detalles, son un interpolador exacto y parecen solucionar algunos de los problemas de escala que afectan a otros métodos de interpolación más sofisticados: gislandscapeecology.blogspot.com/2016/04/…
Tom Dilts