Releases: GlideAngle/flare-timing
Releases · GlideAngle/flare-timing
Moved Working Files
- Moved the file
.flight-system/clean-fsdb.xml
back to the root folder with
as*.clean-fsdb.xml
. Moved the trimmed XML to
.flare-timing/trim-fsdb.xml
. - For comparisons, lookup pilots by ID and not by name.
- When parsing extra reach from
*.fsdb
avoid zeroing it or making it less
than reach. - Split
fs-filter
intofs-clean
andfs-trim
. - Split
ft-fly-time
fromft-cross-zone
. - Invert the command/task folder order to have task/command such as
.flare-timing/task-1/align-time/*.csv
. - Break up working files so that they are per-task, not for the whole comp.
- Create intermediate folders for workings, if missing.
- Show the comparison columns in the table that goes with the time plot.
- Parse
//FsScoreFormula/@use_flat_decline_of_timepoints
from*.fsdb
and
set the corresponding exponent as^(2/3)
or^(5/6)
for the time points
distribution. Draw the corresponding line of this equation on the time plot. - Parse
//FsResult/@points
as double rather than int. - Parse
//FsTaskShortestPath
deep, at any level of nesting withinFsTask
.
Ess ≠ Goal
- Fixed a space leak and made some of the commands faster by making use of
parallel-io and using
pragmas; INLINE, INLINABLE and SPECIALIZE. - Removed the
--dir
option from all commands. The current working directory
is used instead. - The
mask-track
command has been split up into smaller commands;
mask-arrival
,mask-bonus
,mask-effort
,mask-lead
andmask-reach
.
Each deals with separate aspects of masking. - Avoid calculating impossible means when the data set is empty. These were
seen as huge negative numbers before the fix. - Show the flying and scored fixes for pilots that have had their tracks
downloaded for the map. - Show the effective reset in the penal table when the pilot is too early.
- Move the penal tab to the top-level with its own children; Jump-the-Gun
& Auto, Ess ≠ Goal and Manual. - Under Basis | Pilots, put each kind of penalty in its own panel.
- Show toll, rebate and fee to explain how the points after applying the
jump-the-gun penalty are not less than minimum distance. - Score the penalty for making Ess but not making goal.
- Show tasks stopped and cancelled in the task list.
- Only show the extra reach via glide column for stopped tasks.
- Don't dislay a chunk distance in the effort table for pilots that don't land
out. - Parse
FsCompetition/@utc_offset
whether or not it has a leading sign for
both integers and floats. - Fixed a bug where looking up a chunk for effort failed because of rounding
then the misplaced pilot got zero points for effort. - Only the
*.fsdb
and folders for track logs are left in the root folder since
the input, output and working files of flare-timing moved to the dot folder
.flare-timing
. Likewise files for comparison have moved from the root to
.flight-system
and.air-score
. Add aCompare
top-level tab for the
comparisons between scores.
Plot Selected Pilots
- Zero seconds per point is used by FS as a sentinel value to turn off the jump
the gun penalty. Be aware of this and calculate the penalty only if the
seconds per point are positive. - Select the last crossing of the last start gate for the start crossing.
- Exclude start zone crossings that come after tagging subsequent zones.
- Selecting table rows will highlight points for those pilots in the scatter plots.
- Restrict function-plot to v1.19.1 as later versions introduce breaking changes.
- Use square of leading area when calculating leading points except for:
- GAP2000
- GAP2002
- OzGAP2005
- GAP2007
- GAP2008
- GAP2009
- GAP2011
- GAP2012
- GAP2013
- GAP2014
- GAP2015
- Use positive numbers for demerits and negative numbers for penalties.
- Build the comp server with cabal by relaxing constraints on HUnit.
- Commands dealing with FSDB extraction already had
fs-
prefixes. Do the same
for flare-timing, usingft-
prefixes for these commands.> cabal install all:exes --overwrite-policy=always --installdir=$HOME/.cabal/bin ... Symlinking 'fs-arrival' Symlinking 'fs-effort' Symlinking 'ft-extract-input' Symlinking 'ft-land-out' Symlinking 'fs-filter' Symlinking 'ft-discard-further' Symlinking 'ft-cross-zone' Symlinking 'ft-tag-zone' Symlinking 'fs-score' Symlinking 'ft-mask-track' Symlinking 'ft-gap-point' Symlinking 'ft-task-length' Symlinking 'ft-align-time' Symlinking 'ft-peg-frame' Symlinking 'ft-area-step' Symlinking 'fs-route' Symlinking 'ft-unpack-track' Symlinking 'ft-build Symlinking 'ft-comp-serve
- Show penalties with a leading
+
or-
prefix for additive, multiplicative
and reset penalties to indicate whether it's a bonus or penalty.
Weighted Leading Area
- Show milliseconds if a pilot jumped the gun by less than a second.
- Display ###-pilot or ####-pilot dependening on the pilot id width.
- Add a marker to the nearest vertex on the nearest track line when the map is
clicked. Use the default marker for these. - Show all crossings in a layer on the map, the nominees. Use different marker
icons for different items. Use unfilled circles for crossings and filled
circles for taggings. - Pick the first crossing of the start gate taken.
- Better detect whether a start is an entry or an exit.
- Associate crossings with start gates and pick the last crossing of the last
start as the start. - Show start nominee crossings for each start gate and the start crossing as
separate layers on the map.
Leading Area Plot
- Show a plot of the leading area, selecting up to five pilots at once. Include
the extra area added after landing and another potential area hinted at in FS
code comments, the area added before the start. Show the parts of the leading
area in the legend of the plot. - Show the leading area with thousands separator and units of
km s
orkm^2 s
. - Show the leading area difference as actual value over expected value minus one.
- Use distance or distance squared for the leading area.
- Show a table of tasks instead of a list of tasks.
Open API Specification
- Added an OpenAPI specification (OAS) for the server.
Arrival Time Points and Start Too Early
- Score hang gliding comps using arrival time points.
- Document for stopped tasks at least that unpack-track needs to be run before
peg-frame. - Color code closeness to scores of FS in the task list using green for less
than 2 points, yellow for less than 8 points and red for greater than that in
the mean of the differences in the total points. - Do not default to award arrival position points when no kind of arrival
points are allowed. - Award pilots without a tracklog effort for minimum distance.
- Add a table showing jump the gun penalties and how fractional, point and
reset penalties are applied and the final points are rounded. - Consistently strike out reach when the pilot was awarded minimum distance,
whether that pilot had a track or not.
Jump the Gun
- Show the task number before the task name in the breadcrumb.
- Allow early tagging if within the jump-the-gun window.
- Don't show all the turnpoint names in the task detail if they will overflow
the header. - Add a ruler to the map.
- Use zones enlarged by give, the fractional and absolute tolerance added to
a zone's radius to give some relief to pilots with vario inaccuracy. - Show the mean and standard deviation in the difference of task points
compared to the expected points from FS. - FS renamed
FsTaskShortestRoute/FsTurnpoint
to
FsTaskShortestPath/FsPathVertex
. Updated the*.fsdb
parsing accordingly.
Earth, Through and Through
- Use the Earth model and Earth math throughout the scoring.
- Avoid skipping some B records (position fixes) when parsing
*.igc
files. - Show the effective inside and outside border of turnpoints with tolerance
applied. - Allow a crossing if one fix passes the time check but the other does not.
Validity Compared
- Compare task validities side-by-side with those of FS.
- Show the optimal task route from FS on the map.
- Compare optimal task route from FS with those of FS in the Geo table.
- Show the extra distance from glide above goal in the score distance table.
- Compare reach and effort with linear and difficulty from FS in the score
distance table, in the tables beside the reach and effort plots.
.
└── points
├── distance_points
│ ├── linear_distance_points
│ └── difficulty_distance_points
├── time_points
├── arrival_points
├── leading_points
├── departure_points
└── penalty_points
- Handle glitches in the ordering
*.igc
file B record times. Time is meant to
only increment during the day as fixes are logged. Discard times going
backward less than an hour and roll over the day when the time goes backwards
more than that. There's no rule in the GAP document about this but that is
what FS does. - Exclude zone crossings that fall outside opening times of the zones.
- Workout task difficulty using relative difficulty from every chunk of the
task, not just those where a pilot has landed. - Add score tables for effort, speed, time and arrival. In these, sort the rows
by decreasing order of the relevant points. - Include the pilot race number with the pilot in each ###-Pilot column of
tables. - Enlarge the split plot.
- Squish and stretch the leading plot to make room for the width of the
associated table. - Switch to using the B612 font, designed for use in aircraft cockpit screens.
- Add fs-effort, a command line tool for extracting the landings, chunking and
relative difficulties from a competition*.fsdb
. - Show two more decimal places when point difference is +0.0 or -0.0.
- Clean and trim elements and attributes of the
*.fsdb
before use with
fs-filter
, a new command line app that writes*.clean-fsdb.xml
and
*.trim-fsdb.xml
. The cleaned file has sensitive information removed that
would allow its publication. The trimmed file is the minimal set required by
flare-timing, taking some data as inputs for scoring and other data for
comparisons of the scores.