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/README.md +10 -0
- package/dist/chunk-4KOXMHUW.js +223 -0
- package/dist/{chunk-VANVV4F7.js → chunk-CC2R4JGS.js} +69 -7
- package/dist/chunk-USHP4IND.js +206 -0
- package/dist/frames.js +6 -216
- package/dist/index.cjs +496 -9
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +23 -1
- package/dist/orbit.cjs +70 -6
- package/dist/orbit.d.cts +40 -1
- package/dist/orbit.d.ts +40 -1
- package/dist/orbit.js +5 -1
- package/dist/positioning.cjs +6 -3
- package/dist/positioning.d.cts +11 -3
- package/dist/positioning.d.ts +11 -3
- package/dist/positioning.js +6 -196
- package/package.json +1 -1
package/dist/frames.js
CHANGED
|
@@ -1,219 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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,
|