signalk-livedepth-plugin 0.3.18 → 0.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/plugin.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { join } from "path";
2
- import { schema } from "./config.js";
2
+ import { schema, formUiSchema } from "./config.js";
3
3
  import { createTileDB, createTileStore } from "./tiles/store.js";
4
4
  import { createTileWriter } from "./tiles/writer.js";
5
- import { seedFromHistory } from "./tiles/seed.js";
5
+ import { SEED_CURSOR_KEY, seedFromHistory } from "./tiles/seed.js";
6
+ import { TIDE_MODE_KEY, createSlackwaterTideProvider, createTideCorrection, datumLabel, shouldResetGrid, tideMode, } from "./tide.js";
6
7
  import { registerBathymetryRoutes, registerSeedRoutes, } from "./tiles/api.js";
7
8
  import { registerPlotterExtension } from "./plotterext/provider.js";
8
9
  import { createCollector } from "./collector.js";
@@ -71,6 +72,10 @@ export function resolveTransducerOffset(app, config) {
71
72
  starboard: config.sounder?.x ?? 0,
72
73
  };
73
74
  }
75
+ /** A parenthetical for rows dropped because the tide was unavailable. */
76
+ function skipNote(skipped) {
77
+ return skipped > 0 ? ` (${skipped} skipped: no tide prediction)` : "";
78
+ }
74
79
  export default function createPlugin(app) {
75
80
  let abortController = undefined;
76
81
  // The gridded store served to chart clients. Built in start(), read by the
@@ -78,16 +83,35 @@ export default function createPlugin(app) {
78
83
  let tileStore;
79
84
  let config;
80
85
  let transducer;
86
+ let tide;
87
+ /** The datum the store is in; also reported to chart clients. */
88
+ let tideState = "off";
81
89
  let seedStatus = { running: false };
90
+ /** Bumped on every start/stop so a seed still winding down cannot overwrite
91
+ * the status of the run that replaced it. */
92
+ let seedGeneration = 0;
82
93
  let running = false;
83
94
  let routesRegistered = false;
84
95
  const runSeed = async (resolution) => {
85
96
  if (seedStatus.running)
86
- return;
97
+ return "skipped";
87
98
  const store = tileStore;
88
99
  const cfg = config;
89
100
  if (!store || !cfg)
90
- return;
101
+ return "skipped";
102
+ // The store's datum is fixed once it holds cells: fold history with the
103
+ // same correction it was built with, and refuse rather than write raw rows
104
+ // into a datum grid.
105
+ if (tideState !== "off" && !tide) {
106
+ seedStatus = { running: false, error: "tide model unavailable" };
107
+ app.setPluginError("Cannot rebuild from history: the tide model is unavailable, so raw depths would be stored in the wrong datum.");
108
+ return "failed";
109
+ }
110
+ // If the plugin is stopped and started while this run is still finishing,
111
+ // the run is superseded: its store is closed and the new run owns the
112
+ // status.
113
+ const generation = seedGeneration;
114
+ const current = () => generation === seedGeneration;
91
115
  seedStatus = { running: true };
92
116
  app.setPluginStatus("Rebuilding bathymetry tiles from history…");
93
117
  try {
@@ -97,21 +121,39 @@ export default function createPlugin(app) {
97
121
  config: cfg,
98
122
  resolution,
99
123
  offset: transducer,
124
+ tide,
100
125
  signal: abortController?.signal,
101
126
  onProgress: (p) => {
127
+ if (!current())
128
+ return;
102
129
  seedStatus = { running: !p.done, progress: p };
103
- app.setPluginStatus(`Rebuilding bathymetry tiles: ${p.points} points over ${p.chunks} windows`);
130
+ app.setPluginStatus(`Rebuilding bathymetry tiles: ${p.points} points over ${p.chunks} windows${skipNote(p.skipped)}`);
104
131
  },
105
132
  });
133
+ if (!current())
134
+ return "aborted";
106
135
  seedStatus = { running: false, progress };
107
- app.setPluginStatus(`Bathymetry rebuild complete: ${progress.points} points`);
136
+ if (!progress.done) {
137
+ app.setPluginStatus(`Bathymetry rebuild interrupted after ${progress.chunks} windows; it will resume on the next start.`);
138
+ return "aborted";
139
+ }
140
+ app.setPluginStatus(`Bathymetry rebuild complete: ${progress.points} points${skipNote(progress.skipped)}`);
141
+ return "completed";
108
142
  }
109
143
  catch (err) {
144
+ if (!current())
145
+ return "aborted";
110
146
  seedStatus = { running: false, error: String(err) };
111
147
  app.setPluginError(`Bathymetry rebuild failed: ${err}`);
148
+ return "failed";
112
149
  }
113
150
  };
114
- const seed = { run: runSeed, status: () => seedStatus };
151
+ const seed = {
152
+ run: async () => {
153
+ await runSeed();
154
+ },
155
+ status: () => seedStatus,
156
+ };
115
157
  return {
116
158
  id: "signalk-livedepth-plugin",
117
159
  name: "LiveDepth",
@@ -119,24 +161,70 @@ export default function createPlugin(app) {
119
161
  async start(startConfig, restart) {
120
162
  config = startConfig;
121
163
  app.debug("Starting signalk-livedepth-plugin");
164
+ // A new start supersedes any seed still winding down from the previous
165
+ // one (its signal is aborted and its store is closed).
166
+ seedGeneration++;
167
+ seedStatus = { running: false };
122
168
  abortController = new AbortController();
123
169
  tileStore = createTileStore(createTileDB(join(app.getDataDirPath(), `bathymetry-tiles.sqlite`)));
124
170
  transducer = resolveTransducerOffset(app, config);
125
- createCollector({
126
- app,
127
- config,
128
- writer: createTileWriter(tileStore),
129
- offset: transducer,
130
- signal: abortController.signal,
131
- });
132
- app.setPluginStatus("Collecting depth into the bathymetry tile store");
171
+ // Build the tide source before the collector starts, so the first
172
+ // sounding already goes through it. The station database loads here, once.
173
+ const configured = tideMode(config);
174
+ tideState = configured;
175
+ tide = undefined;
176
+ let collecting = true;
177
+ if (configured !== "off") {
178
+ try {
179
+ tide = createTideCorrection(await createSlackwaterTideProvider(), configured);
180
+ }
181
+ catch (err) {
182
+ // A transient model failure must not clear or relabel an existing
183
+ // grid, nor write raw depths into a datum grid. Keep the stored
184
+ // datum, record nothing, and surface the error.
185
+ collecting = false;
186
+ const stored = tileStore.getMeta(TIDE_MODE_KEY);
187
+ tideState = stored === undefined ? "off" : stored;
188
+ app.setPluginError(`Tide correction is on but the tide model could not be loaded ` +
189
+ `(${err}); recording is paused and the existing grid is kept.`);
190
+ }
191
+ }
192
+ if (collecting) {
193
+ // The cells hold depths, not raw soundings, so a grid built in another
194
+ // datum cannot be corrected in place. Clearing is the only way to avoid
195
+ // silently mixing datums; the old seed cursor goes with it.
196
+ const reset = shouldResetGrid(tileStore.getMeta(TIDE_MODE_KEY), tideState);
197
+ if (reset) {
198
+ tileStore.clear();
199
+ tileStore.setMeta(SEED_CURSOR_KEY, "");
200
+ }
201
+ tileStore.setMeta(TIDE_MODE_KEY, tideState);
202
+ createCollector({
203
+ app,
204
+ config,
205
+ writer: createTileWriter(tileStore),
206
+ offset: transducer,
207
+ tide,
208
+ signal: abortController.signal,
209
+ });
210
+ app.setPluginStatus(tideState === "off"
211
+ ? "Collecting depth into the bathymetry tile store"
212
+ : `Collecting depth into the bathymetry tile store, relative to ${datumLabel(tideState)}`);
213
+ if (reset) {
214
+ app.setPluginStatus("The tide datum changed, so the bathymetry grid was cleared. " +
215
+ "Rebuild from history to repopulate it.");
216
+ }
217
+ }
133
218
  running = true;
134
219
  // Offer the chart layer to a host chartplotter, and serve the store the
135
220
  // layer reads from a top-level, non-admin route.
136
221
  registerPlotterExtension(app, () => running);
137
222
  if (!routesRegistered) {
138
223
  registerBathymetryRoutes(app, () => tileStore, () => ({
139
- depthPath: config ? `environment.depth.${config.path}` : undefined,
224
+ depthPath: config
225
+ ? `environment.depth.${tideState === "off" ? config.path : "belowSurface"}`
226
+ : undefined,
227
+ tide: { mode: tideState },
140
228
  transducer,
141
229
  vessel: {
142
230
  loa: readLengthOverall(app),
@@ -148,18 +236,24 @@ export default function createPlugin(app) {
148
236
  }));
149
237
  routesRegistered = true;
150
238
  }
151
- if (startConfig.seed?.run) {
152
- // One-time rebuild. Clear the trigger when it finishes (or fails) so it
153
- // doesn't fire again on the next start; an interrupted run resumes from
154
- // the stored cursor instead of repeating.
155
- void runSeed(startConfig.seed.resolution).then(() => restart({
156
- ...startConfig,
157
- seed: { ...startConfig.seed, run: false },
158
- }));
239
+ if (collecting && startConfig.seed?.run) {
240
+ // One-time rebuild. A completed or failed run consumes the trigger; an
241
+ // interrupted run leaves it set so the next start resumes from the
242
+ // stored cursor instead of repeating.
243
+ void runSeed(startConfig.seed.resolution).then((outcome) => {
244
+ if (outcome === "completed" || outcome === "failed") {
245
+ restart({
246
+ ...startConfig,
247
+ seed: { ...startConfig.seed, run: false },
248
+ });
249
+ }
250
+ });
159
251
  }
160
252
  },
161
253
  stop() {
162
254
  running = false;
255
+ seedGeneration++;
256
+ seedStatus = { running: false };
163
257
  abortController?.abort("Stopping signalk-livedepth-plugin");
164
258
  tileStore?.close();
165
259
  tileStore = undefined;
@@ -167,6 +261,9 @@ export default function createPlugin(app) {
167
261
  schema() {
168
262
  return schema(app);
169
263
  },
264
+ uiSchema() {
265
+ return formUiSchema(config);
266
+ },
170
267
  registerWithRouter(router) {
171
268
  // The one-time seed trigger stays admin-only, on the plugin's own router;
172
269
  // the store the extension reads is served from the top-level route above.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,8 @@ import { Config } from "../config.js";
19
19
  * The transducer `offset` describes this vessel's hull, so it is applied only
20
20
  * to this vessel's own soundings.
21
21
  */
22
- export declare function createLiveStream(app: ServerAPI, config: Config, offset?: TransducerOffset): PassThrough;
22
+ export declare function createLiveStream(app: ServerAPI, config: Config, offset?: TransducerOffset,
23
+ /** Override the recorded depth path, e.g. the raw below-surface depth when
24
+ * tide correction is on. */
25
+ depthPathOverride?: string): PassThrough;
23
26
  //# sourceMappingURL=live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/streams/live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA8CtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,eAiN1B"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../src/streams/live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA8CtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB;AACzB;4BAC4B;AAC5B,iBAAiB,CAAC,EAAE,MAAM,eAmN3B"}
@@ -40,8 +40,13 @@ function positionOf(value) {
40
40
  * The transducer `offset` describes this vessel's hull, so it is applied only
41
41
  * to this vessel's own soundings.
42
42
  */
43
- export function createLiveStream(app, config, offset) {
44
- const depthPath = `environment.depth.${config.path}`;
43
+ export function createLiveStream(app, config, offset,
44
+ /** Override the recorded depth path, e.g. the raw below-surface depth when
45
+ * tide correction is on. */
46
+ depthPathOverride) {
47
+ const depthPath = (depthPathOverride ??
48
+ `environment.depth.${config.path}`);
49
+ const depthKey = depthPath.slice("environment.depth.".length);
45
50
  const include = new Set(config.vessels?.include ?? []);
46
51
  const exclude = new Set(config.vessels?.exclude ?? []);
47
52
  const selfUrn = app.getSelfPath("uuid");
@@ -187,7 +192,7 @@ export function createLiveStream(app, config, offset) {
187
192
  continue;
188
193
  // A depth on the chosen datum is what makes a vessel worth recording;
189
194
  // AIS targets have a position but never a depth.
190
- if (!node?.environment?.depth?.[config.path])
195
+ if (!node?.environment?.depth?.[depthKey])
191
196
  continue;
192
197
  if (!node?.navigation?.position)
193
198
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/streams/live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/streams/live.ts"],"names":[],"mappings":"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"}
package/dist/tide.d.ts ADDED
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Tide compensation for stored soundings.
3
+ *
4
+ * A depth below the surface grows and shrinks with the tide, so it can only be
5
+ * compared across days if it is reduced to a fixed vertical datum. This module
6
+ * looks up the predicted water level at a sounding's own time and position and
7
+ * subtracts it, leaving a depth below the chosen datum that stays valid when
8
+ * the vessel returns.
9
+ *
10
+ * The prediction is harmonic, so the same lookup answers for a live sounding
11
+ * now and for one imported from months ago. `chart` uses the station's own
12
+ * chart datum, which changes with the chart region; `LAT` and `MLLW` are fixed
13
+ * references and are the predictable choices for a map that crosses regions.
14
+ */
15
+ import { Temporal } from "@js-temporal/polyfill";
16
+ export type TideDatum = "chart" | "LAT" | "MLLW";
17
+ /** Datums offered in the plugin settings, in display order. */
18
+ export declare const TIDE_DATUMS: readonly TideDatum[];
19
+ /** Store key recording the datum the grid was built in. */
20
+ export declare const TIDE_MODE_KEY = "tide.mode";
21
+ /**
22
+ * The datum the tile store is in, or `off` when soundings are stored as
23
+ * measured. Changing this must rebuild the grid: the cells hold depths, not the
24
+ * raw soundings, so a mixed-datum grid cannot be corrected afterwards.
25
+ */
26
+ export type TideMode = "off" | TideDatum;
27
+ export declare function tideMode(config: {
28
+ tide?: {
29
+ enabled?: boolean;
30
+ datum?: TideDatum;
31
+ };
32
+ }): TideMode;
33
+ /**
34
+ * The depth path the store records. Tide correction needs the raw water column,
35
+ * so it reads below the surface whatever the configured path says.
36
+ */
37
+ export declare function recordingDepthPath(config: {
38
+ path: string;
39
+ }, tide: boolean): string;
40
+ /** Whether the stored grid is in a different datum and must be cleared. */
41
+ export declare function shouldResetGrid(stored: string | undefined, mode: TideMode): boolean;
42
+ /** A water level above a datum, and where it came from. */
43
+ export interface TideLookup {
44
+ /** Water level above the datum, metres. */
45
+ level: number;
46
+ /** The datum the level is relative to, as the station reports it. */
47
+ datum: string;
48
+ station: string;
49
+ }
50
+ /** The tide source. A lookup returns undefined when the tide is unavailable. */
51
+ export interface TideProvider {
52
+ levelAbove(lon: number, lat: number, time: Temporal.Instant, datum: TideDatum): Promise<TideLookup | undefined>;
53
+ }
54
+ /** The abbreviation of the datum a grid is stored in. */
55
+ export declare function datumLabel(mode: TideMode): string;
56
+ export interface TideCorrection {
57
+ /**
58
+ * Reduce a sounding to the configured datum. Returns undefined when the tide
59
+ * is unavailable, so the caller can skip it rather than store a raw depth in
60
+ * a datum grid.
61
+ */
62
+ correct(lon: number, lat: number, time: Temporal.Instant, depth: number): Promise<number | undefined>;
63
+ }
64
+ export declare function createTideCorrection(provider: TideProvider, datum: TideDatum): TideCorrection;
65
+ /** Slackwater's default: beyond this a station predicts water somewhere else. */
66
+ export declare const MAX_STATION_KM = 100;
67
+ /**
68
+ * Predict water levels with the bundled Slackwater engine.
69
+ *
70
+ * A station predictor is cached per small position cell: finding one reads the
71
+ * station database (async, done once), while `getWaterLevelAtTime` is pure
72
+ * arithmetic and answers for any instant, past or future.
73
+ */
74
+ export declare function createSlackwaterTideProvider(): Promise<TideProvider>;
75
+ /**
76
+ * Whether a station can express a level in `datum`. LAT and MLLW are converted
77
+ * through MSL, so a missing MSL makes either unusable. `chart` needs the station
78
+ * to name a chart datum it also has a level for; the engine otherwise falls
79
+ * back to an MSL-relative value, which would be stored as a chart depth.
80
+ */
81
+ export declare function datumAvailable(station: {
82
+ datums?: Record<string, number>;
83
+ chart_datum?: string;
84
+ }, datum: TideDatum): boolean;
85
+ //# sourceMappingURL=tide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide.d.ts","sourceRoot":"","sources":["../src/tide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD,+DAA+D;AAC/D,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAA6B,CAAC;AAE1E,2DAA2D;AAC3D,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAEzC,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAC/B,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CACjD,GAAG,QAAQ,CAMX;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACxB,IAAI,EAAE,OAAO,GACZ,MAAM,CAIR;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,QAAQ,GACb,OAAO,CAET;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,UAAU,CACR,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CACpC;AAED,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEjD;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,OAAO,CACL,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,GACf,cAAc,CAUhB;AAED,iFAAiF;AACjF,eAAO,MAAM,cAAc,MAAM,CAAC;AAMlC;;;;;;GAMG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,YAAY,CAAC,CAsD1E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAClE,KAAK,EAAE,SAAS,GACf,OAAO,CAUT"}
package/dist/tide.js ADDED
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Tide compensation for stored soundings.
3
+ *
4
+ * A depth below the surface grows and shrinks with the tide, so it can only be
5
+ * compared across days if it is reduced to a fixed vertical datum. This module
6
+ * looks up the predicted water level at a sounding's own time and position and
7
+ * subtracts it, leaving a depth below the chosen datum that stays valid when
8
+ * the vessel returns.
9
+ *
10
+ * The prediction is harmonic, so the same lookup answers for a live sounding
11
+ * now and for one imported from months ago. `chart` uses the station's own
12
+ * chart datum, which changes with the chart region; `LAT` and `MLLW` are fixed
13
+ * references and are the predictable choices for a map that crosses regions.
14
+ */
15
+ /** Datums offered in the plugin settings, in display order. */
16
+ export const TIDE_DATUMS = ["chart", "LAT", "MLLW"];
17
+ /** Store key recording the datum the grid was built in. */
18
+ export const TIDE_MODE_KEY = "tide.mode";
19
+ export function tideMode(config) {
20
+ if (!config.tide?.enabled)
21
+ return "off";
22
+ const datum = config.tide.datum;
23
+ // The saved config is user input; an unknown datum would silently skip every
24
+ // sounding, so fall back to the default.
25
+ return datum !== undefined && TIDE_DATUMS.includes(datum) ? datum : "LAT";
26
+ }
27
+ /**
28
+ * The depth path the store records. Tide correction needs the raw water column,
29
+ * so it reads below the surface whatever the configured path says.
30
+ */
31
+ export function recordingDepthPath(config, tide) {
32
+ return tide
33
+ ? "environment.depth.belowSurface"
34
+ : `environment.depth.${config.path}`;
35
+ }
36
+ /** Whether the stored grid is in a different datum and must be cleared. */
37
+ export function shouldResetGrid(stored, mode) {
38
+ return stored === undefined ? mode !== "off" : stored !== mode;
39
+ }
40
+ /** The abbreviation of the datum a grid is stored in. */
41
+ export function datumLabel(mode) {
42
+ return mode === "chart" ? "chart datum" : mode === "off" ? "none" : mode;
43
+ }
44
+ export function createTideCorrection(provider, datum) {
45
+ return {
46
+ async correct(lon, lat, time, depth) {
47
+ const lookup = await provider.levelAbove(lon, lat, time, datum);
48
+ if (!lookup || !Number.isFinite(lookup.level))
49
+ return undefined;
50
+ // A seabed above the datum is a drying height; the grid stores depths, so
51
+ // clamp it to the surface rather than dropping the cell.
52
+ return Math.max(0, depth - lookup.level);
53
+ },
54
+ };
55
+ }
56
+ /** Slackwater's default: beyond this a station predicts water somewhere else. */
57
+ export const MAX_STATION_KM = 100;
58
+ /** Distance between cached station lookups, in degrees. */
59
+ const STATION_CACHE_GRID = 0.01;
60
+ const STATION_CACHE_MAX = 512;
61
+ /**
62
+ * Predict water levels with the bundled Slackwater engine.
63
+ *
64
+ * A station predictor is cached per small position cell: finding one reads the
65
+ * station database (async, done once), while `getWaterLevelAtTime` is pure
66
+ * arithmetic and answers for any instant, past or future.
67
+ */
68
+ export async function createSlackwaterTideProvider() {
69
+ const { nearestStation } = await import("slackwater");
70
+ const predictors = new Map();
71
+ const predictorFor = (lat, lon) => {
72
+ const key = `${(Math.round(lat / STATION_CACHE_GRID) * STATION_CACHE_GRID).toFixed(2)},${(Math.round(lon / STATION_CACHE_GRID) * STATION_CACHE_GRID).toFixed(2)}`;
73
+ let predictor = predictors.get(key);
74
+ if (!predictor) {
75
+ predictor = (async () => {
76
+ // Slackwater returns the predictor synchronously in older betas and as
77
+ // a promise in newer ones; `await` accepts either.
78
+ const station = await nearestStation({
79
+ latitude: lat,
80
+ longitude: lon,
81
+ maxDistance: MAX_STATION_KM,
82
+ });
83
+ return hasTideModel(station) ? station : undefined;
84
+ })().catch(() => undefined);
85
+ predictors.set(key, predictor);
86
+ if (predictors.size > STATION_CACHE_MAX) {
87
+ const oldest = predictors.keys().next().value;
88
+ if (oldest !== undefined)
89
+ predictors.delete(oldest);
90
+ }
91
+ }
92
+ return predictor;
93
+ };
94
+ return {
95
+ async levelAbove(lon, lat, time, datum) {
96
+ const station = await predictorFor(lat, lon);
97
+ if (!station || !datumAvailable(station, datum))
98
+ return undefined;
99
+ try {
100
+ const prediction = station.getWaterLevelAtTime({
101
+ time: new Date(time.epochMilliseconds),
102
+ datum: datum === "chart" ? undefined : datum,
103
+ });
104
+ if (!Number.isFinite(prediction.level))
105
+ return undefined;
106
+ return {
107
+ level: prediction.level,
108
+ datum: prediction.datum ?? datum,
109
+ station: station.id,
110
+ };
111
+ }
112
+ catch {
113
+ return undefined;
114
+ }
115
+ },
116
+ };
117
+ }
118
+ /**
119
+ * Whether a station can express a level in `datum`. LAT and MLLW are converted
120
+ * through MSL, so a missing MSL makes either unusable. `chart` needs the station
121
+ * to name a chart datum it also has a level for; the engine otherwise falls
122
+ * back to an MSL-relative value, which would be stored as a chart depth.
123
+ */
124
+ export function datumAvailable(station, datum) {
125
+ if (datum === "chart") {
126
+ return (station.chart_datum !== undefined &&
127
+ station.datums?.[station.chart_datum] !== undefined);
128
+ }
129
+ return (station.datums?.[datum] !== undefined && station.datums?.MSL !== undefined);
130
+ }
131
+ /** CHS stations carry identity only; predicting from one gives a flat zero. */
132
+ function hasTideModel(station) {
133
+ return ((station.harmonic_constituents?.length ?? 0) > 0 ||
134
+ station.offsets !== undefined);
135
+ }
136
+ //# sourceMappingURL=tide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide.js","sourceRoot":"","sources":["../src/tide.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,13 @@ export interface TileMeta {
25
25
  loa?: number;
26
26
  beam?: number;
27
27
  };
28
+ /** The vertical datum stored depths are relative to. `mode` is `"off"` when
29
+ * soundings are raw below-surface, otherwise the datum name (`LAT`, `MLLW`,
30
+ * `chart`). A client must not fold its own uncorrected soundings onto a
31
+ * corrected grid; it refreshes the served tiles instead. */
32
+ tide?: {
33
+ mode: string;
34
+ };
28
35
  /** Temporary debug flags; see the plugin's debug config. */
29
36
  debug?: {
30
37
  vesselFootprint?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"tile-source.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAIL,SAAS,EACT,QAAQ,EAGT,MAAM,WAAW,CAAC;AAEnB,2DAA2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;yEAEqE;IACrE,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,0DAA0D;IAC1D,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,4DAA4D;IAC5D,KAAK,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvC;AAID;;iCAEiC;AACjC,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,SAAW,EAClB,QAAQ,SAAY,GACnB,MAAM,CAOR;AAkBD;oEACoE;AACpE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,CAAC,EAAE,MAAM,GACR;IAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BhC;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,MAAM,GACV,CAAC,MAAM,EAAE,MAAM,CAAC,CASlB;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,GACf,QAAQ,EAAE,CASZ;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,GAChB,QAAQ,EAAE,CAEZ;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"tile-source.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAIL,SAAS,EACT,QAAQ,EAGT,MAAM,WAAW,CAAC;AAEnB,2DAA2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;yEAEqE;IACrE,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,0DAA0D;IAC1D,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC;;;gEAG4D;IAC5D,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,4DAA4D;IAC5D,KAAK,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvC;AAID;;iCAEiC;AACjC,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,SAAW,EAClB,QAAQ,SAAY,GACnB,MAAM,CAOR;AAkBD;oEACoE;AACpE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,CAAC,EAAE,MAAM,GACR;IAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BhC;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,MAAM,GACV,CAAC,MAAM,EAAE,MAAM,CAAC,CASlB;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,GACf,QAAQ,EAAE,CASZ;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,GAChB,QAAQ,EAAE,CAEZ;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tile-source.js","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile-source.js","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"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"}