gnss-js 1.2.0 → 1.3.1

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/frames.js CHANGED
@@ -1,219 +1,9 @@
1
- // src/frames/index.ts
2
- var H = (t, d, r, tDot, dDot, rDot, epoch) => ({ t, d, r, tDot, dDot, rDot, epoch });
3
- var Z = [0, 0, 0];
4
- var FROM_ITRF2020 = {
5
- ITRF2014: H([-1.4, -0.9, 1.4], -0.42, Z, [0, -0.1, 0.2], 0, Z, 2015),
6
- ITRF2008: H([0.2, 1, 3.3], -0.29, Z, [0, -0.1, 0.1], 0.03, Z, 2015),
7
- ITRF2005: H([2.7, 0.1, -1.4], 0.65, Z, [0.3, -0.1, 0.1], 0.03, Z, 2015),
8
- ITRF2000: H([-0.2, 0.8, -34.2], 2.25, Z, [0.1, 0, -1.7], 0.11, Z, 2015),
9
- ITRF97: H(
10
- [6.5, -3.9, -77.9],
11
- 3.98,
12
- [0, 0, 0.36],
13
- [0.1, -0.6, -3.1],
14
- 0.12,
15
- [0, 0, 0.02],
16
- 2015
17
- ),
18
- ITRF96: H(
19
- [6.5, -3.9, -77.9],
20
- 3.98,
21
- [0, 0, 0.36],
22
- [0.1, -0.6, -3.1],
23
- 0.12,
24
- [0, 0, 0.02],
25
- 2015
26
- ),
27
- ITRF94: H(
28
- [6.5, -3.9, -77.9],
29
- 3.98,
30
- [0, 0, 0.36],
31
- [0.1, -0.6, -3.1],
32
- 0.12,
33
- [0, 0, 0.02],
34
- 2015
35
- ),
36
- ITRF93: H(
37
- [-65.8, 1.9, -71.3],
38
- 4.47,
39
- [-3.36, -4.33, 0.75],
40
- [-2.8, -0.2, -2.3],
41
- 0.12,
42
- [-0.11, -0.19, 0.07],
43
- 2015
44
- ),
45
- ITRF92: H(
46
- [14.5, -1.9, -85.9],
47
- 3.27,
48
- [0, 0, 0.36],
49
- [0.1, -0.6, -3.1],
50
- 0.12,
51
- [0, 0, 0.02],
52
- 2015
53
- ),
54
- ITRF91: H(
55
- [26.5, 12.1, -91.9],
56
- 4.67,
57
- [0, 0, 0.36],
58
- [0.1, -0.6, -3.1],
59
- 0.12,
60
- [0, 0, 0.02],
61
- 2015
62
- ),
63
- ITRF90: H(
64
- [24.5, 8.1, -107.9],
65
- 4.97,
66
- [0, 0, 0.36],
67
- [0.1, -0.6, -3.1],
68
- 0.12,
69
- [0, 0, 0.02],
70
- 2015
71
- ),
72
- ITRF89: H(
73
- [29.5, 32.1, -145.9],
74
- 8.37,
75
- [0, 0, 0.36],
76
- [0.1, -0.6, -3.1],
77
- 0.12,
78
- [0, 0, 0.02],
79
- 2015
80
- ),
81
- ITRF88: H(
82
- [24.5, -3.9, -169.9],
83
- 11.47,
84
- [0.1, 0, 0.36],
85
- [0.1, -0.6, -3.1],
86
- 0.12,
87
- [0, 0, 0.02],
88
- 2015
89
- ),
90
- /** ITRF2020 → ETRF2020, EPSG:10572 (epoch-1989 variant) */
91
- ETRF2020: H(Z, 0, Z, Z, 0, [0.086, 0.519, -0.753], 1989)
92
- };
93
- var ITRF2014_TO_ETRF2014 = H(Z, 0, Z, Z, 0, [0.085, 0.531, -0.77], 1989);
94
- var ITRF2014_TO_ETRF2000 = H(
95
- [54.7, 52.2, -74.1],
96
- 2.12,
97
- [1.701, 10.29, -16.632],
98
- [0.1, 0.1, -1.9],
99
- 0.11,
100
- [0.081, 0.49, -0.792],
101
- 2010
102
- );
103
- var ITRF2014_TO_NAD83_2011 = H(
104
- [1005.3, -1909.21, -541.57],
105
- 0.36891,
106
- [-26.78138, 0.42027, -10.93206],
107
- [0.79, -0.6, -1.44],
108
- -0.07201,
109
- [-0.06667, 0.75744, 0.05133],
110
- 2010
111
- );
112
- var MAS_TO_RAD = Math.PI / (180 * 3600 * 1e3);
113
- function applyHelmert(xyz, p, epoch, inverse = false) {
114
- const dt = epoch - p.epoch;
115
- const sign = inverse ? -1 : 1;
116
- const tx = sign * (p.t[0] + p.tDot[0] * dt) / 1e3;
117
- const ty = sign * (p.t[1] + p.tDot[1] * dt) / 1e3;
118
- const tz = sign * (p.t[2] + p.tDot[2] * dt) / 1e3;
119
- const d = sign * (p.d + p.dDot * dt) * 1e-9;
120
- const rx = sign * (p.r[0] + p.rDot[0] * dt) * MAS_TO_RAD;
121
- const ry = sign * (p.r[1] + p.rDot[1] * dt) * MAS_TO_RAD;
122
- const rz = sign * (p.r[2] + p.rDot[2] * dt) * MAS_TO_RAD;
123
- const [x, y, z] = xyz;
124
- return [
125
- x + tx + d * x - rz * y + ry * z,
126
- y + ty + rz * x + d * y - rx * z,
127
- z + tz - ry * x + rx * y + d * z
128
- ];
129
- }
130
- var EDGES = [
131
- ...Object.entries(FROM_ITRF2020).map(([to, p]) => ({
132
- from: "ITRF2020",
133
- to,
134
- p
135
- })),
136
- { from: "ITRF2014", to: "ETRF2014", p: ITRF2014_TO_ETRF2014 },
137
- { from: "ITRF2014", to: "ETRF2000", p: ITRF2014_TO_ETRF2000 },
138
- { from: "ITRF2014", to: "NAD83(2011)", p: ITRF2014_TO_NAD83_2011 }
139
- ];
140
- var REFERENCE_FRAMES = [
141
- "WGS84",
142
- "ITRF2020",
143
- "ITRF2014",
144
- "ITRF2008",
145
- "ITRF2005",
146
- "ITRF2000",
147
- "ITRF97",
148
- "ITRF96",
149
- "ITRF94",
150
- "ITRF93",
151
- "ITRF92",
152
- "ITRF91",
153
- "ITRF90",
154
- "ITRF89",
155
- "ITRF88",
156
- "ETRF2020",
157
- "ETRF2014",
158
- "ETRF2000",
159
- "NAD83(2011)"
160
- ];
161
- function resolveAlias(f) {
162
- return f === "WGS84" ? "ITRF2020" : f;
163
- }
164
- function findPath(from, to) {
165
- if (from === to) return [];
166
- const queue = [from];
167
- const cameFrom = /* @__PURE__ */ new Map();
168
- const seen = /* @__PURE__ */ new Set([from]);
169
- while (queue.length > 0) {
170
- const cur = queue.shift();
171
- for (const edge of EDGES) {
172
- let next = null;
173
- let inverse = false;
174
- if (edge.from === cur) {
175
- next = edge.to;
176
- } else if (edge.to === cur) {
177
- next = edge.from;
178
- inverse = true;
179
- }
180
- if (next === null || seen.has(next)) continue;
181
- seen.add(next);
182
- cameFrom.set(next, { prev: cur, edge, inverse });
183
- if (next === to) {
184
- const path = [];
185
- let node = to;
186
- while (node !== from) {
187
- const step = cameFrom.get(node);
188
- path.unshift({ edge: step.edge, inverse: step.inverse });
189
- node = step.prev;
190
- }
191
- return path;
192
- }
193
- queue.push(next);
194
- }
195
- }
196
- return null;
197
- }
198
- function transformFrame(xyz, from, to, epoch) {
199
- const src = resolveAlias(from);
200
- const dst = resolveAlias(to);
201
- const path = findPath(src, dst);
202
- if (!path) {
203
- throw new Error(`No transformation path from ${from} to ${to}`);
204
- }
205
- let out = [xyz[0], xyz[1], xyz[2]];
206
- for (const { edge, inverse } of path) {
207
- out = applyHelmert(out, edge.p, epoch, inverse);
208
- }
209
- return out;
210
- }
211
- function dateToEpoch(date) {
212
- const year = date.getUTCFullYear();
213
- const start = Date.UTC(year, 0, 1);
214
- const end = Date.UTC(year + 1, 0, 1);
215
- return year + (date.getTime() - start) / (end - start);
216
- }
1
+ import {
2
+ REFERENCE_FRAMES,
3
+ applyHelmert,
4
+ dateToEpoch,
5
+ transformFrame
6
+ } from "./chunk-4KOXMHUW.js";
217
7
  export {
218
8
  REFERENCE_FRAMES,
219
9
  applyHelmert,