UNPKG

polar-recorder

Version:

A SignalK plugin to record boat polars based on sailing performance

281 lines 9.94 kB
{ "type": "object", "properties": { "sampleInterval": { "type": "number", "title": "Sampling Interval (ms)", "description": "The interval at which to record data points.", "default": 1000 }, "automaticRecording": { "type": "boolean", "title": "Always recording in background", "description": "Toggle to enable or disable constant recording of polar data.", "default": false }, "automaticRecordingFile": { "type": "string", "title": "File name for automatic recording polar", "description": "The interval at which to record data points.", "format": "text", "default": "auto-recording-polar.json" }, "useStdDev": { "type": "boolean", "title": "Use standard deviation for filters", "description": "If enabled, filters use standard deviation instead of simple average ratio comparisons. The threshold fields act as z-score limits.", "default": true }, "pathSources": { "type": "object", "title": "Paths & Sources", "properties": { "anglePath": { "type": "string", "title": "Wind angle path", "format": "text", "default": "environment.wind.angleTrueWater" }, "angleSource": { "type": "string", "title": "Wind angle source (leave empty to use any)", "format": "text", "default": "" }, "speedPath": { "type": "string", "title": "Wind speed path", "format": "text", "default": "environment.wind.speedTrue" }, "speedSource": { "type": "string", "title": "Wind speed source (leave empty to use any)", "format": "text", "default": "" }, "stwSource": { "type": "string", "title": "STW", "description": "Source for navigation.speedThroughWater (leave empty to use any)" }, "twdSource": { "type": "string", "title": "TWD", "description": "Source for environment.wind.directionTrue (leave empty to use any)" }, "cogSource": { "type": "string", "title": "COG", "description": "Source for navigation.courseOverGroundTrue (leave empty to use any)" }, "hdgSource": { "type": "string", "title": "HDG", "description": "Source for navigation.headingTrue (leave empty to use any)" } } }, "motoringFilter": { "type": "object", "title": "Motoring Filter", "properties": { "useAutostate": { "type": "boolean", "title": "Use signalk-autostate to detect if engines are on", "description": "If enabled, the plugin will use signalk-autostate to detect if motoring, to disable the polar recording. If disabled, the plugin will record if engine revs are under 'Max revs'", "default": true }, "maxRevForEngine": { "type": "integer", "title": "Max revs", "description": "Max revolutions to consider the engine is off", "default": 0 } } }, "cogFilter": { "type": "object", "title": "COG Filter", "properties": { "useCogThreshold": { "type": "boolean", "title": "Filter the recorded points by COG stability", "description": "Toggle to enable or disable the point filtering based on COG stability.", "default": true }, "minLenghtValidData": { "type": "number", "title": "Minimum time on course (seconds)", "description": "The minimum time in the same course to consider the values are valid to record.", "default": 5 }, "sameCourseAngleOffset": { "type": "number", "title": "Accepted course variation to consider stable course (degrees)", "default": 2 } } }, "hdgFilter": { "type": "object", "title": "HDG Filter", "properties": { "useHdgThreshold": { "type": "boolean", "title": "Filter the recorded points by HDG stability", "description": "Toggle to enable or disable the point filtering based on HDG stability.", "default": false }, "minLenghtValidData": { "type": "number", "title": "Minimum time on course (seconds)", "description": "The minimum time in the same course to consider the values are valid to record.", "default": 5 }, "sameCourseAngleOffset": { "type": "number", "title": "Accepted course variation to consider stable course (degrees)", "default": 2 } } }, "twdFilter": { "type": "object", "title": "TWD Filter", "properties": { "useTwdThreshold": { "type": "boolean", "title": "Filter the recorded points by TWD stability", "description": "Toggle to enable or disable the point filtering based on TWD stability.", "default": true }, "minStableTwdTime": { "type": "number", "title": "Minimum time with constant TWD", "description": "The minimum time with the same TWD to consider the values are valid to record.", "default": 5 }, "sameTwdAngleOffset": { "type": "number", "title": "Accepted TWD variation to consider stable wind direction (degrees)", "default": 10 } } }, "vmgFilter": { "type": "object", "title": "VMG Filter", "properties": { "useVmgThreshold": { "type": "boolean", "title": "Filter the recorded points by current STW to polar recorded ratio", "description": "Toggle to enable or disable the point filtering based on current STW to polar recorded to detect sudden speed changes.", "default": true }, "vmgRatioThresholdUp": { "type": "number", "title": "Upper threshold for STW to VMG ratio", "description": "Ignored if standard deviation is used.", "default": 1.1 }, "vmgRatioThresholdDown": { "type": "number", "title": "Lower threshold for STW to VMG ratio", "description": "Ignored if standard deviation is used.", "default": 0.8 } } }, "speedFilter": { "type": "object", "title": "STW Filter", "properties": { "useAvgSpeedThreshold": { "type": "boolean", "title": "Filter the recorded points by deviations from average STW", "description": "Toggle to enable or disable the point filtering based on the average speed in the specified time window to detect sudden speed changes.", "default": true }, "avgSpeedTimeWindow": { "type": "number", "title": "Speed average time window (s)", "description": "Time window (in seconds) to calculate average speed.", "default": 5 }, "avgSpeedThresholdUp": { "type": "number", "title": "Speed filter threshold (z-score or ratio)", "description": "If standard deviation is enabled, this is the maximum allowed z-score. Otherwise, it's the upper ratio threshold.", "default": 1.1 }, "avgSpeedThresholdDown": { "type": "number", "title": "Lower speed ratio threshold", "description": "Ignored if standard deviation is enabled.", "default": 0.8 } } }, "twsFilter": { "type": "object", "title": "TWS Filter", "properties": { "useAvgTwsThreshold": { "type": "boolean", "title": "Filter by TWS deviation from average", "description": "Enable filtering based on the average True Wind Speed over a time window.", "default": true }, "avgTwsTimeWindow": { "type": "number", "title": "TWS average time window (s)", "description": "Time window in seconds to calculate average TWS.", "default": 5 }, "avgTwsThresholdUp": { "type": "number", "title": "TWS filter threshold (z-score or ratio)", "description": "If standard deviation is enabled, this is the maximum allowed z-score. Otherwise, it's the upper ratio threshold.", "default": 1.1 }, "avgTwsThresholdDown": { "type": "number", "title": "Lower TWS ratio threshold", "description": "Ignored if standard deviation is enabled.", "default": 0.8 } } }, "twaFilter": { "type": "object", "title": "TWA Filter", "properties": { "useAvgTwaThreshold": { "type": "boolean", "title": "Filter by TWA deviation from average", "description": "Enable filtering based on the average True Wind Angle over a time window.", "default": true }, "avgTwaTimeWindow": { "type": "number", "title": "TWA average time window (s)", "description": "Time window in seconds to calculate average TWA.", "default": 5 }, "avgTwaThresholdUp": { "type": "number", "title": "TWA filter threshold (z-score or ratio)", "description": "If standard deviation is enabled, this is the maximum allowed z-score. Otherwise, it's the upper ratio threshold.", "default": 1.1 }, "avgTwaThresholdDown": { "type": "number", "title": "Lower TWA ratio threshold", "description": "Ignored if standard deviation is enabled.", "default": 0.8 } } } } }