Hallo,
ich arbeite aktuell an einem Tool zur Datenvisualisierung. Dafür benötige ich die Möglichkeit, sog. Heatmaps zu generieren und Daten performant darzustellen. Letzteres ist bereits gelöst, mein Interesse liegt bei den Heatmaps.
Kennt jemand Literatur, Blogs, o.ä. Quellen, die sich mit dem Thema beschäftigen? Ich suche keine Codebeispiele, sondern theoretischen Hintergrund und ggf. Ideen für verschiedene Ansätze.
Vielen Dank im Voraus.
@Moderatoren: Bitte verschiebt das Thema in ein geeigneten Bereich des Forums. Mir schien keine spezielle Sektion passend. Danke.
Telemetrie / Heatmap
- Madmartigan
- User
- Beiträge: 200
- Registriert: Donnerstag 18. Juli 2013, 07:59
- Wohnort: Berlin
@Madmartigan:
Theoretischen Hintergrund dazu habe ich nicht parat, aber vllt. eine gangbare Lösung, da ich mit google maps auch schonmal vor dem Heatmapproblem stand.
Ich habe hierzu zunächst die diskreten Punkte (Menge von Geokordinaten, welche auf der Weltkarte in verschiedenen Zoomstufen zu Heatmaps werden sollten) in die Merkatorprojektion übertragen. Dann habe ich den Punkten eine räumliche Ausdehnung eines "Berges" im Graukanal gegeben (geht einfach mit Blur). Naheliegende Punkte werden so zu "Gebirgen". Die "Höhe in Grau" habe ich dann logarithmisch auf die Farbskala übertragen (musste hierbei allerdings ein wenig mit dem Anstieg tricksen, da ich nahe Punkte "zusammenlaufen" lassen wollte). Mit Transparenz war das dann als Overlay in google maps nutzbar.
Da die Heatmaps über 8 oder 9 Zoomstufen weltweit funktionieren sollten und die Daten nur bedingt cachebar waren (10min Updatezyklus bzw. nach Anfrage), hatte ich das mit C++ in einem Quadtree abgelegt und die Geokordinaten per DB-Trigger holen lassen. Der Prototyp mit PIL konnte das aber auch, war nur nicht performant genug.
Theoretischen Hintergrund dazu habe ich nicht parat, aber vllt. eine gangbare Lösung, da ich mit google maps auch schonmal vor dem Heatmapproblem stand.
Ich habe hierzu zunächst die diskreten Punkte (Menge von Geokordinaten, welche auf der Weltkarte in verschiedenen Zoomstufen zu Heatmaps werden sollten) in die Merkatorprojektion übertragen. Dann habe ich den Punkten eine räumliche Ausdehnung eines "Berges" im Graukanal gegeben (geht einfach mit Blur). Naheliegende Punkte werden so zu "Gebirgen". Die "Höhe in Grau" habe ich dann logarithmisch auf die Farbskala übertragen (musste hierbei allerdings ein wenig mit dem Anstieg tricksen, da ich nahe Punkte "zusammenlaufen" lassen wollte). Mit Transparenz war das dann als Overlay in google maps nutzbar.
Da die Heatmaps über 8 oder 9 Zoomstufen weltweit funktionieren sollten und die Daten nur bedingt cachebar waren (10min Updatezyklus bzw. nach Anfrage), hatte ich das mit C++ in einem Quadtree abgelegt und die Geokordinaten per DB-Trigger holen lassen. Der Prototyp mit PIL konnte das aber auch, war nur nicht performant genug.
