signalk-livedepth-plugin 0.3.18 → 0.3.19
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/CHANGELOG.md +30 -0
- package/README.md +22 -5
- package/dist/collector.d.ts +9 -1
- package/dist/collector.d.ts.map +1 -1
- package/dist/collector.js +23 -4
- package/dist/collector.js.map +1 -1
- package/dist/config.d.ts +41 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +35 -7
- package/dist/config.js.map +1 -1
- package/dist/history.d.ts +5 -1
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +24 -8
- package/dist/history.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +76 -14
- package/dist/plugin.js.map +1 -1
- package/dist/streams/live.d.ts +4 -1
- package/dist/streams/live.d.ts.map +1 -1
- package/dist/streams/live.js +8 -3
- package/dist/streams/live.js.map +1 -1
- package/dist/tide.d.ts +85 -0
- package/dist/tide.d.ts.map +1 -0
- package/dist/tide.js +136 -0
- package/dist/tide.js.map +1 -0
- package/dist/tiles/core/tile-source.d.ts +7 -0
- package/dist/tiles/core/tile-source.d.ts.map +1 -1
- package/dist/tiles/core/tile-source.js.map +1 -1
- package/dist/tiles/seed.d.ts +6 -1
- package/dist/tiles/seed.d.ts.map +1 -1
- package/dist/tiles/seed.js +49 -18
- package/dist/tiles/seed.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/public/js/renderer.js +44 -3
- package/public/js/renderer.js.map +2 -2
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/streams/live.d.ts
CHANGED
|
@@ -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
|
|
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,
|
|
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"}
|
package/dist/streams/live.js
CHANGED
|
@@ -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
|
-
|
|
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?.[
|
|
195
|
+
if (!node?.environment?.depth?.[depthKey])
|
|
191
196
|
continue;
|
|
192
197
|
if (!node?.navigation?.position)
|
|
193
198
|
continue;
|
package/dist/streams/live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/streams/live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAoB,MAAM,wBAAwB,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,+DAA+D;AAC/D,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB,+EAA+E;AAC/E,MAAM,cAAc,GAAG,KAAK,CAAC;AAc7B;8DAC8D;AAC9D,MAAM,QAAQ,GAAG,qBAA6B,CAAC;AAC/C,MAAM,OAAO,GAAG,wBAAgC,CAAC;AACjD,8EAA8E;AAC9E,MAAM,MAAM,GAAG,iCAAyC,CAAC;AAEzD;2DAC2D;AAC3D,SAAS,UAAU,CACjB,KAAc;IAEd,MAAM,CAAC,GAAI,KAAyC,EAAE,KAAK,IAAI,KAAK,CAAC;IACrE,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAG/B,CAAC;IACF,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAc,EACd,MAAc,EACd,MAAyB;
|
|
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
|
package/dist/tide.js.map
ADDED
|
@@ -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":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EAET,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tile-source.js","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"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"}
|
package/dist/tiles/seed.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { ServerAPI } from "@signalk/server-api";
|
|
|
2
2
|
import type { HistoryApi } from "@signalk/server-api/history";
|
|
3
3
|
import { Temporal } from "@js-temporal/polyfill";
|
|
4
4
|
import { Config } from "../config.js";
|
|
5
|
+
import { TideCorrection } from "../tide.js";
|
|
5
6
|
import { TileStore, TransducerOffset } from "./core/index.js";
|
|
6
7
|
/** Highest granularity we ask the History API for, in seconds. */
|
|
7
8
|
export declare const DEFAULT_SEED_RESOLUTION = 0.1;
|
|
@@ -15,6 +16,8 @@ export interface SeedProgress {
|
|
|
15
16
|
chunks: number;
|
|
16
17
|
chunksFailed: number;
|
|
17
18
|
points: number;
|
|
19
|
+
/** Rows dropped because the tide was unavailable at their time/position. */
|
|
20
|
+
skipped: number;
|
|
18
21
|
done: boolean;
|
|
19
22
|
}
|
|
20
23
|
export interface SeedOptions {
|
|
@@ -33,6 +36,8 @@ export interface SeedOptions {
|
|
|
33
36
|
history?: HistoryApi;
|
|
34
37
|
/** Shift each sounding from the recorded position to the transducer. */
|
|
35
38
|
offset?: TransducerOffset;
|
|
39
|
+
/** Reduce each sounding to a fixed datum, using the row's own time. */
|
|
40
|
+
tide?: TideCorrection;
|
|
36
41
|
signal?: AbortSignal;
|
|
37
42
|
onProgress?: (progress: SeedProgress) => void;
|
|
38
43
|
}
|
|
@@ -43,5 +48,5 @@ export interface SeedOptions {
|
|
|
43
48
|
* tiles (min-pooling as it goes). The live stream keeps the store current from
|
|
44
49
|
* then on.
|
|
45
50
|
*/
|
|
46
|
-
export declare function seedFromHistory({ app, store, config, from, to, resolution, chunkHours, history, offset, signal, onProgress, }: SeedOptions): Promise<SeedProgress>;
|
|
51
|
+
export declare function seedFromHistory({ app, store, config, from, to, resolution, chunkHours, history, offset, tide, signal, onProgress, }: SeedOptions): Promise<SeedProgress>;
|
|
47
52
|
//# sourceMappingURL=seed.d.ts.map
|
package/dist/tiles/seed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EACL,SAAS,EACT,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,sEAAsE;AACtE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,kDAAkD;IAClD,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,EAA2B,EAC3B,UAAoC,EACpC,UAAqC,EACrC,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAChE,OAAO,EACL,SAAS,EACT,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,sEAAsE;AACtE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,kDAAkD;IAClD,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,uEAAuE;IACvE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,EAA2B,EAC3B,UAAoC,EACpC,UAAqC,EACrC,OAAO,EACP,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAqGrC"}
|
package/dist/tiles/seed.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { BATHY_EPOCH } from "../constants.js";
|
|
3
3
|
import { getHistoryAPI, columnsByPath } from "../history.js";
|
|
4
|
+
import { recordingDepthPath } from "../tide.js";
|
|
4
5
|
import { correctToTransducer, createTileAccumulator, rebuildAncestors, } from "./core/index.js";
|
|
5
6
|
/** Highest granularity we ask the History API for, in seconds. */
|
|
6
7
|
export const DEFAULT_SEED_RESOLUTION = 0.1;
|
|
@@ -15,13 +16,16 @@ export const SEED_CURSOR_KEY = "seed.cursor";
|
|
|
15
16
|
* tiles (min-pooling as it goes). The live stream keeps the store current from
|
|
16
17
|
* then on.
|
|
17
18
|
*/
|
|
18
|
-
export async function seedFromHistory({ app, store, config, from, to = Temporal.Now.instant(), resolution = DEFAULT_SEED_RESOLUTION, chunkHours = DEFAULT_SEED_CHUNK_HOURS, history, offset, signal, onProgress, }) {
|
|
19
|
+
export async function seedFromHistory({ app, store, config, from, to = Temporal.Now.instant(), resolution = DEFAULT_SEED_RESOLUTION, chunkHours = DEFAULT_SEED_CHUNK_HOURS, history, offset, tide, signal, onProgress, }) {
|
|
19
20
|
const api = history ?? (await getHistoryAPI({ app }));
|
|
20
21
|
if (!api) {
|
|
21
22
|
throw new Error("No History API provider is available to seed from");
|
|
22
23
|
}
|
|
23
24
|
const start = from ?? cursorFromStore(store) ?? BATHY_EPOCH;
|
|
24
|
-
|
|
25
|
+
// With tide correction on, the raw below-surface depth is the base: the
|
|
26
|
+
// configured path may already be compensated (and only for this vessel now),
|
|
27
|
+
// which would double-correct a historical or imported sounding.
|
|
28
|
+
const depthPath = recordingDepthPath(config, tide !== undefined);
|
|
25
29
|
// Deliberately NOT pinned to a source: the seed reconstructs the vessel's
|
|
26
30
|
// whole track, and the active source changes over the record (different GPS
|
|
27
31
|
// units over the years, e.g. raymarine.* in 2025 vs problem-child.* now).
|
|
@@ -58,6 +62,7 @@ export async function seedFromHistory({ app, store, config, from, to = Temporal.
|
|
|
58
62
|
chunks: 0,
|
|
59
63
|
chunksFailed: 0,
|
|
60
64
|
points: 0,
|
|
65
|
+
skipped: 0,
|
|
61
66
|
done: false,
|
|
62
67
|
};
|
|
63
68
|
let at = start;
|
|
@@ -73,7 +78,9 @@ export async function seedFromHistory({ app, store, config, from, to = Temporal.
|
|
|
73
78
|
resolution,
|
|
74
79
|
pathSpecs,
|
|
75
80
|
});
|
|
76
|
-
|
|
81
|
+
const folded = await fold(accumulator, res, depthPath, pathSpecs, offset, tide);
|
|
82
|
+
progress.points += folded.points;
|
|
83
|
+
progress.skipped += folded.skipped;
|
|
77
84
|
accumulator.flush();
|
|
78
85
|
// Advance the cursor only after the chunk is safely written, so an
|
|
79
86
|
// interrupted seed resumes where it stopped rather than from the start.
|
|
@@ -110,39 +117,63 @@ function cursorFromStore(store) {
|
|
|
110
117
|
return undefined;
|
|
111
118
|
}
|
|
112
119
|
}
|
|
113
|
-
/** Fold a values response's rows into the accumulator
|
|
114
|
-
function fold(accumulator, res, depthPath, pathSpecs, offset) {
|
|
120
|
+
/** Fold a values response's rows into the accumulator. */
|
|
121
|
+
async function fold(accumulator, res, depthPath, pathSpecs, offset, tide) {
|
|
115
122
|
const columns = columnsByPath(res.values, pathSpecs);
|
|
116
123
|
const positionColumn = columns.get("navigation.position");
|
|
117
124
|
const depthColumn = columns.get(depthPath);
|
|
118
125
|
const headingColumn = columns.get("navigation.headingTrue");
|
|
119
|
-
if (positionColumn === undefined || depthColumn === undefined)
|
|
120
|
-
return 0;
|
|
121
|
-
|
|
126
|
+
if (positionColumn === undefined || depthColumn === undefined) {
|
|
127
|
+
return { points: 0, skipped: 0 };
|
|
128
|
+
}
|
|
129
|
+
let points = 0;
|
|
130
|
+
let skipped = 0;
|
|
122
131
|
for (const row of res.data) {
|
|
123
132
|
const position = row[positionColumn];
|
|
124
133
|
const [longitude, latitude] = position ?? [];
|
|
125
|
-
const
|
|
126
|
-
if (typeof
|
|
127
|
-
Number.isFinite(
|
|
134
|
+
const rawDepth = row[depthColumn];
|
|
135
|
+
if (typeof rawDepth === "number" &&
|
|
136
|
+
Number.isFinite(rawDepth) &&
|
|
128
137
|
typeof longitude === "number" &&
|
|
129
138
|
Number.isFinite(longitude) &&
|
|
130
139
|
typeof latitude === "number" &&
|
|
131
140
|
Number.isFinite(latitude)) {
|
|
141
|
+
let depth = rawDepth;
|
|
132
142
|
const heading = headingColumn === undefined
|
|
133
143
|
? undefined
|
|
134
144
|
: row[headingColumn];
|
|
135
145
|
const { lon, lat } = offset
|
|
136
146
|
? correctToTransducer({ lon: longitude, lat: latitude }, typeof heading === "number" ? heading : undefined, offset)
|
|
137
147
|
: { lon: longitude, lat: latitude };
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
148
|
+
if (tide) {
|
|
149
|
+
// The tide is looked up for this row's own instant and position: an
|
|
150
|
+
// imported sounding can be from another vessel, months away. A row with
|
|
151
|
+
// no tide is dropped rather than stored raw in a datum grid.
|
|
152
|
+
const time = instantOf(row[0]);
|
|
153
|
+
if (!time) {
|
|
154
|
+
skipped++;
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const corrected = await tide.correct(lon, lat, time, depth);
|
|
158
|
+
if (corrected === undefined) {
|
|
159
|
+
skipped++;
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
depth = corrected;
|
|
163
|
+
}
|
|
164
|
+
accumulator.add({ lon, lat, depth });
|
|
165
|
+
points++;
|
|
144
166
|
}
|
|
145
167
|
}
|
|
146
|
-
return
|
|
168
|
+
return { points, skipped };
|
|
169
|
+
}
|
|
170
|
+
/** A history row's timestamp, or undefined when it can't be parsed. */
|
|
171
|
+
function instantOf(value) {
|
|
172
|
+
try {
|
|
173
|
+
return Temporal.Instant.from(String(value));
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
147
178
|
}
|
|
148
179
|
//# sourceMappingURL=seed.js.map
|
package/dist/tiles/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAGL,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"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"}
|