Skip to content

nmeasim::core::units

namespace nmeasim::core::units ยท Library API

Unit conversions, part of the nmeasim::core library.

Internal state is kept in the units marine users think in: degrees, knots, metres and degrees Celsius. Encoders convert to whatever a protocol demands with the constants and functions here: kilometres per hour and feet for NMEA 0183, metres per second and kelvin for Signal K.

Summary

Functions

Name Description
knots_to_kmh() Converts a speed from knots to kilometres per hour.
knots_to_mps() Converts a speed from knots to metres per second.
mps_to_knots() Converts a speed from metres per second to knots.
metres_to_feet() Converts a length from metres to international feet.
metres_to_fathoms() Converts a length from metres to fathoms.
celsius_to_kelvin() Converts a temperature from degrees Celsius to kelvin.

Variables

Name Description
kMetresPerNauticalMile Metres in one international nautical mile, exact by definition.
kSecondsPerHour Seconds in one hour.
kFeetPerMetre International feet in one metre: 1 / 0.3048, rounded to double precision.
kFathomsPerMetre Fathoms of six international feet in one metre: 1 / 1.8288, rounded to double precision.
kKilometresPerHourPerKnot Kilometres per hour in one knot, exact by definition of the nautical mile.
kMetresPerSecondPerKnot Metres per second in one knot: 1852 / 3600.
kKelvinOffset Kelvin value of 0 degrees Celsius, exact by definition.

Functions

knots_to_kmh()

double knots_to_kmh(double knots) noexcept

Converts a speed from knots to kilometres per hour.

Parameters

Name Type Description
knots double Speed in knots.

Returns double: The speed in kilometres per hour.

Declared in src/core/include/nmeasim/core/units.hpp:38

knots_to_mps()

double knots_to_mps(double knots) noexcept

Converts a speed from knots to metres per second.

Parameters

Name Type Description
knots double Speed in knots.

Returns double: The speed in metres per second.

Declared in src/core/include/nmeasim/core/units.hpp:46

mps_to_knots()

double mps_to_knots(double mps) noexcept

Converts a speed from metres per second to knots.

Parameters

Name Type Description
mps double Speed in metres per second.

Returns double: The speed in knots.

Declared in src/core/include/nmeasim/core/units.hpp:54

metres_to_feet()

double metres_to_feet(double metres) noexcept

Converts a length from metres to international feet.

Parameters

Name Type Description
metres double Length in metres.

Returns double: The length in feet.

Declared in src/core/include/nmeasim/core/units.hpp:62

metres_to_fathoms()

double metres_to_fathoms(double metres) noexcept

Converts a length from metres to fathoms.

Parameters

Name Type Description
metres double Length in metres.

Returns double: The length in fathoms.

Declared in src/core/include/nmeasim/core/units.hpp:70

celsius_to_kelvin()

double celsius_to_kelvin(double celsius) noexcept

Converts a temperature from degrees Celsius to kelvin.

Parameters

Name Type Description
celsius double Temperature in degrees Celsius.

Returns double: The temperature in kelvin.

Declared in src/core/include/nmeasim/core/units.hpp:78

Variables

kMetresPerNauticalMile

double kMetresPerNauticalMile{1852.0}

Metres in one international nautical mile, exact by definition.

Declared in src/core/include/nmeasim/core/units.hpp:20

kSecondsPerHour

double kSecondsPerHour{3600.0}

Seconds in one hour.

Declared in src/core/include/nmeasim/core/units.hpp:22

kFeetPerMetre

double kFeetPerMetre{3.280839895013123}

International feet in one metre: 1 / 0.3048, rounded to double precision.

Declared in src/core/include/nmeasim/core/units.hpp:24

kFathomsPerMetre

double kFathomsPerMetre{0.5468066491688539}

Fathoms of six international feet in one metre: 1 / 1.8288, rounded to double precision.

Declared in src/core/include/nmeasim/core/units.hpp:26

kKilometresPerHourPerKnot

double kKilometresPerHourPerKnot{1.852}

Kilometres per hour in one knot, exact by definition of the nautical mile.

Declared in src/core/include/nmeasim/core/units.hpp:28

kMetresPerSecondPerKnot

double kMetresPerSecondPerKnot{kMetresPerNauticalMile / kSecondsPerHour}

Metres per second in one knot: 1852 / 3600.

Declared in src/core/include/nmeasim/core/units.hpp:30

kKelvinOffset

double kKelvinOffset{273.15}

Kelvin value of 0 degrees Celsius, exact by definition.

Declared in src/core/include/nmeasim/core/units.hpp:32