{target.getPhotosHtml('')}

{''=='' ? target.boat.name : target.getSailorsHtml('#fname# #lname#')}

{''=='reverse' ? target.boat.name : target.getSailorsHtml('#fname# #lname#')}

{target.boat.externalUrl=='' ? '' : ' '}

Start on {µ.toDate(target.boatClass.run.date,"FR:dddd dd mmmm ' at ' HH:MM 'FR'")}

Total distance : {µ.toNumber(target.line.dtf," ¤1¤.")} nm

Arrived on {µ.toDate(target.boat.arrival.date,"FR:dd/mm/yyyy ' at ' HH:MM:ss 'FR'")}

In {µ.toRacetime(target.boat.arrival.racetime, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}

{µ.toDate(target.line.date,"FR:HH:MM'FR'")} • {target.line.heading} ° • {µ.toNumber(target.line.speed," ¤1¤.")} kts

{µ.toNumber(target.line.dtf," ¤1¤.")} nm

{µ.toDate(target.line.date,"FR:HH:MM'FR'")} • {target.line.heading} ° • {µ.toNumber(target.line.speed," ¤1¤.")} kts

{µ.toNumber(target.line.dtf," ¤1¤.")} nm+{µ.toNumber(target.line.dtl," ¤1¤.")} nm

PIT

Stealth mode

Not localised

SUS

NYS

DNS

DNC

DNF

DSQ

CNS

Retired

Stealth mode

100%
{target.data.getPhotosHtml('')}

{''=='' ? target.boat.name : target.data.getSailorsHtml('#fname# #lname#')}

{''=='reverse' ? target.boat.name : target.data.getSailorsHtml('#fname# #lname#')}

{target.boat.comment}

Start on {µ.toDate(target.data.boatClass.run.date,"FR:dddd dd mmmm ' at ' HH:MM 'FR'")}

Total distance{µ.toNumber(target.data.line.dtf," ¤1¤.")} nm

Arrived on {µ.toDate(target.boat.arrival.date,"FR:dd/mm/yyyy ' at ' HH:MM:ss 'FR'")}


Race time {µ.toRacetime(target.boat.arrival.racetime, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}

Penalty {µ.toRacetime(Math.abs(target.boat.arrival.penalty), "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}

Bonus {µ.toRacetime(Math.abs(target.boat.arrival.penalty), "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}

Official time {µ.toRacetime(target.boat.arrival.jury, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}

Gap to first {µ.toRacetime(target.boat.arrival.gapToFirst, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}

Gap to previous {µ.toRacetime(target.boat.arrival.gapToPrevious, "[0]d [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")}


Over the orthodromy {µ.toNumber(target.boat.arrival.orthoDistance, " ¤1¤.")} nm / {µ.toNumber(target.boat.arrival.orthoSpeed, " ¤1¤.")} kts

Over ground {µ.toNumber(target.boat.arrival.overgroundDistance, " ¤1¤.")} nm / {µ.toNumber(target.boat.arrival.overgroundSpeed, " ¤1¤.")} kts

Hour retained{µ.toDate(target.data.line.date,"FR:''HH:MM' FR'")}lag

Dist. to finish{µ.toNumber(target.data.line.dtf," ¤1¤.")} nm

Dist to leader+{µ.toNumber(target.data.line.dtl," ¤1¤.")} nm{µ.toNumber(Math.abs(target.data.line.dtlProgress)," ¤1¤.")} nm

Over 4hOver 24h
Heading{target.data.line.heading} °{target.data.line.heading4h} °{target.data.line.heading24h} °
Speed{µ.toNumber(target.data.line.speed," ¤1¤.")} kts{µ.toNumber(target.data.line.dist4h/240*60," ¤1¤.")} kts{µ.toNumber(target.data.line.dist24h/1440*60," ¤1¤.")} kts
overground{µ.toNumber(target.data.line.dog4h/240*60," ¤1¤.")} kts{µ.toNumber(target.data.line.dog24h/1440*60," ¤1¤.")} kts
VMC{µ.toNumber(target.data.line.vmg," ¤1¤.")} kts{µ.toNumber(target.data.line.vmg4h," ¤1¤.")} kts{µ.toNumber(target.data.line.vmg24h," ¤1¤.")} kts
Distance{µ.toNumber(target.data.line.dist4h," ¤1¤.")} nm{µ.toNumber(target.data.line.dist24h," ¤1¤.")} nm
overground{µ.toNumber(target.data.line.dog4h," ¤1¤.")} nm{µ.toNumber(target.data.line.dog24h," ¤1¤.")} nm

At {µ.toDate(target.boat.track.currentLocation.timecode*1000,"FR:''HH:MM' FR'")}

Heading : {target.boat.track.currentLocation.heading}° • Speed : {µ.toNumber(target.boat.track.currentLocation.getSpeed()," ¤1¤.")} nds

At report on {µ.toDate(target.data.line.report.timecode*1000,"FR:''HH:MM' FR'")}

Dist. to finish{µ.toNumber(target.data.line.dtf," ¤1¤.")} nm

Dist to leader+{µ.toNumber(target.data.line.dtl," ¤1¤.")} nm{µ.toNumber(Math.abs(target.data.line.dtlProgress)," ¤1¤.")} nm

Over 4hOver 24h
Heading{target.data.line.heading} °{target.data.line.heading4h} °{target.data.line.heading24h} °
Speed{µ.toNumber(target.data.line.speed," ¤1¤.")} kts{µ.toNumber(target.data.line.dist4h/240*60," ¤1¤.")} kts{µ.toNumber(target.data.line.dist24h/1440*60," ¤1¤.")} kts
overground{µ.toNumber(target.data.line.dog4h/240*60," ¤1¤.")} kts{µ.toNumber(target.data.line.dog24h/1440*60," ¤1¤.")} kts
VMC{µ.toNumber(target.data.line.vmg," ¤1¤.")} kts{µ.toNumber(target.data.line.vmg4h," ¤1¤.")} kts{µ.toNumber(target.data.line.vmg24h," ¤1¤.")} kts
Distance{µ.toNumber(target.data.line.dist4h," ¤1¤.")} nm{µ.toNumber(target.data.line.dist24h," ¤1¤.")} nm
overground{µ.toNumber(target.data.line.dog4h," ¤1¤.")} nm{µ.toNumber(target.data.line.dog24h," ¤1¤.")} nm

PIT

Stealth mode

Not localised

SUS

NYS

DNS

DNC

DNF

DSQ

CNS

Retired

Stealth mode

{target.data.line.rank}

24h/s

DTL Speed over 24h Rank
{target.rank}{sig.getBoat(target.boat).name} {µ.toRacetime(target.time, "[0]j [1]h [2]min [3]s¤[0]h [1]min [2]s¤[0]min [1]s¤[0]s¤¤N/A")} {µ.toRacetime(target.gap2first, "+ [0]j [1]h [2]min [3]s¤+ [0]h [1]min [2]s¤+ [0]min [1]s¤+ [0]s¤¤N/A")} {µ.toNumber(target.sog," ¤1¤.")} nds
Le classement des Ocean FiftyClass40 est l’addition des temps des manches 1 et 2 après jury. Il est donc nécessaire d’attendre une majeure partie des arrivées pour avoir un premier classement général provisoire avant jury.
The Ocean FiftyClass40 rankings are based on adding the time of the first and second legs, after Jury. We are going to have to wait for many boats to finish to get a real idea of the overall provisional rankings (before Jury).

Race tracker

www.geovoile.com


Calculations
René Boulaire


Tracking
Ocean Tracking
www.oceantracking.fr


Weather
D-ICE Engineering
www.dice-engineering.com