OutSail CSV Format

OutSail CSV is the universal import format for OutSail.pro. If your device isn't directly supported, you can create a CSV file following this specification and upload it like any other session file.

Quick Start

The simplest valid OutSail CSV needs just three columns:

timestamp,lat,lon
2024-07-15T10:30:00Z,54.3520,18.6466
2024-07-15T10:30:01Z,54.3521,18.6468
2024-07-15T10:30:02Z,54.3522,18.6470

Speed over ground will be automatically derived from GPS positions when not provided.

Full Column Reference

Column Unit Required Description
timestamp ISO 8601 or epoch ms Time of each data point
lat decimal degrees Latitude (WGS84)
lon decimal degrees Longitude (WGS84)
sog_kn knots Speed over ground
hdg_true degrees 0–360 True heading (compass)
cog degrees 0–360 Course over ground (GPS)
sow_kn knots Speed over water
tws_kn knots True wind speed
twd degrees 0–360 True wind direction
aws_kn knots Apparent wind speed
awd degrees 0–360 Apparent wind direction (global)
awa degrees 0–360 Apparent wind angle
heel degrees Heel angle
trim degrees Pitch / trim angle

Include only the columns your device provides — all columns beyond the three required ones are optional.

Full Example

timestamp,lat,lon,sog_kn,cog,hdg_true,tws_kn,twd,aws_kn,awa,heel,trim
2024-07-15T10:30:00Z,54.3520,18.6466,6.2,185,182,12.4,210,15.1,42,8.5,1.2
2024-07-15T10:30:01Z,54.3521,18.6468,6.4,186,183,12.3,211,15.0,41,8.3,1.1
2024-07-15T10:30:02Z,54.3522,18.6470,6.3,185,182,12.5,210,15.2,43,8.6,1.3

Timestamp Formats

The timestamp column accepts two formats:

  • ISO 8601 (recommended): 2024-07-15T10:30:00Z or 2024-07-15T10:30:00.500+00:00
  • Epoch milliseconds: 1721039400000

All timestamps should be in UTC. If a timezone offset is not specified, UTC is assumed.

Coordinates

  • Use decimal degrees (e.g. 54.3520, not 54°21'07.2")
  • WGS84 datum (standard GPS)
  • Latitude: positive = North, negative = South
  • Longitude: positive = East, negative = West

Speed Units

All speed columns use knots:

  • sog_kn — Speed over ground
  • sow_kn — Speed over water (from paddle wheel or ultrasound sensor)
  • tws_kn — True wind speed
  • aws_kn — Apparent wind speed

If your device reports in m/s, multiply by 1.9438 to convert to knots. If in km/h, multiply by 0.5400.

Wind Angles and Directions

All angular values use degrees in the 0–360 range, measured clockwise from true North.

Apparent Wind Angle (AWA)

AWA is the angle between the boat's bow and the apparent wind direction, measured clockwise from the bow:

  • = wind blowing directly from ahead (into your face)
  • 90° = wind from the starboard beam
  • 180° = wind from directly behind (dead run)
  • 270° = wind from the port beam
         0° (head-to-wind)
          ↑ bow
    315° ╱   ╲ 45°
        ╱     ╲
  270° ←  boat  → 90°   (starboard)
  (port)  ╲     ╱
    225° ╲   ╱ 135°
          ↓
        180° (dead run)

Apparent Wind Direction (AWD) — Global

AWD is the compass bearing from which the apparent wind blows, measured in true degrees (0–360). For example, 270° means the apparent wind is coming from the West.

If your instruments give you AWA and heading, you can calculate global AWD:

AWD = (heading + AWA) mod 360

True Wind Direction (TWD)

TWD is the compass bearing from which the true wind blows. For example, 180° means a southerly wind (wind blowing from South to North).

Calculating True Wind from Apparent Wind

If your device provides only apparent wind (AWS, AWA) and boat speed, you can derive true wind:

True Wind Speed (TWS):
    TWS = √(AWS² + SOG² − 2 × AWS × SOG × cos(AWA_rad))
    where AWA_rad = AWA × π / 180

True Wind Angle (TWA, local):
    y = AWS × sin(AWA_rad)
    x = AWS × cos(AWA_rad) − SOG
    TWA = atan2(y, x) × 180 / π

True Wind Direction (TWD):
    TWD = (heading + TWA) mod 360

Note: These formulas use SOG as an approximation for boat speed through water. If you have speed over water (sow_kn), use that instead for more accurate true wind calculations.

Heel and Trim

  • Heel (heel): positive values = heeling to starboard, negative = heeling to port
  • Trim (trim): positive values = bow up, negative = bow down

Tips

  • Column names are case-insensitive and leading/trailing spaces are ignored
  • Data is automatically resampled to 1 Hz (one reading per second) — higher-frequency data is accepted and downsampled
  • GPS speed spikes are automatically removed during processing
  • Empty cells or missing values are handled gracefully — leave them blank or empty
  • File size limit: 50 MB per upload