+ Le chant du vario +

Forum de parapente

08 Août 2020 - 11:11:18 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre mot de passe ?
Avez-vous perdu votre courriel d'activation?

Connexion avec identifiant, mot de passe et durée de la session
  Site   forum   Aide Groupes Calendrier Identifiez-vous Inscrivez-vous        GPS2GE Balises  
CSC
Pages: [1]   Bas de page
  Envoyer ce fil  |  Imprimer  
Auteur Fil de discussion: igc-xc-score  (Lu 862 fois)
0 Membres et 1 Invité sur ce fil de discussion.
mmomtchev
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ozone Buzz Z6
pratique principale: vol / site
vols: 300 vols
Messages: 37



WWW
« le: 21 Avril 2020 - 15:22:47 »

Bonjour,

J'ai créé un outil de scoring XC pour les traces GPS. Je suis en train d'analyser les traces de la CFD et je me rends compte qu'il y a un bon nombre de vols qui sont mal évalués (surtout les années d'avant, mais j'en ai vu même en 2019).

Pour ceux qui ne sont pas au courant, le scoring XC est un problème très complexe sans solution générique en temps raisonnable. La complexité est en O(n^5) ce qui est complètement prohibitif pour un vol qui va contenir parfois jusqu'au 40,000 points.

A ma connaissance ceci est le premier outil complètement gratuit et open-source. A différence du logiciel de la FFVL qui est approximatif, celui-là est 100% précis et déterministe. Il se base uniquement sur les points du tracé, sans interpolations et changements d'échelle. La contrepartie est qu'il peut être relativement lent. J'ai implémenté un mode solution idéale et un mode exécution en temps borné. Dans le deuxième cas, à la fin, l'outil vous dira s'il a trouvé la meilleure solution possible ou non et ce que c'est l'ordre de grandeur de la différence.

Il est assez performant et il rajoute quelques pourcents en général à la plupart des vols de la CFD. Pour certains, il en enlève  Rigole ... (j'ai l'impression que l'outil de la FFVL fait son calcul à partir d'une version simplifiée des vols).

Pour l'instant j'ai implémenté uniquement le scoring FFVL mais l'outil est modulaire et il est prévu qu'il supporte d'autre méthodes de scoring.
Le scoring FFVL est respecté à la lettre, y inclus la condition qui figure dans le règlement, que les distances doivent être mesurée en prenant en compte pas seulement la courbature de la Terre mais aussi l’aplatissement des pôles (ellipsoïde WGS84) qui ne donne qu'une différence de 500m pour 500km.

L'outil ne dispose pas de son propre interface de visualisation et il est prévu pour qu'il puisse être intégré dans un autre logiciel.

https://github.com/mmomtchev/igc-xc-score
Signaler au modérateur   parapente Enregistrée

--
https://www.velivole.fr
Le site météo gratuit
giloutho
Animateur
plouffeur(se)
*
Hors ligne Hors ligne

Aile: En attente
pratique principale: vol / site
Messages: 27



« Répondre #1 le: 21 Avril 2020 - 19:24:44 »

 bravo Bravo pour cette excellente initiative...

Je viens de tester vite fait, c'est très prometteur. Il n'y a effectivement pas d'outil open source disponible. Je te contacte en MP pour un échange technique sur ce magnifique projet.
Signaler au modérateur   parapente Enregistrée
sylvain_p
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ion 5 Light
pratique principale: apprends à voler
vols: Quelques vols
Messages: 33



WWW
« Répondre #2 le: 22 Avril 2020 - 09:51:42 »

Sympa !!! Faudrait proposer à flyxc.app de l'intégrer  pouce
Signaler au modérateur   parapente Enregistrée
mmomtchev
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ozone Buzz Z6
pratique principale: vol / site
vols: 300 vols
Messages: 37



WWW
« Répondre #3 le: 22 Avril 2020 - 13:40:46 »

Même si mon outil est systématiquement plus précis que celui de flyxc.app (sauf éventuels bugs, il est encore très jeune), celui de flyxc.app a l'avantage de trouver une solution très rapidement et je me demande si, pour cette utilisation-là, son algorithme n'est pas pour l'instant le meilleur choix.

Si j'arrive à faire d'en sorte que le mode exécution en temps borné avec un temps limité à, disons 10 secondes, soit systématiquement meilleur que le sien, alors oui. Mais pour l'instant je crains que ce n'est pas encore le cas.

Par exemple le record de distance de France, vol D3P en diagonale par rapport à l'axe nord-sud (le point faible de mon algorithme actuel) est évalué à 1km de moins que l'évaluation officielle en 10s (solution rapide) et à 150m de plus en 5 minutes (solution garantie optimale).

Je ne sais pas comment fonctionne flyxc.app, mais à vue de nez, il réduit le nombre de points du vol avant de lancer le calcul.

Je viens d'officialiser la 1.0 avec un traitement beaucoup plus rapide des vols D3P.

Sympa !!! Faudrait proposer à flyxc.app de l'intégrer  pouce

Signaler au modérateur   parapente Enregistrée

--
https://www.velivole.fr
Le site météo gratuit
sylvain_p
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ion 5 Light
pratique principale: apprends à voler
vols: Quelques vols
Messages: 33



WWW
« Répondre #4 le: 22 Avril 2020 - 15:22:37 »

C'est pas flyxc qui calcule les points c'est directement la FFVL et en amont, sûrement une fois pour toute à l'upload de la trace (cf plus bas).
Pour le calcul du score tout se passe là (en fonction de la "league" ffvl, xccontest...) : https://github.com/vicb/flyxc/tree/master/frontend/src/viewer/logic/score

Donc pour ceux qui veulent utiliser flyxc en standalone t'auras pas le scoring automatique, à moins de tracer toi même les points
Victor pourra m'arrêter si je dis des âneries


Digression technique
Pour les points de calcul le chemin est passé directement dans l'url de flyxc intégré dans la iframe de la cfd sous le paramètre p qui est chemin encodé/décodé par l'API GMaps, exemple:
https://flyxc.app/?track=https%3A%2F%2Fparapente.ffvl.fr%2Ftrackserver%2Fffvl_igc_files-189574-6-1356999-raw.igc&location=&p=%7B_roGspni%40fxrAn_%7EAsjkDdh%5Cr%60qAogaCr%7B%40hmA&l=fr&s=29
p vaut {_roGspni@fxrAn_~AsjkDdh\r`qAogaCr{@hmA

ce qui se décode en :(44.6619, 6.9609000000000005),(44.2329, 6.47442),(45.1154, 6.72895),(45.102270000000004, 7.395910000000001),(45.09257, 7.383380000000001)

Ensuite flyxc calcule la longueur totale de chaque segments (encore via l'API GMaps), ce qui donne la distance totale, puis calcul le scoring via les classes données plus haut
« Dernière édition: 22 Avril 2020 - 15:38:25 par sylvain_p » Signaler au modérateur   parapente Enregistrée
mmomtchev
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ozone Buzz Z6
pratique principale: vol / site
vols: 300 vols
Messages: 37



WWW
« Répondre #5 le: 22 Avril 2020 - 16:58:11 »


Ah, je ne savais pas que flyxc aussi était sur github. Mais de ce que je vois, il y a bien un optimiseur de distances dedans :
https://github.com/vicb/flyxc/blob/master/frontend/src/viewer/logic/score/measure.ts

Je vois aussi un moteur d'interpolation, ce qui confirme mon hypothèse.

Après, peut-être le scoring c'est la FFVL qui le fait?

Est-ce que son auteur passe ici sur le forum? Je vais peut-être le contacter en direct. Merci en tout cas.

C'est pas flyxc qui calcule les points c'est directement la FFVL et en amont, sûrement une fois pour toute à l'upload de la trace (cf plus bas).
Pour le calcul du score tout se passe là (en fonction de la "league" ffvl, xccontest...) : https://github.com/vicb/flyxc/tree/master/frontend/src/viewer/logic/score

Donc pour ceux qui veulent utiliser flyxc en standalone t'auras pas le scoring automatique, à moins de tracer toi même les points
Victor pourra m'arrêter si je dis des âneries


Digression technique
Pour les points de calcul le chemin est passé directement dans l'url de flyxc intégré dans la iframe de la cfd sous le paramètre p qui est chemin encodé/décodé par l'API GMaps, exemple:
https://flyxc.app/?track=https%3A%2F%2Fparapente.ffvl.fr%2Ftrackserver%2Fffvl_igc_files-189574-6-1356999-raw.igc&location=&p=%7B_roGspni%40fxrAn_%7EAsjkDdh%5Cr%60qAogaCr%7B%40hmA&l=fr&s=29
p vaut {_roGspni@fxrAn_~AsjkDdh\r`qAogaCr{@hmA

ce qui se décode en :(44.6619, 6.9609000000000005),(44.2329, 6.47442),(45.1154, 6.72895),(45.102270000000004, 7.395910000000001),(45.09257, 7.383380000000001)

Ensuite flyxc calcule la longueur totale de chaque segments (encore via l'API GMaps), ce qui donne la distance totale, puis calcul le scoring via les classes données plus haut

Signaler au modérateur   parapente Enregistrée

--
https://www.velivole.fr
Le site météo gratuit
mmomtchev
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ozone Buzz Z6
pratique principale: vol / site
vols: 300 vols
Messages: 37



WWW
« Répondre #6 le: 23 Avril 2020 - 14:12:00 »


J'ai bidouillé une démo rapide sur https://www.meteo.guru/xc-score

Le moteur tournera dans votre navigateur, la beauté du Javascript fait que le CPU qui est utilisé pour chercher une solution optimale est celui de votre ordinateur -> c'est donc celui qui l'utilise qui paye la facture (d'électricité et le reste).

Dès que j'ai fini le nettoyage des sources qui ont servi à fabriquer la démo, je vais les mettre en ligne
Signaler au modérateur   parapente Enregistrée

--
https://www.velivole.fr
Le site météo gratuit
cargol
débutant(e)
**
Hors ligne Hors ligne

Aile: Depuis 1989 ... Carlit, Arbizon, Rave, XMX,... Aspen 1 .2. 3. Omega8,.. Aspen 4, Elan.
pratique principale: cross
vols: Plus que ça ! vols
Messages: 17


Joseph Giral


WWW
« Répondre #7 le: 23 Avril 2020 - 16:14:54 »

Vraiment du beau boulot de codage et d'analyse.
Chapeau.
 soleil  soleil
Signaler au modérateur   parapente Enregistrée

Tout ce que je donne personne ne peut me le prendre. Carpe Diem.
sylvain_p
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ion 5 Light
pratique principale: apprends à voler
vols: Quelques vols
Messages: 33



WWW
« Répondre #8 le: 23 Avril 2020 - 16:46:45 »

y'a pas à dire, avec un petit front ça claque quand même plus! Bravo pouce
Signaler au modérateur   parapente Enregistrée
mmomtchev
plouffeur(se)
***
Hors ligne Hors ligne

Aile: Ozone Buzz Z6
pratique principale: vol / site
vols: 300 vols
Messages: 37



WWW
« Répondre #9 le: 25 Avril 2020 - 19:48:58 »

Je viens d'officialiser la 1.1.1 qui apporte

  • support des règles XContest en plus des règles FFVL
  • traitement 4x plus rapide des vols en ligne droite en diagonale (le record de France, le pire vol possible pour cet algo passe à 20s)
  • externalisation de la configuration des règles de scoring, maintenant il est relativement facile à rajouter un autre système de scoring sans toucher au code
  • corrections de bugs
  • intégration plus facile avec les logiciels non-JS (mode stdin/stdout)

Je considère que la phase développement/optimisation est finie, maintenant il reste à trouver et à corriger tous les éventuels bugs  très heureux
Signaler au modérateur   parapente Enregistrée

--
https://www.velivole.fr
Le site météo gratuit
Pages: [1]   Haut de page
  Envoyer ce fil  |  Imprimer  
 
Aller à:  

parapente gratuit
Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.19 | SMF © 2006, Simple Machines XHTML 1.0 Transitionnel valide ! CSS valide !
Page générée en 0.268 secondes avec 22 requêtes.