Giter VIP home page Giter VIP logo

fai-airscore's People

Contributors

biuti avatar geoffwong avatar jek58 avatar kuaka avatar philderbeast avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fai-airscore's Issues

Bug: Manually assigning a waypoints to a pilot screws LPs

Seems that pilots is seen as at the manually checked waypoint immediately, so gets full LPs.
Probably there's a routine in LPs calculation where I looks in pilots distance from goal, and manually checked pilot gets waypoint distance from the beginning.

over 1000 points in a task

Just testing tracklog submission from xcontest I found that for meduno task, with only 3 pilots submitted we get over 1000 points. Realistically there will be always more than 3 pilots.. I don't know if the low number has caused this but I would think 1000 ceiling would be the case no matter the number of pilots.

Jump the start

cannot find where to disable in the scoring or task settings.
AFAIK there's no paragliding scoring using it, so probably we drop it already if comp = pg
and put a with in the hg options

Import comp twice, same short name.

If tracks are picked up from disk for scoring, such as from
data/tracks/2017/dalbig17/t1_20170409 then is there no way to import the same comp a second time and to score it using a different set of tracks?

I've imported the same comp twice and both have the short name of "DALBIG17".

Bug: bug or setup. Routemap not displaying map

showing the map, without tracks does not work for Gemona. Strange thing is that it works for tasks at Santa/Cavallaria.. this works on server copy and my copy. They are 2 different comps/tasks with only the location in common. Is broken for Gemona on server and my copy.

Wondering if the waypoint file is the difference. Can't see an obvious difference in comp,region.task tables.
The other difference is that in both cases there are no tracks uploaded for cavallaria, while Gemona has tracks.
Cavallaria:
cavallaria
Gemona:
gemona

Logging for success and failure of command line scoring.

Please add some logging to say whether the command line scoring works or not. I'm currently scoring task 182 that exists but suspect that this is failing as I'm not seeing any outputs in the expected place at data/results. The task 999 does not exist.

sid@161f45eaf862:/app/airscore/core$ python task_full_rescore.py 182
sid@161f45eaf862:/app/airscore/core$ python task_full_rescore.py 999

task not set message

When submitting a track to a task that is not yet set, message apears that the track is invalid (as track is being verified against the task, which is blank). Would be better to:
1)check if task is set
2) if not display message that track has been uploaded and it will be processed as soon as the task is set.

Display turnpoints made for individual pilot tracks

It would be helpful for pilots when checking their track we display which turnpoints they made, we already display the distance and the track on the map but especially with cat's cradle tasks it can be hard to see if turnpoints were made. This would allow them to siganal an problems with the track more easily.

track plot - colours

when adding a second (or subsequent) track to the map, it would be useful to use a different colour for the flight so the 2 (or more) tracks can be easily distinguished.

Last update from Xcontest info for users

Useful to have infobox or info on webpage of scores for when the lastupdate was run.
Can get xcontest script to write to a table taskid and date time of update.

Old Task scoring

Commented a lot of date checks in code, still seems not possible to upload tracks for old tasks.
I'll try to catch the problem in the next days.

Tolerances

I am thinking about implementing tolerances.
Let me know if you agree:
with tolerances > 0, every kind of waypoint a part from goal line and t/o is true if
radius -tolerance < coord < radius + tolerance
This should be true, isn't it?

Higher level homepage?

May be useful to have a higher level that comp on the homepage. i.e. group the comps togeather - Lega - Race to goal - Other.

thoughts?

Error processing track - provide useful feedback

When processing a track and an error happens (something wrong with igc) there is no useful information. This will be a lot easier to provide when we use the flask front end. Otherwise we could use the logging to find out why the track could not be processed.

ImportError: cannot import name 'url_encode' from 'werkzeug'.

I followed the steps in the readme on the formula_dev branch and hit a problem:

> docker-compose up flask-dev
# localhost:5000

flask.cli.NoAppException
flask.cli.NoAppException: While importing "autoapp", an ImportError was raised:

Traceback (most recent call last):
  File "/home/sid/.local/lib/python3.8/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/app/autoapp.py", line 3, in <module>
    from airscore.app import create_app
  File "/app/airscore/app.py", line 8, in <module>
    from airscore import commands, public, user
  File "/app/airscore/public/__init__.py", line 3, in <module>
    from . import views  # noqa
  File "/app/airscore/public/views.py", line 15, in <module>
    from airscore.extensions import login_manager
  File "/app/airscore/extensions.py", line 10, in <module>
    from flask_wtf.csrf import CSRFProtect
  File "/home/sid/.local/lib/python3.8/site-packages/flask_wtf/__init__.py", line 17, in <module>
    from .recaptcha import *
  File "/home/sid/.local/lib/python3.8/site-packages/flask_wtf/recaptcha/__init__.py", line 2, in <module>
    from .fields import *
  File "/home/sid/.local/lib/python3.8/site-packages/flask_wtf/recaptcha/fields.py", line 3, in <module>
    from . import widgets
  File "/home/sid/.local/lib/python3.8/site-packages/flask_wtf/recaptcha/widgets.py", line 5, in <module>
    from werkzeug import url_encode
ImportError: cannot import name 'url_encode' from 'werkzeug' (/home/sid/.local/lib/python3.8/site-packages/werkzeug/__init__.py)

FTV Calculation

PWCA calculates FTV against winner scores instead of task validity.
It has some advantages in "strange" situations, and measures pilots with pilots instead of a virtual maximum performance.
I'm looking into it to add this calculation case scoring is eq PWC

full rescore

need to implement a full rescore script and connect to front end

How to match tasks to Xcontest sites or takeoffs

To download IGC files from Xcontest we need to send a SITE or TAKEOFF parameter.
see here.
If we use site it is probably easier to manage but we could get more igc files from freeflyers. Takeoff is more specific.

we have a few possibilities:
Option 1
use competition location to define the SITE and get the site_id from a (new) table in our database.
Problem: competition location is free text. So we would need to change to a drop down list I guess.

location

Option 2
use the waypoint file to determine the SITE (called Region on the task)
Problem: we use the same file for more than one SITE sometimes such as Santa E/Cavallaria
We could save the same waypoints twice with different names.

region

Option 3
Map all the DXX waypoints (takeoffs) to the XContest takeoffs in a (new) table.
look up the takeoff (called 'start') in the task to find the takeoff_id in xcontest.
Problem: This is probably an error prone solution.. needs more setup when we upload waypoint files.

Option 4..
something else.

Takeoff waypoint - pilot repassing over takeoff and "restarting" flight

Takeoff waypoint - when set to same waypoint and same radius as SSS a pilot that later flew back to takeoff had his track counted from the second time (thereby giving him a very small distance).. Probably a rare issue (SSS was 400m!) so perhaps to keep in mind rather than "bugfix" if it is not simple.

Track Distance calculation for LoP

So, for every point of my track, I check it against the next waypoint to see if I make it, that I check if my total distance increases, and compute LoP.
I think we should check distance to goal along the optimized route, and to do so we should check if distance deceases from next wpt opt point on the cylinder.
I did not check the code but I'm quite sure this is done differently.

Export to FS DB format.

https://github.com/kuaka/airscore/blob/6456bb9d69e9a4fefd280a746bf977ffbf3e3e51/cgi-bin/fsdb.py#L3-L4

If we had export to *.fsdb, the XML of FS, then we could do visual comparisons to a reference implementation of GAP, geoffwong/airscore#3 (comment)

The *.fsdb file contains inputs and outputs (the scores) as well as some other data of interest in checking the scores. If you are able to export from airscore to this FS XML format then flare-timing can be used to visually check those scores, as I've done for the 2018 XC Dalmatian Paragliding Open. For that comp, if you select a task, then under the [Score] tab you'll see tables and in these the black columns show values picked up from the *.fsdb file and the difference to those same values as calculated by flare-timing, acting here as a reference implementation.

Respect folder layout of imported comp tracks.

If we're importing comps from *.fsdb then can we opt to respect the folder layout of the tracks. Here's an example for Dalby 2017:

> pwd
/.../airscore/airscore/data/tracks/2017/dalby
> tree . --charset -d -L 1
.
|-- day\ five
|-- day\ four
|-- day\ one
|-- day\ seven
`-- day\ six

5 directories, 0 files

This would enable us to copy as-is the tracks when scoring with FS and scoring with airscore.

Takeoff waypoint - should we be verifying track against as per other waypoints or not?

As it stands, the takeoff waypoint has to have a radius in the task definition as we check flight has "exited" this waypoint just like a normal waypoint. if the radius is too small we risk invalidating some flights.
As Takeoff is used for distance calcs (and xcontest) we need it obviously but I wonder if we should be ignoring it for task verification.

I had a case of a pilot switching on his instrument just after takeoff and invalidating his flight (only by a few meters) (he had a second instrrument so all ok in the end) but I wonder if it is necessary to check this "exit".

start of flight outside takeoff

Copy previous task - date issue

when copying a previous task, the timings (window open /close, start etc) are also copied, however the date is part of time, we should ignore the date of the previous task and use the date of the new task. Easy to change once copied but perhaps easy to miss.

Updating wing causes scoring issue

Possibly only related to RTG scoring. When updating pilots wing in task sometimes pilot score goes to zero. Full rescore needed to resolve. - something to do with "UP" button

Tracks not recognized as flights

Seems that the problem is file size, over 1MB more or less generates error. I parsed very long log to 1 row every 5 or ten, and it works.
However, if we will consider mostly XC-Track / Contest tracks, that shouldn't be a factor.

Bug: no LP for pilots that land out

zero leadpoints(under pwc LP forrmula) for pilots not making ESS. could be related to manually awarded problem. Also looking at track_verify_sr.pl line 1037 looks like LP calc, for land out pilots,is based on task end time and not last pilot in goal time..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.