Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Scoring for free flight competitions.

License

NotificationsYou must be signed in to change notification settings

GlideAngle/flare-timing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stackcabalpierdocs

Important

This project depends onuom-plugin-0.3.0.0 that was constrained to useghc <= 8.2. A new version,uom-plugin-0.4.0.0, has been released thatworks withghc >= 9 so this project could now be upgraded.

Flare Timing is a reference implementation ofGAPscoring for cross country hang gliding and paragliding racing.

Its command line console apps, one for each step in scoring, write down theirworkings along with their outputs. With these workings we can trace howa pilot's score has been calculated. There's no visual competition editor. Theone file that defines a competition can be generated from an FS database, the*.fsdb file. It includes a web app that can be hosted locally for visualchecks and comparisons with expected or official results. It is possible topublish the data alongside this web app standalone as done atflaretiming, theweb site.

Installation

Download the source, build and install the command line apps withstack or with ghc and cabal that can beinstalled withghcup:

> git clone https://github.com/BlockScope/flare-timing.git --recursive> cd flare-timing/lang-haskell# with stack> stack install# with cabal supplying options --installdir and --overwrite-policy> cabal v2-install all:exes

There's more in thebuilding guide. There's a guide fortesting too.

Usage

Let's get the inputs and outputs from FS, do the scoring and host the complocally.

Start by preparing the FS comp file, the*.fsdb. This will often containsensitive personal information such as birthdays, phone numbers and notes thatwe'll want to avoid publishing. We'll also want some output data for makingcomparisons between flare-timing and FS.

  1. Clean out the sensitive pilot personal stuff we don't need withfs-clean.
  2. Trim away data we don't need withfs-trim.
  3. Grab the optimal route around the tasks found by FS withfs-route.
  4. Grab the arrival times and positions from FS withfs-arrival.
  5. Grab the landouts from FS withfs-effort.
  6. Grab the scores from FS withfs-score.

That's the*.fsdb file done with. From here on, flare-timing deals with thetrimmed XML, the*.trim-fsdb.xml. If we have the track logs we can score thetasks:

  1. Extract the inputs withft-extract-input.
  2. Trace the shortest path to fly a task withft-task-length.
  3. Find flying times withft-fly-time.
  4. Find pairs of fixes crossing over zones withft-cross-zone.
  5. Interpolate between crossing fixes for the time and place where a track tagsa zone withft-tag-zone.
  6. Unpack the*.igc or*.kml tracklogs withft-unpack-track.
  7. Peg the timing window to a reference frame withft-peg-frame.
  8. Index fixes from the time of first crossing withft-align-time.
  9. Discard fixes that get further from goal and note leading area withft-discard-further.
  10. Draw out leading areasft-lead-area.
  11. Mask a task over its tracklogs with the following, run in any order:
  12. Group and count land outs withft-land-out.
  13. Group and count far outs withft-far-out.
  14. Score the competition withft-gap-point.

To get the backend server for hosting the comp data running locally:

Start the server withft-comp-serve.

To host the frontend web app for the comp locally:

  1. Change directory:> cd lang-haskell
  2. Open a try-reflex shell with:> reflex-platform/try-reflex
  3. Build the frontend and start its webpack dev server with:> ../stack-shake-build.sh view-start-ghcjs
  4. Open a browser at the hosted URL, usuallyhttp://localhost:9000/app.html.

Documentation is available online atflare-timing.readthedocs.io and there'saworked example too.

What's Included

The GAP rules have changed over the years. Here are the features thatflare-timing includes or not.

  • Scoring Method
    • GAP
      • GAP2000
      • GAP2002
      • OzGAP2005
      • GAP2007
      • GAP2008
      • GAP2011 tested with:
        Forbes2012, Forbes2014, Forbes2015
      • GAP2013 tested with:
        Forbes2017
      • GAP2014
      • GAP2015 tested with:
        Big Spring2016, Green Swamp2016, Green Swamp Sport2016, Forbes2016, Quest2016
      • GAP2016 tested with:
        Dalmatian2018, Dalby2017, Forbes2018, Forbes2019
      • GAP2018 tested with:
        Dalmatian2019, Italy2019
      • GAP2020
    • PWC (GAP variant)
      • PWC2007
      • PWC2008
      • PWC2009
      • PWC2011
      • PWC2012
      • PWC2013
      • PWC2014
      • PWC2015
      • PWC2016
      • PWC2017
      • PWC2019
    • Linear distance
    • Time-based scoring (TBS)
  • Earth Model
    • FAI sphere
    • WGS84 ellipsoid
  • Distance Method
    • Pythagorus on a UTM plane
    • Haversines on the sphere
    • Vincenty on the ellipsoid
    • Andoyer on the ellipsoid
  • Type of Task
    • Race
    • Elapsed time
    • Open distance (can be declared but not yet scored)
  • Shape of Zone
    • Cylinder
    • Inverted cone (can be defined but treated as a cylinder)
  • Shape of Goal
    • Circle
    • Line
  • Final Glide Decelerator
    • Conical end of speed section (CESS)
    • Arrival altitude time bonus (AATB)
  • Source of Altitude
    • GPS
    • Pressure (QNH)
  • Validities
    • Task (day quality)
    • Launch
    • Distance
    • Time
    • Stop
  • Points
    • Linear distance (reach)
    • Distance difficulty (effort)
    • Arrival position
    • Arrival time
    • Time (speed)
    • Leading
    • Departure
  • Leading Area as a Function of Time and Distance Tweaks
    • Use distance; a = t * d
    • Use distance squared; a = t * d^2
    • Use PWCA weighting; a = w(t, d)
  • Parameter Tweaks
    • Day quality override
    • 1000 points for winner if no pilot made goal
    • 1000 points for winner before day quality applied
    • Double leading points weight
    • Proportional leading points weight if no pilot made goal
    • Adjustable stopped task bonus glide ratio (fixed at 4:1 for PG and 5:1 for HG)
  • Special Cases
    • End of the speed section but not goal
    • Early start
    • Stopped tasks
  • Stopped Tasks
    • Stopped task time as announcement minus score back
    • Requirements checking, goal or duration
    • Score time window
    • Time points for pilots at or after the end of the speed section
    • Distance points with altitude bonus
  • Penalties
    • Absolute
    • Fractional
    • Jump-the-gun factor
    • Jump-the-gun maximum
    • Made ESS but not goal
  • Task Ranking
    • Overall
    • Female
    • Country
  • Competition Ranking
    • Overall
    • Female
    • Country
    • Ties
    • Fixed Total Validity

License

Copyright © Phil de Joux 2017-2020Copyright © Block Scope Limited 2017-2020

This software is subject to the terms of the Mozilla Public License, v2.0. Ifa copy of the MPL was not distributed with this file, you can obtain one athttp://mozilla.org/MPL/2.0/.


[8]ページ先頭

©2009-2025 Movatter.jp