Werden Sie kreativ mit SeeYou.Cloud

Anzeige Ihrer Daten mit benutzerdefinierten Ebenen in SeeYou.Cloud

Geek-Alarm! SeeYou Cloud, Phyton-Code, Heatmaps und benutzerdefinierte Ebenen voraus. Wenn Sie das inspiriert, lesen Sie weiter.

Unser Entwicklerteam arbeitet hart daran, SeeYou.Cloud benutzerfreundlich zu gestalten und gleichzeitig mit coolen Funktionen auszustatten. Wir fügen wöchentlich etwas hinzu. Heute werden wir eine der fortschrittlichsten Funktionen vorstellen. Vielleicht haben Sie sich bei der Analyse eines Fluges schon einmal gedacht: "Mann, es wäre cool, zu sehen, wo die Thermik an diesem Tag war". Kommt Ihnen das bekannt vor?

Nun, mit ein wenig Kreativität und Mühe können Sie Ihre eigene benutzerdefinierte Ebene und visualisieren sie in SeeYou.Cloud.

Der Pilot des Naviter-Teams, Tilen Ceglar, demonstriert bei einem seiner jüngsten Projekte, wie es funktioniert

Nach der 16. Weltmeisterschaft im Gleitschirmfliegen in Mazedonien habe ich alle meine Flüge in die SeeYou.Cloud hochgeladen und bei der Analyse festgestellt, dass es an einem bestimmten Tag bei einem Wettbewerb 100 oder mehr Streckenaufzeichnungen in demselben Gebiet und in einem ähnlichen Zeitrahmen gibt. Das sind eine Menge konzentrierter Daten, die meines Wissens nach nicht wirklich genutzt werden. Also fragte ich mich, wie schwer es sein würde, etwas damit anzufangen. Wie sich herausstellte, ist es ziemlich einfach. Sobald Sie IGC-Tracks in das richtige Format konvertiert haben, kann Seeyou.Cloud die Daten mit einem einfachen Kopieren/Einfügen einer URL visualisieren.

Benutzerdefinierte Ebene

So aktivieren Sie die benutzerdefinierte Ebene: 

  1. Öffnen Sie das Ebenenbedienfeld auf der rechten Seite
  2. Klappen Sie das Menü für benutzerdefinierte Ebenen auf
  3. Fügen Sie die URL der JSON-Datei ein, die Sie anzeigen möchten, und aktivieren Sie sie. 

Dateiformat

SeeYou.Cloud verwendet Mapbox API für die Visualisierung von Karten und Daten. Wir werden hier nicht ins Detail gehen, also stellen Sie sicher, dass Sie die Dokumentation. Kurz gesagt muss die JSON-Datei zwei Teile enthalten: die Geodaten in Form des GeoJSON-Formats und die Ebenendefinitionen im Mapbox-Stil. 

GeoJSON ist ein offenes Standarddateiformat zur Kodierung verschiedener Geodatenstrukturen wie Punkte, Polygone und andere. Jeder Datensatz kann zusätzliche Eigenschaften wie Name, Zeitstempel usw. haben. 

Hier ist ein Beispiel für einen GPS-Fix aus einem Tracklog im GeoJSON-Format mit Längengrad 45,79, Breitengrad 11,66 und Höhe 739 m. An diesem Punkt beträgt die vertikale Geschwindigkeit 1,01 m/s bei 1555765200 Unix- oder Epochenzeit. 

{
"Typ": "FeatureCollection",
"features": [
{
"type": "Merkmal",
 "Geometry":
 {
"type": "Punkt",
"coordinates":
[11.663722, 45.793422, 739]
},
"properties":
{
"vario": 1.01,
"time": 1555765200,
...
}
},
...
]
}

Der zeitaufwändigste Teil ist das Übertragen aller Daten in das GeoJSON-Format. Ich habe ein Python-Skript verwendet, um alle Track-Protokolle aus der 3. Aufgabe im Trofeo Montegrappa 2019. Nach der Mittelung jedes einzelnen Tracks können wir die Höhen differenzieren, um die vertikalen Geschwindigkeiten zu erhalten, und nur die Teile mit positiven Werten behalten. Indem wir die positiven Durchschnittswerte aller Piloten, die diese Aufgabe geflogen sind, sammeln, erhalten wir eine sehr grobe Schätzung der Positionen, Stärken und Zeiten der Thermik um die Aufgabe. Natürlich könnte man an dieser Stelle noch viel mehr Datenverarbeitung betreiben, aber für die Zwecke dieses Beispiels wollen wir es einfach halten.

Die Zusammenführung aller positiven GPS-Fixes aller Piloten erzeugt eine große Datenmenge, so dass es ratsam ist, diese in einer separaten GeoJSON-Datei zu speichern, die im JSON als

{
    "Quellen": {
      "aufgabe-thermische-quelle": {
        "type": "geojson",
        "data": "https://raw.githubusercontent.com/tceglar/heat/master/data/bigsample.geojson"
      }
    },

Die Daten werden als "Aufgabe-Wärmequelle" bezeichnet. Als nächstes müssen wir eine Stilebene für sie definieren. 

Heatmap

Im Allgemeinen gibt es zwei Arten von Heatmaps: solche, die die Punktdichte über einem Gebiet visualisieren, und solche, die diskrete Werte interpolieren, was zu einem glatten Gradienten zwischen ihnen führt. Mapbox bietet Heatmap-Funktionen, die den ersten Typ von Heatmaps erzeugen. Auch wenn ich lieber den zweiten Typ verwenden würde, können wir trotzdem damit arbeiten.

Um die Heatmap zu visualisieren, müssen wir einen Stil definieren, indem wir einen Layer hinzufügen, ihn mit den Quelldaten aus der GeoJSON-Datei identifizieren und den Typ auf "Heatmap" setzen. Hier können wir die Eigenschaften der Ebene definieren, indem wir das Gewicht der Heatmap, die Intensität, die Farbe, die Deckkraft usw. angeben. Diese Parameter sind für eine ansprechende Visualisierung von entscheidender Bedeutung und bedürfen daher in der Regel einiger Iterationen. 

"Schichten": [
      {
      "id": "task-heatmap-layer",
      "type": "heatmap",
      "Quelle": "aufgabe-thermische-quelle",
      "maxzoom": 15,
      "paint": {
      "heatmap-weight": [
      "interpolate",
      ["linear"],
      ["get", "mag"],
      0, 0,
      6, 1
      ],
      "heatmap-intensity"[...]
      "heatmap-color": [...],
      "heatmap-radius": [...],
      "heatmap-opacity": [...]
      }
      }
    ]
  }

Um zu sehen, wie die vollständige JSON-Datei aussieht, die wir vorbereitet haben, folgen Sie dem Link hier.
Wir sind fast fertig. Jetzt müssen Sie nur noch Ihre Datei auf einen öffentlichen Server hochladen (ich habe Github verwendet) und die Link in der benutzerdefinierten Ebene in Seeyou.Cloud.

Das war's. Jetzt können wir sehen, welche Thermik die Piloten am häufigsten benutzt haben. Wir können uns sofort Verbesserungen für diese Ebene vorstellen, wie z.B. die Visualisierung der Thermik nicht nach der Dichte der Piloten, sondern eher nach der Stärke der Thermik. Das Gute daran ist, dass alle Werkzeuge hier sind und einfach zu benutzen sind 🙂  

Ich hoffe, dies hat Sie ermutigt, kreativ zu werden und mehr aus den verfügbaren Daten zu machen. Viel Spaß!