Closed rgrunbla closed 2 years ago
Bonjour Monsieur,
C'est pas une erreur d'affichage, mais un type d'erreur qui existe dans l'algorithme CPR (encodage de la position dans les messages binaires) L'existence de ces erreurs est détaillé dans le 1090MHz book de Junzi Sun à la page 59-60 https://mode-s.org/decode/book-the_1090mhz_riddle-junzi_sun.pdf
Malheureusement, les méthodes de corrections qu'il propose sont compliquées à mettre en oeuvre dans notre programme pour un certains nombre de raison. Toute fois j'ai mis en place une technique qui je l'espère doit limiter ces erreurs, et qui n'est pas proposé dans ce book. Les résultats ne sont pas probants, mais je vais changer les marges de la méthodes de correction dans l'espoir d'améliorer ces résultats.
@rgrunbla
Je note que dans le livre, il est noté "In rare cases, wrong positions can be calculated":
Ces problèmes semblent tout sauf rares dans votre implémentation, il doit à avoir quelque chose à corriger quelque part (si c'est bien de ces pages dont il est question).
J'ai déjà relu le code plusieurs fois. Cependant, pour revenir à l'algorithme CPR, on a besoin d'un message de 2 types différents pour décoder la première position, puis les positions suivantes sont calculées à partir d'un nouveau message mais aussi de la position précédente. Il suffit donc que notre première position décodée soit erronée pour que toutes les suivantes en subissent la conséquence.
Dans la première version du programme, on utilisait systématiquement deux messages (et non la dernière position), donc quand une erreur arrivait, on voyait l'avion faire un "bond" avant de revenir à une position cohérente, donc on pouvait constater que ces erreurs sont bien rares.
Je viens d'ouvrir votre carte et je vois des problèmes sur au moins trois avions (notamment, ils font bien des bonds):
Je maintiens donc mes observations, ce problème ne semble pas "rare". D'ailleurs, ça semble capter assez loin ;)
En tout cas, ça mérite des explications dans votre rapport, corrigé ou pas !
J'ajoute un petit commentaire pour dire que notre méthode d'élimination des aberrations de positions vient d'être installée sur le git. Si une position absurde est crée, on la détecte au bout de quelques positions décodes à l'aide de la route magnétique que suit l'avion.
La route suive par l'avion (en degré) nous est directement transmise par ce dernier dans messages binaires de type vitesse. L'idée a été de calculer en plus cette route grâce aux deux dernières positions connues. Comme lorsque la trajectoire est erronée on observe des oscillations, alors une différence trop importante entre la route calculée et la route réelle transmise par l'avion permet d'identifier les aberrations.
Hello,
Vous avez des bugs d'affichages (ou plus en amont, de réception, …), êtes vous au courant ?