Crossing Zones and Sectioning Tracks¶
For each pilot track, we need to work out which zones have been crossed with
cross-zone
and then select from these crossings the tagging of each zone
with tag-zone
. Taking into account the timing restriction of the task we
can section the times and fixes selecting the subset of these that will be
scored with peg-frame
.
Finding Zone Crossings¶
Before we can determine if any zones have been crossed we’ll have to decide how to tell which parts of a track log are flown and which are walked or driven in the retrieve car, possibly even back to goal. [1]
To work out when a pilot is flying, select the longest run of fixes that are not the same allowing for some stickiness when the GPS loses signal. For example we might consider within ± 1m altitude or within ± 1/10,000th of a degree of latitude or longitude to be in the same location and not likely recorded during flight.
flying:
- - - '23'
- Gerolf Heinrichs
- loggedFixes: 4786
flyingFixes:
- 293
- 4775
loggedSeconds: 19140
flyingSeconds:
- 1172
- 19100
loggedTimes:
- 2012-01-14T02:00:05Z
- 2012-01-14T07:19:05Z
flyingTimes:
- 2012-01-14T02:19:37Z
- 2012-01-14T07:18:25Z
Next we need to find and nominate every crossing of each control zone and from among those work out which pair to select as the zone crossing. The same control zone may be crossed multiple times and we need a sequence of crossings ordered in time that fits the task [2].
crossing:
- - - '23'
- Gerolf Heinrichs
- zonesCrossSelected:
- crossingPair: ...
- crossingPair: ...
- crossingPair: ...
- crossingPair: ...
- crossingPair:
- fix: 4714
time: 2012-01-14T07:14:21Z
lat: -33.360479
lng: 147.931166
alt: 377
- fix: 4715
time: 2012-01-14T07:14:25Z
lat: -33.361015
lng: 147.931573
alt: 372
inZone:
- false
- true
zonesCrossNominees: ...
Interpolating Zone Taggings¶
Between the pair of fixes straddling a control zone, we need to interpolate the point at which the pilot is most likely to have crossed and the time of this tagging of the turnpoint.
tagging:
- - - '23'
- Gerolf Heinrichs
- zonesTag:
- inter: ...
- inter: ...
- inter: ...
- inter: ...
- inter:
fixFrac: 4714.903706113713
time: 2012-01-14T07:14:24.614824454852Z
lat: -33.36096338
lng: 147.93153381
alt: 372.48
cross:
crossingPair:
- fix: 4714
time: 2012-01-14T07:14:21Z
lat: -33.360479
lng: 147.931166
alt: 377
- fix: 4715
time: 2012-01-14T07:14:25Z
lat: -33.361015
lng: 147.931573
alt: 372
inZone:
- false
- true
Sorting the list of tagging times, we can show the first and last times, the count of taggings and the pilots.
timing:
- zonesSum:
- 74
- 81
- 73
- 54
- 27
zonesFirst:
- 2012-01-14T02:00:38.517193949596Z
- 2012-01-14T02:43:11.03560045651Z
- 2012-01-14T04:26:05.006295836437Z
- 2012-01-14T06:21:02.137866989328Z
- 2012-01-14T07:14:24.614824454852Z
zonesLast:
- 2012-01-14T03:10:04.202693584608Z
- 2012-01-14T04:19:09.263939298134Z
- 2012-01-14T07:16:54.579375206841Z
- 2012-01-14T08:06:40.357924724524Z
- 2012-01-14T08:12:57.60359403562Z
zonesRankTime:
- - 2012-01-14T02:00:38.517193949596Z
- ...
- - 2012-01-14T02:43:11.03560045651Z
- ...
- - 2012-01-14T04:26:05.006295836437Z
- ...
- - 2012-01-14T06:21:02.137866989328Z
- ...
- - 2012-01-14T07:14:24.614824454852Z
- 2012-01-14T07:31:07.089658199088Z
- 2012-01-14T07:35:18.31771989944Z
- ...
zonesRankPilot:
- - - '51'
- Rob In 't Groen
- ...
- - - '88'
- Martin Sielaf
- ...
- - - '66'
- Jonas Lobitz
- ...
- - - '23'
- Gerolf Heinrichs
- ...
- - - '23'
- Gerolf Heinrichs
- - '100'
- Attila Bertok
- - '66'
- Jonas Lobitz
- - ...
lastLanding: 2012-01-14T08:41:04Z
Sectioning the Scoring Window¶
With the scored section of the track log in hand we can select from the zone taggings those that will be scored and update the task timings [3].
stopWindow:
- lastStarters: []
windowTimes:
- 2018-05-24T10:30:00Z
- 2018-05-24T12:18:00Z
windowSeconds: 6480
- lastStarters: []
windowTimes:
- 2018-05-26T11:00:00Z
- 2018-05-26T12:05:00Z
windowSeconds: 3900
- null
stopFlying:
...
- - - '37'
- Igor Eržen
- scoredFixes:
- 40
- 1323
scoredSeconds:
- 40
- 1323
scoredTimes:
- 2018-05-24T11:19:48Z
- 2018-05-24T11:41:11
...
- - - '37'
- Igor Eržen
- scoredFixes:
- 47
- 4507
scoredSeconds:
- 47
- 4507
scoredTimes:
- 2018-05-26T10:48:26Z
- 2018-05-26T12:02:46
...
- - - '37'
- Igor Eržen
- scoredFixes:
- 45
- 6955
scoredSeconds:
- 45
- 6955
scoredTimes:
- 2018-05-27T10:35:29Z
- 2018-05-27T12:30:39Z
...
timing: ...
tagging: ...
[1] | Some pilots’ track logs will have initial values way off from the location of the device. I suspect that the GPS logger is remembering the position it had when last turned off, most likely at the end of yesterday’s flight, somewhere near where the pilot landed that day. Until the GPS receiver gets a satellite fix and can compute the current position the stale, last known, position gets logged. This means that a pilot may turn on their instrument inside the start circle but their tracklog will start outside of it. |
[2] | On a triangle course early fixes may cross goal. |
[3] | The competition shown in most examples had no stopped tasks so this snippet is from the workings for scoring the 2018 XC Dalmatian Paragliding Open. In this competition the first two of three tasks were stopped. |