Soyez créatif avec SeeYou.Cloud

Affichez vos données avec des couches personnalisées dans SeeYou.Cloud

Alerte aux geeks ! SeeYou Cloud, code Phyton, heatmaps et couches personnalisées en perspective. Si cela vous inspire, poursuivez votre lecture.

Notre équipe de développement s'efforce de rendre SeeYou.Cloud convivial tout en le dotant de nombreuses fonctionnalités. Nous ajoutons des choses chaque semaine. Aujourd'hui, nous allons vous présenter l'une des fonctionnalités les plus avancées. En analysant un vol, vous vous êtes peut-être dit : "Ce serait cool de voir où se trouvaient les thermiques ce jour-là". Cela vous dit quelque chose ?

Eh bien, avec un peu de créativité et d'effort, vous pouvez créer votre propre couche personnalisée et le visualiser dans SeeYou.Cloud.

Le pilote de l'équipe Naviter, Tilen Ceglar, montre comment il fonctionne sur l'un de ses récents projets.

Après le 16e championnat du monde de parapente en Macédoine, j'ai téléchargé tous mes vols sur SeeYou.Cloud et en les analysant, je me suis rendu compte qu'un jour donné, lors d'une compétition, il y a une centaine d'enregistrements de trajectoires dans la même zone et dans le même laps de temps. Cela représente beaucoup de données concentrées et, à ma connaissance, elles ne sont pas vraiment utilisées. Je me suis donc demandé s'il serait difficile d'en faire quelque chose. Il s'avère que c'est assez simple. Une fois que vous avez converti les pistes IGC dans le bon format, Seeyou.Cloud peut visualiser les données par un simple copier/coller d'une URL.

Couche personnalisée

Pour activer la couche personnalisée : 

  1. Ouvrez le panneau des couches sur la droite
  2. Déployer le menu des couches personnalisées
  3. Collez l'URL du fichier JSON que vous voulez afficher et activez-le. 

Format de fichier

SeeYou.Cloud utilise l'API Mapbox pour visualiser des cartes et des données. Nous n'entrerons pas dans les détails ici, mais assurez-vous de consulter leur site Web. documentation. En bref, le fichier JSON doit contenir deux parties : les données géospatiales au format GeoJSON et les définitions de couches de style Mapbox. 

GeoJSON est un format de fichier standard ouvert permettant d'encoder diverses structures de données géospatiales telles que des points, des polygones, etc. Chaque ensemble de données peut avoir des propriétés supplémentaires telles que le nom, l'horodatage, etc. 

Voici un exemple d'un point gps provenant d'un tracklog au format GeoJSON avec la longitude de 45.79, la latitude de 11.66 et l'altitude de 739 m. A ce point, la vitesse verticale est de 1.01 m/s à 1555765200 unix ou epoch time. 

{
"type" : "FeatureCollection",
"caractéristiques" : [
{
"type" : "Feature",
 "Geometry" :
 {
"type" : "Point",
"coordinates" :
[11.663722, 45.793422, 739]
},
"propriétés" :
{
"vario" : 1.01,
"time" : 1555765200,
...
}
},
...
]
}

Obtenir toutes vos données dans le format GeoJSON est la partie la plus longue. J'ai utilisé un script Python pour traiter tous les journaux de suivi de la 3ème tâche à l'adresse Trofeo Montegrappa 2019. Après avoir fait la moyenne de chaque piste individuelle, nous pouvons différencier les altitudes pour obtenir les vitesses verticales et ne garder que les parties avec des valeurs positives. En rassemblant les moyennes positives des repères de tous les pilotes volant cette tâche, nous avons une estimation très approximative des positions, de la force et des temps des thermiques autour de la tâche. Bien sûr, à ce stade, on pourrait faire beaucoup plus de traitement de données, mais pour les besoins de cet exemple, nous allons rester simples.

Rassembler toutes les corrections gps positives de tous les pilotes génère beaucoup de données, il est donc judicieux de les conserver dans un fichier GeoJSON distinct, qui est appelé dans le JSON sous la forme suivante

{
    "sources" : {
      "task-thermal-source" : {
        "type" : "geojson",
        "data" : "https://raw.githubusercontent.com/tceglar/heat/master/data/bigsample.geojson"
      }
    },

Les données sont étiquetées comme "task-thermal-source". Ensuite, nous devons définir une couche de style pour cette donnée. 

Carte thermique

En général, il existe deux types de cartes thermiques : celles qui visualisent la densité de points sur une zone et celles qui interpolent des valeurs discrètes en produisant un gradient lisse entre elles. Mapbox fournit une fonction de carte thermique qui génère le premier type de cartes thermiques. Même si je préférerais utiliser le second type, nous pouvons tout de même travailler avec lui.

Pour visualiser la carte thermique, nous devons définir un style en ajoutant une couche, l'identifier avec les données sources du fichier GeoJSON et définir le type à "heatmap". Ici, nous pouvons définir les propriétés de la couche, en spécifiant le poids de la carte thermique, son intensité, sa couleur, son opacité, etc. Ces paramètres sont cruciaux pour une bonne visualisation, ils nécessitent donc généralement une certaine itération. 

"couches" : [
      {
      "id" : "task-heatmap-layer",
      "type" : "heatmap",
      "source" : "task-thermal-source",
      "maxzoom" : 15,
      "paint" : {
      "heatmap-weight" : [
      "interpolation",
      ["linéaire"],
      ["get", "mag"],
      0, 0,
      6, 1
      ],
      "heatmap-intensity" : [...]
      "heatmap-color" : [...],
      "heatmap-radius" : [...],
      "heatmap-opacity" : [...]
      }
      }
    ]
  }

Pour voir à quoi ressemble le fichier JSON complet que nous avons préparé, suivez le lien suivant ici.
Nous avons presque terminé. Tout ce qu'il reste à faire est de télécharger votre fichier sur un serveur public (j'ai utilisé github) et de copier le fichier lien dans la couche personnalisée de Seeyou.Cloud.

Nous y voilà. Maintenant nous pouvons voir quels sont les thermiques les plus utilisés par les pilotes. Immédiatement on peut penser à des améliorations pour cette couche comme par exemple visualiser les thermiques non pas en fonction de la densité de pilotes en thermique mais plutôt en fonction de la force du thermique. Ce qui est bien, c'est que tous les outils sont là et faciles à utiliser 🙂 ...  

J'espère que cela vous a encouragé à être créatif et à en faire plus avec les données disponibles. Amusez-vous bien !