Plugin that derives signalk data from other signalk data
npm install signalk-derived-data
Generates deltas for values derived from Signal K values
It currently calculates:
* Outside air density (based on humidity, temperature and pressure)
* Battery Power
* Depth Below Keel (based on depth.belowSurface and design.draft.maximum)
* Depth Below Keel (based on depth.belowTransducer and depth.transducerToKeel)
* Depth Below Surface (based on depth.belowKeel and design.draft.maximum)
* Distance To Go (based on courseGreatCircle.nextPoint.position)
* Outside air dew point (based on humidity and temperature)
* Fuel economy (based on speed over ground, fuel rate)
Propeller Slip calculation (requires defaults.json to include propulsion.\.drive.propeller.pitch and propulsion.\*.transmission.gearRatio)
* Sets environment.sun to dawn, sunrise, day, sunset, dusk or night (based on navigation.datetime or system time and navigation.position)
* Tank Volume (based on currentLevel (requires calibration pairs (>2 for parallell sides, >3 for straight wedge and >4 for more complex shapes))
* Velocity Made Good to Course (based on courseGreatCircle.nextPoint.bearingTrue heading true and speedOverGround)
* Velocity Made Good to wind (based on wind.directionTrue and speedOverGround)
* Set and Drift (based on headingMagnetic, courseOverGroundTrue, speedThroughWater, speedOverGround, magneticVariation)
* Outside air wind chill (based on wind speed and temperature)
* True Wind Angle, Direction and Speed (based on speed through water, AWA and AWS)
* True Wind Direction (based on AWA and headingTrue)
* Ground Wind Angle and Speed (based on SOG, AWA and AWS)
* Magnetic Wind Direction (based on AWA and headingMagnetic)
* Magnetic Wind Direction (based on wind.directionTrue and magneticVariation)
* Wind Shift (experimental)
* Moon illumination and times (based on time and navigation.position)
* Sunlight Times: sunrise, sunriseEnd, goldenHourEnd, solarNoon, goldenHour, sunsetStart, sunset, dusk, nauticalDusk, night, nadir, nightEnd, nauticalDawn, dawn (based on time and navigation.position)
* Outside Heat Index (based on temperature and humidity)
* True Course Over Ground (based on courseOverGroundMagnetic and magneticVariation)
* Magnetic Course Over Ground (based on courseOverGroundTrue and magneticVariation)
To add new calculations, just create a new file under the ./calcs directory.
For example. This is the VMG calculator.
````
module.exports = function(app) {
return {
group: 'vmg',
optionKey: 'vmg',
title: "Velocity Made Goog (based on courseGreatCircle.nextPoint.bearingTrue heading true and speedOverGround)",
derivedFrom: [ "navigation.courseGreatCircle.nextPoint.bearingTrue",
"navigation.headingTrue",
"navigation.speedOverGround" ],
calculator: function (bearingTrue, headingTrue, speedOverGround)
{
var angle = Math.abs(bearingTrue-headingTrue)
return [{ path: "navigation.courseGreatCircle.nextPoint.velocityMadeGood",
value: Math.cos(bearingTrue-headingTrue) * speedOverGround}]
}
};
}