34 votos

¿Cómo crear un base de polilínea "heatmap" GPS pistas?

Este invierno estoy planeando hacer el seguimiento de mi esquí alpino/snowboard uso de un GPS. La mayoría de los de mi caballo se producen en el mismo resort. Me gustaría ser capaz de crear una especie de "mapa de calor" que muestra la cantidad de carreras que he hecho en un área determinada. Como puedo añadir más y más trazas GPS a mi base de datos, mi objetivo sería ver una especie de lineal "mapa de calor" de la mayoría de las áreas concurridas. Dada la naturaleza de esquí de descenso, sería de esperar que la subida en el telesilla de líneas será el "más caliente", porque será la única lugares visitados-y-otra vez.

Dado que 1) mi pista no será el mismo cada vez, y 2) el área cubierta por el siguiente "ejecutar" puede ser de unos pocos cientos de metros de ancho, lo que podría ser la mejor manera de analizar este "lineal" de datos para crear una especie de "mapa de calor"? Mis pensamientos eran para amortiguar las líneas, luego se cruzan los polígonos para obtener una especie de Diagrama de Venn cosa que va. Mi preferencia es el uso de tecnologías de código abierto. Tengo QGIS y PostGIS cargado y disponible.

ACTUALIZACIÓN: En lo que respecta a @blah238 la respuesta, yo estaba pensando en algo que podría ser capaz de "recoger" el número de pasadas ("corre") a través de un área, y luego se simbolizan por el conde. Conceptualmente, esto sería similar a ArcGIS "Recoger los Eventos" (pero para las líneas, no puntos) o Colapso de Doble Líneas A la línea central (pero para varias líneas en aproximadamente la misma área).

Un ejemplo más visual de un concepto similar podría ser el de un tráfico-mapa de flujo, donde altamente congestionadas áreas equivale a "muy transitada" pistas/áreas:

Google Traffic Map

He leído las siguientes preguntas que pueden dar algunas ideas, pero que en realidad no tratan de lo que estoy tratando de lograr:

La agrupación de las Trayectorias (datos GPS de (x,y) de los puntos) y la Minería de datos

Gestión de error con las rutas de GPS (marco teórico?)

20voto

Jimmy Chandra Puntos 3562

He hecho un poco de trabajo en GeoTools/GeoServer extendiendo la transformación de representación de mapa de calor para geometrías que no sean puntos de apoyo.

Pizza deliveries heatmap

Aún no está terminado, pero usted puede conseguir la rama de característica de mi repositorio en GitHub.

La captura de pantalla es de tracks GPS de cuando trabajaba como conductor de entrega de pizza.

17voto

auramo Puntos 161

Aquí es un buen tutorial para hacer exactamente eso con MapBox y TileMill:

Screenshot

7voto

matell Puntos 31

aquí está mi enfoque simple:

  1. crear un nuevo mapa en la umap: http://umap.openstreetmap.fr/en
  2. haga clic en Importar los Datos, seleccione todos los archivos gpx que tiene y cargarlos en el mapa (puede importar todos ellos a la vez)
  3. entrar en Editar configuración de mapa > propiedades Predeterminadas, seleccione la opacidad 0.25, peso 10.

Los tres pasos anteriores se tome 5 minutos y aquí está el resultado: enter image description here

1voto

lewis Puntos 1178

Crear un graticular gridwork convertir shapefiles gpsdata, polygonize las líneas, extracto x, punto y datos de tablas, hacer una densidad superficial o mapa con práctica estándar en este momento de calor. Entonces se podría combinar con datos vectoriales lineales para obtener los valores de píxeles en una pantalla de trama o para más procesamiento numérico.

1voto

トモダチ Puntos 21

La mayoría de la gente (incluido yo mismo) buscar en un archivo GPX y pensar en ello como una secuencia de posiciones (puntos), mientras que puede ser perfectamente visto como una secuencia de segmentos de línea en su lugar.

Su formulación del problema implica un "mapa de calor" de modo que usted puede inspeccionar visualmente sus trayectorias, por lo que no es una simple manera de saltarse el complejo numbercrunching parte delegando directamente a un trazado motor.

Cuando usted dice "búfer de las líneas", que sería el grosor de la línea. Cuando usted dice "recoger los pases" que significaría trazado más y más con transparente líneas, por lo que "la construcción de" más y más color.

Así, le sugiero que para trazar cada trayectoria como una sola polilínea con espesor suficiente que hay cierta superposición (depende de zoom, por lo que usted desea para establecer el espesor en el mapa la distancia en lugar de píxeles), y con una muy baja opacidad, decir, 0.05, en negro.

Es importante que no la trama de cada segmento, porque si lo hace, sus extremidades se superponen, duplicando su opacidad y la creación de un "punto" de color más intenso.

En la final, obtendrá una imagen en escala de grises sobre la cual se puede aplicar el mapa de colores de su elección.

Probablemente voy a hacerlo con Python/el Cairo, pero Python/Matplotlib iba a hacer, y Html/Lienzo o Html/SVG (o programático SVG) sin duda lo haría.

El resultado final depende sólo de la resolución de su salida de los medios de comunicación.

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