@neilberkman/sidereon 0.11.1 → 0.13.0
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/package.json +1 -1
- package/pkg/sidereon.d.ts +2296 -1277
- package/pkg/sidereon.js +2046 -170
- package/pkg/sidereon_bg.wasm +0 -0
- package/pkg/sidereon_bg.wasm.d.ts +1338 -1226
- package/pkg-node/sidereon.d.ts +907 -0
- package/pkg-node/sidereon.js +2098 -171
- package/pkg-node/sidereon_bg.wasm +0 -0
- package/pkg-node/sidereon_bg.wasm.d.ts +1338 -1226
package/pkg-node/sidereon.js
CHANGED
|
@@ -884,6 +884,43 @@ class BroadcastEphemeris {
|
|
|
884
884
|
const ret = wasm.broadcastephemeris_leapSeconds(this.__wbg_ptr);
|
|
885
885
|
return ret[0] === 0 ? undefined : ret[1];
|
|
886
886
|
}
|
|
887
|
+
/**
|
|
888
|
+
* Query ECEF position and clock for parallel satellite and epoch arrays
|
|
889
|
+
* against this parsed broadcast ephemeris store.
|
|
890
|
+
*
|
|
891
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
892
|
+
* seconds since J2000 in GPST for GNSS broadcast records. The returned
|
|
893
|
+
* plain object has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
894
|
+
* `elementResults` arrays.
|
|
895
|
+
* @param {any} satellites
|
|
896
|
+
* @param {any} epochs_j2000_s
|
|
897
|
+
* @returns {any}
|
|
898
|
+
*/
|
|
899
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
900
|
+
const ret = wasm.broadcastephemeris_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
901
|
+
if (ret[2]) {
|
|
902
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
903
|
+
}
|
|
904
|
+
return takeFromExternrefTable0(ret[0]);
|
|
905
|
+
}
|
|
906
|
+
/**
|
|
907
|
+
* Query ECEF position and clock for many satellites at one epoch against
|
|
908
|
+
* this parsed broadcast ephemeris store.
|
|
909
|
+
*
|
|
910
|
+
* `epochJ2000S` is seconds since J2000 in GPST. The returned object follows
|
|
911
|
+
* the same contract as
|
|
912
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
913
|
+
* @param {any} satellites
|
|
914
|
+
* @param {number} epoch_j2000_s
|
|
915
|
+
* @returns {any}
|
|
916
|
+
*/
|
|
917
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
918
|
+
const ret = wasm.broadcastephemeris_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
919
|
+
if (ret[2]) {
|
|
920
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
921
|
+
}
|
|
922
|
+
return takeFromExternrefTable0(ret[0]);
|
|
923
|
+
}
|
|
887
924
|
/**
|
|
888
925
|
* Number of usable GPS, Galileo, and BeiDou records.
|
|
889
926
|
* @returns {number}
|
|
@@ -3832,6 +3869,12 @@ class DragForce {
|
|
|
3832
3869
|
if (Symbol.dispose) DragForce.prototype[Symbol.dispose] = DragForce.prototype.free;
|
|
3833
3870
|
exports.DragForce = DragForce;
|
|
3834
3871
|
|
|
3872
|
+
/**
|
|
3873
|
+
* A DTED terrain tile cache rooted at a directory of DTED Level 2 files.
|
|
3874
|
+
*
|
|
3875
|
+
* Heights are ORTHOMETRIC terrain elevations in meters. Point order is always
|
|
3876
|
+
* longitude first, then latitude, both in degrees.
|
|
3877
|
+
*/
|
|
3835
3878
|
class DtedTerrain {
|
|
3836
3879
|
__destroy_into_raw() {
|
|
3837
3880
|
const ptr = this.__wbg_ptr;
|
|
@@ -3844,6 +3887,30 @@ class DtedTerrain {
|
|
|
3844
3887
|
wasm.__wbg_dtedterrain_free(ptr, 0);
|
|
3845
3888
|
}
|
|
3846
3889
|
/**
|
|
3890
|
+
* Batch terrain heights in ORTHOMETRIC meters for longitude-first points.
|
|
3891
|
+
*
|
|
3892
|
+
* `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
|
|
3893
|
+
* `{ longitudeDeg, latitudeDeg }` objects. `options.interpolation` is
|
|
3894
|
+
* `"bilinear"`, `"nearest"`, or `"nearestPosting"`. The return value is
|
|
3895
|
+
* index-aligned to `points`; each entry is `{ ok: true, heightM }` or
|
|
3896
|
+
* `{ ok: false, error }`. Missing tiles evaluate to `0.0`.
|
|
3897
|
+
* @param {any} points
|
|
3898
|
+
* @param {any} options
|
|
3899
|
+
* @returns {any}
|
|
3900
|
+
*/
|
|
3901
|
+
heightBatch(points, options) {
|
|
3902
|
+
const ret = wasm.dtedterrain_heightBatch(this.__wbg_ptr, points, options);
|
|
3903
|
+
if (ret[2]) {
|
|
3904
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
3905
|
+
}
|
|
3906
|
+
return takeFromExternrefTable0(ret[0]);
|
|
3907
|
+
}
|
|
3908
|
+
/**
|
|
3909
|
+
* Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
|
|
3910
|
+
*
|
|
3911
|
+
* Longitude and latitude are degrees. The lookup uses bilinear
|
|
3912
|
+
* interpolation. Missing tiles evaluate to `0.0`, matching the core DTED
|
|
3913
|
+
* fallback.
|
|
3847
3914
|
* @param {number} longitude_deg
|
|
3848
3915
|
* @param {number} latitude_deg
|
|
3849
3916
|
* @returns {number}
|
|
@@ -3856,6 +3923,11 @@ class DtedTerrain {
|
|
|
3856
3923
|
return ret[0];
|
|
3857
3924
|
}
|
|
3858
3925
|
/**
|
|
3926
|
+
* Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
|
|
3927
|
+
*
|
|
3928
|
+
* Longitude and latitude are degrees. `options.interpolation` is
|
|
3929
|
+
* `"bilinear"`, `"nearest"`, or `"nearestPosting"`. Missing tiles evaluate
|
|
3930
|
+
* to `0.0`, matching the core DTED fallback.
|
|
3859
3931
|
* @param {number} longitude_deg
|
|
3860
3932
|
* @param {number} latitude_deg
|
|
3861
3933
|
* @param {any} options
|
|
@@ -3869,6 +3941,10 @@ class DtedTerrain {
|
|
|
3869
3941
|
return ret[0];
|
|
3870
3942
|
}
|
|
3871
3943
|
/**
|
|
3944
|
+
* Create a DTED terrain reader rooted at `root`.
|
|
3945
|
+
*
|
|
3946
|
+
* The root may contain tile files directly or the nested block layout the
|
|
3947
|
+
* core reader recognizes. Height results are ORTHOMETRIC meters.
|
|
3872
3948
|
* @param {string} root
|
|
3873
3949
|
*/
|
|
3874
3950
|
constructor(root) {
|
|
@@ -3883,6 +3959,101 @@ class DtedTerrain {
|
|
|
3883
3959
|
if (Symbol.dispose) DtedTerrain.prototype[Symbol.dispose] = DtedTerrain.prototype.free;
|
|
3884
3960
|
exports.DtedTerrain = DtedTerrain;
|
|
3885
3961
|
|
|
3962
|
+
/**
|
|
3963
|
+
* Loaded EGM96 15-arcminute geoid grid for explicit terrain datum conversion.
|
|
3964
|
+
*/
|
|
3965
|
+
class Egm96FifteenMinuteGeoid {
|
|
3966
|
+
static __wrap(ptr) {
|
|
3967
|
+
const obj = Object.create(Egm96FifteenMinuteGeoid.prototype);
|
|
3968
|
+
obj.__wbg_ptr = ptr;
|
|
3969
|
+
Egm96FifteenMinuteGeoidFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
3970
|
+
return obj;
|
|
3971
|
+
}
|
|
3972
|
+
__destroy_into_raw() {
|
|
3973
|
+
const ptr = this.__wbg_ptr;
|
|
3974
|
+
this.__wbg_ptr = 0;
|
|
3975
|
+
Egm96FifteenMinuteGeoidFinalization.unregister(this);
|
|
3976
|
+
return ptr;
|
|
3977
|
+
}
|
|
3978
|
+
free() {
|
|
3979
|
+
const ptr = this.__destroy_into_raw();
|
|
3980
|
+
wasm.__wbg_egm96fifteenminutegeoid_free(ptr, 0);
|
|
3981
|
+
}
|
|
3982
|
+
/**
|
|
3983
|
+
* Load `WW15MGH.DAC` bytes as an EGM96 15-arcminute geoid grid.
|
|
3984
|
+
* @param {Uint8Array} bytes
|
|
3985
|
+
* @returns {Egm96FifteenMinuteGeoid}
|
|
3986
|
+
*/
|
|
3987
|
+
static fromWw15mghDacBytes(bytes) {
|
|
3988
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
3989
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3990
|
+
const ret = wasm.egm96fifteenminutegeoid_fromWw15mghDacBytes(ptr0, len0);
|
|
3991
|
+
if (ret[2]) {
|
|
3992
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
3993
|
+
}
|
|
3994
|
+
return Egm96FifteenMinuteGeoid.__wrap(ret[0]);
|
|
3995
|
+
}
|
|
3996
|
+
/**
|
|
3997
|
+
* Read and load `WW15MGH.DAC` from disk. A missing file throws a typed
|
|
3998
|
+
* `MissingEgm96Dac` error with `path` and `remediation` fields.
|
|
3999
|
+
* @param {string} path
|
|
4000
|
+
* @returns {Egm96FifteenMinuteGeoid}
|
|
4001
|
+
*/
|
|
4002
|
+
static fromWw15mghDacPath(path) {
|
|
4003
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
4004
|
+
const len0 = WASM_VECTOR_LEN;
|
|
4005
|
+
const ret = wasm.egm96fifteenminutegeoid_fromWw15mghDacPath(ptr0, len0);
|
|
4006
|
+
if (ret[2]) {
|
|
4007
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
4008
|
+
}
|
|
4009
|
+
return Egm96FifteenMinuteGeoid.__wrap(ret[0]);
|
|
4010
|
+
}
|
|
4011
|
+
}
|
|
4012
|
+
if (Symbol.dispose) Egm96FifteenMinuteGeoid.prototype[Symbol.dispose] = Egm96FifteenMinuteGeoid.prototype.free;
|
|
4013
|
+
exports.Egm96FifteenMinuteGeoid = Egm96FifteenMinuteGeoid;
|
|
4014
|
+
|
|
4015
|
+
/**
|
|
4016
|
+
* Ellipsoidal height `h` in metres above the WGS84 reference ellipsoid.
|
|
4017
|
+
*/
|
|
4018
|
+
class EllipsoidalHeightM {
|
|
4019
|
+
static __wrap(ptr) {
|
|
4020
|
+
const obj = Object.create(EllipsoidalHeightM.prototype);
|
|
4021
|
+
obj.__wbg_ptr = ptr;
|
|
4022
|
+
EllipsoidalHeightMFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
4023
|
+
return obj;
|
|
4024
|
+
}
|
|
4025
|
+
__destroy_into_raw() {
|
|
4026
|
+
const ptr = this.__wbg_ptr;
|
|
4027
|
+
this.__wbg_ptr = 0;
|
|
4028
|
+
EllipsoidalHeightMFinalization.unregister(this);
|
|
4029
|
+
return ptr;
|
|
4030
|
+
}
|
|
4031
|
+
free() {
|
|
4032
|
+
const ptr = this.__destroy_into_raw();
|
|
4033
|
+
wasm.__wbg_ellipsoidalheightm_free(ptr, 0);
|
|
4034
|
+
}
|
|
4035
|
+
/**
|
|
4036
|
+
* Build an ellipsoidal height `h` in metres.
|
|
4037
|
+
* @param {number} value_m
|
|
4038
|
+
*/
|
|
4039
|
+
constructor(value_m) {
|
|
4040
|
+
const ret = wasm.ellipsoidalheightm_new(value_m);
|
|
4041
|
+
this.__wbg_ptr = ret;
|
|
4042
|
+
EllipsoidalHeightMFinalization.register(this, this.__wbg_ptr, this);
|
|
4043
|
+
return this;
|
|
4044
|
+
}
|
|
4045
|
+
/**
|
|
4046
|
+
* Ellipsoidal height `h`, metres above the WGS84 reference ellipsoid.
|
|
4047
|
+
* @returns {number}
|
|
4048
|
+
*/
|
|
4049
|
+
get valueM() {
|
|
4050
|
+
const ret = wasm.ellipsoidalheightm_valueM(this.__wbg_ptr);
|
|
4051
|
+
return ret;
|
|
4052
|
+
}
|
|
4053
|
+
}
|
|
4054
|
+
if (Symbol.dispose) EllipsoidalHeightM.prototype[Symbol.dispose] = EllipsoidalHeightM.prototype.free;
|
|
4055
|
+
exports.EllipsoidalHeightM = EllipsoidalHeightM;
|
|
4056
|
+
|
|
3886
4057
|
/**
|
|
3887
4058
|
* Orthonormal encounter frame built from two relative states.
|
|
3888
4059
|
*/
|
|
@@ -5518,6 +5689,24 @@ class Ionex {
|
|
|
5518
5689
|
const ret = wasm.ionex_baseRadiusKm(this.__wbg_ptr);
|
|
5519
5690
|
return ret;
|
|
5520
5691
|
}
|
|
5692
|
+
/**
|
|
5693
|
+
* Signed latitude grid step, degrees. Standard IONEX grids are
|
|
5694
|
+
* north-to-south, so this value is usually negative.
|
|
5695
|
+
* @returns {number}
|
|
5696
|
+
*/
|
|
5697
|
+
get dlatDeg() {
|
|
5698
|
+
const ret = wasm.ionex_dlatDeg(this.__wbg_ptr);
|
|
5699
|
+
return ret;
|
|
5700
|
+
}
|
|
5701
|
+
/**
|
|
5702
|
+
* Signed longitude grid step, degrees. Standard IONEX grids are
|
|
5703
|
+
* west-to-east, so this value is usually positive.
|
|
5704
|
+
* @returns {number}
|
|
5705
|
+
*/
|
|
5706
|
+
get dlonDeg() {
|
|
5707
|
+
const ret = wasm.ionex_dlonDeg(this.__wbg_ptr);
|
|
5708
|
+
return ret;
|
|
5709
|
+
}
|
|
5521
5710
|
/**
|
|
5522
5711
|
* The IONEX `EXPONENT` header field; the TEC scale is `10^exponent`.
|
|
5523
5712
|
* @returns {number}
|
|
@@ -5591,6 +5780,36 @@ class Ionex {
|
|
|
5591
5780
|
}
|
|
5592
5781
|
return ret[0];
|
|
5593
5782
|
}
|
|
5783
|
+
/**
|
|
5784
|
+
* Extract the full IONEX vertical-TEC grids as plain sample data.
|
|
5785
|
+
*
|
|
5786
|
+
* Epochs are integer seconds since J2000. Latitude and longitude nodes and
|
|
5787
|
+
* grid steps are degrees. TEC and RMS maps are TECU and indexed
|
|
5788
|
+
* `[map][iLat][iLon]`. The shell height and base radius are kilometers.
|
|
5789
|
+
* @returns {any}
|
|
5790
|
+
*/
|
|
5791
|
+
tecGridSamples() {
|
|
5792
|
+
const ret = wasm.ionex_tecGridSamples(this.__wbg_ptr);
|
|
5793
|
+
if (ret[2]) {
|
|
5794
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
5795
|
+
}
|
|
5796
|
+
return takeFromExternrefTable0(ret[0]);
|
|
5797
|
+
}
|
|
5798
|
+
/**
|
|
5799
|
+
* Extract one IONEX vertical-TEC sample per grid node.
|
|
5800
|
+
*
|
|
5801
|
+
* Each sample is `{ epochJ2000S, latDeg, lonDeg, vtecTecu, rmsTecu }`.
|
|
5802
|
+
* Epochs are integer seconds since J2000, coordinates are degrees, and TEC
|
|
5803
|
+
* and RMS values are TECU.
|
|
5804
|
+
* @returns {any}
|
|
5805
|
+
*/
|
|
5806
|
+
tecSamples() {
|
|
5807
|
+
const ret = wasm.ionex_tecSamples(this.__wbg_ptr);
|
|
5808
|
+
if (ret[2]) {
|
|
5809
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
5810
|
+
}
|
|
5811
|
+
return takeFromExternrefTable0(ret[0]);
|
|
5812
|
+
}
|
|
5594
5813
|
/**
|
|
5595
5814
|
* Serialize to standard IONEX text. Deterministic: the same product always
|
|
5596
5815
|
* produces byte-identical text, and re-parsing the output yields an equal
|
|
@@ -6910,119 +7129,369 @@ if (Symbol.dispose) MappingFactors.prototype[Symbol.dispose] = MappingFactors.pr
|
|
|
6910
7129
|
exports.MappingFactors = MappingFactors;
|
|
6911
7130
|
|
|
6912
7131
|
/**
|
|
6913
|
-
*
|
|
7132
|
+
* In-memory reader for memory-mappable terrain store bytes.
|
|
7133
|
+
*
|
|
7134
|
+
* Query results are orthometric terrain heights `H` in metres. Use the
|
|
7135
|
+
* ellipsoidal methods only when a geoid model is deliberately selected.
|
|
6914
7136
|
*/
|
|
6915
|
-
class
|
|
7137
|
+
class MmapTerrain {
|
|
6916
7138
|
static __wrap(ptr) {
|
|
6917
|
-
const obj = Object.create(
|
|
7139
|
+
const obj = Object.create(MmapTerrain.prototype);
|
|
6918
7140
|
obj.__wbg_ptr = ptr;
|
|
6919
|
-
|
|
7141
|
+
MmapTerrainFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
6920
7142
|
return obj;
|
|
6921
7143
|
}
|
|
6922
7144
|
__destroy_into_raw() {
|
|
6923
7145
|
const ptr = this.__wbg_ptr;
|
|
6924
7146
|
this.__wbg_ptr = 0;
|
|
6925
|
-
|
|
7147
|
+
MmapTerrainFinalization.unregister(this);
|
|
6926
7148
|
return ptr;
|
|
6927
7149
|
}
|
|
6928
7150
|
free() {
|
|
6929
7151
|
const ptr = this.__destroy_into_raw();
|
|
6930
|
-
wasm.
|
|
7152
|
+
wasm.__wbg_mmapterrain_free(ptr, 0);
|
|
6931
7153
|
}
|
|
6932
7154
|
/**
|
|
6933
|
-
*
|
|
6934
|
-
* @returns {
|
|
7155
|
+
* FNV-1a checksum of the full terrain store byte span.
|
|
7156
|
+
* @returns {bigint}
|
|
6935
7157
|
*/
|
|
6936
|
-
|
|
6937
|
-
const ret = wasm.
|
|
6938
|
-
return ret;
|
|
7158
|
+
checksum64() {
|
|
7159
|
+
const ret = wasm.mmapterrain_checksum64(this.__wbg_ptr);
|
|
7160
|
+
return BigInt.asUintN(64, ret);
|
|
6939
7161
|
}
|
|
6940
7162
|
/**
|
|
6941
|
-
*
|
|
6942
|
-
*
|
|
7163
|
+
* Ellipsoidal height `h = H + N` in metres at `(longitudeDeg, latitudeDeg)`
|
|
7164
|
+
* using the embedded EGM96 1-degree geoid grid.
|
|
7165
|
+
* @param {number} longitude_deg
|
|
7166
|
+
* @param {number} latitude_deg
|
|
7167
|
+
* @returns {EllipsoidalHeightM}
|
|
6943
7168
|
*/
|
|
6944
|
-
|
|
6945
|
-
|
|
6946
|
-
|
|
6947
|
-
|
|
6948
|
-
const ret = wasm.moonelevationcrossing_kind(this.__wbg_ptr);
|
|
6949
|
-
deferred1_0 = ret[0];
|
|
6950
|
-
deferred1_1 = ret[1];
|
|
6951
|
-
return getStringFromWasm0(ret[0], ret[1]);
|
|
6952
|
-
} finally {
|
|
6953
|
-
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7169
|
+
ellipsoidalHeightM(longitude_deg, latitude_deg) {
|
|
7170
|
+
const ret = wasm.mmapterrain_ellipsoidalHeightM(this.__wbg_ptr, longitude_deg, latitude_deg);
|
|
7171
|
+
if (ret[2]) {
|
|
7172
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
6954
7173
|
}
|
|
7174
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
6955
7175
|
}
|
|
6956
7176
|
/**
|
|
6957
|
-
*
|
|
6958
|
-
*
|
|
7177
|
+
* Ellipsoidal height `h = H + N` in metres using an explicit geoid model.
|
|
7178
|
+
*
|
|
7179
|
+
* The terrain lookup input order is `(longitudeDeg, latitudeDeg)`. Choosing
|
|
7180
|
+
* the EGM96 15-arcminute model requires a loaded `WW15MGH.DAC` grid and
|
|
7181
|
+
* does not fall back to the embedded 1-degree grid.
|
|
7182
|
+
* @param {number} longitude_deg
|
|
7183
|
+
* @param {number} latitude_deg
|
|
7184
|
+
* @param {any} options
|
|
7185
|
+
* @param {TerrainGeoidModel} geoid
|
|
7186
|
+
* @returns {EllipsoidalHeightM}
|
|
6959
7187
|
*/
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
7188
|
+
ellipsoidalHeightMWithModel(longitude_deg, latitude_deg, options, geoid) {
|
|
7189
|
+
_assertClass(geoid, TerrainGeoidModel);
|
|
7190
|
+
const ret = wasm.mmapterrain_ellipsoidalHeightMWithModel(this.__wbg_ptr, longitude_deg, latitude_deg, options, geoid.__wbg_ptr);
|
|
7191
|
+
if (ret[2]) {
|
|
7192
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7193
|
+
}
|
|
7194
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
6963
7195
|
}
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
const
|
|
6974
|
-
|
|
6975
|
-
|
|
6976
|
-
|
|
7196
|
+
/**
|
|
7197
|
+
* Ellipsoidal height `h = H + N` in metres using embedded EGM96 1-degree
|
|
7198
|
+
* geoid conversion and explicit terrain lookup options.
|
|
7199
|
+
* @param {number} longitude_deg
|
|
7200
|
+
* @param {number} latitude_deg
|
|
7201
|
+
* @param {any} options
|
|
7202
|
+
* @returns {EllipsoidalHeightM}
|
|
7203
|
+
*/
|
|
7204
|
+
ellipsoidalHeightMWithOptions(longitude_deg, latitude_deg, options) {
|
|
7205
|
+
const ret = wasm.mmapterrain_ellipsoidalHeightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
|
|
7206
|
+
if (ret[2]) {
|
|
7207
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7208
|
+
}
|
|
7209
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
6977
7210
|
}
|
|
6978
|
-
|
|
6979
|
-
|
|
6980
|
-
|
|
6981
|
-
|
|
6982
|
-
|
|
7211
|
+
/**
|
|
7212
|
+
* Parse terrain store bytes from a `Uint8Array`.
|
|
7213
|
+
* @param {Uint8Array} bytes
|
|
7214
|
+
* @returns {MmapTerrain}
|
|
7215
|
+
*/
|
|
7216
|
+
static fromBytes(bytes) {
|
|
7217
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
7218
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7219
|
+
const ret = wasm.mmapterrain_fromBytes(ptr0, len0);
|
|
7220
|
+
if (ret[2]) {
|
|
7221
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7222
|
+
}
|
|
7223
|
+
return MmapTerrain.__wrap(ret[0]);
|
|
6983
7224
|
}
|
|
6984
|
-
|
|
6985
|
-
|
|
6986
|
-
|
|
7225
|
+
/**
|
|
7226
|
+
* Read a terrain store file from host I/O and parse it into memory.
|
|
7227
|
+
*
|
|
7228
|
+
* Browser runtimes should use [`MmapTerrain.fromBytes`] with fetched bytes.
|
|
7229
|
+
* @param {string} path
|
|
7230
|
+
* @returns {MmapTerrain}
|
|
7231
|
+
*/
|
|
7232
|
+
static fromPath(path) {
|
|
7233
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7234
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7235
|
+
const ret = wasm.mmapterrain_fromPath(ptr0, len0);
|
|
7236
|
+
if (ret[2]) {
|
|
7237
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7238
|
+
}
|
|
7239
|
+
return MmapTerrain.__wrap(ret[0]);
|
|
6987
7240
|
}
|
|
6988
7241
|
/**
|
|
6989
|
-
*
|
|
6990
|
-
* @
|
|
7242
|
+
* Parse terrain store bytes from an owned `Uint8Array` copy.
|
|
7243
|
+
* @param {Uint8Array} bytes
|
|
7244
|
+
* @returns {MmapTerrain}
|
|
6991
7245
|
*/
|
|
6992
|
-
|
|
6993
|
-
const
|
|
6994
|
-
|
|
7246
|
+
static fromVec(bytes) {
|
|
7247
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
7248
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7249
|
+
const ret = wasm.mmapterrain_fromVec(ptr0, len0);
|
|
7250
|
+
if (ret[2]) {
|
|
7251
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7252
|
+
}
|
|
7253
|
+
return MmapTerrain.__wrap(ret[0]);
|
|
6995
7254
|
}
|
|
6996
7255
|
/**
|
|
6997
|
-
*
|
|
6998
|
-
*
|
|
6999
|
-
*
|
|
7256
|
+
* Batch ORTHOMETRIC terrain heights for longitude-first points.
|
|
7257
|
+
*
|
|
7258
|
+
* `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
|
|
7259
|
+
* `{ longitudeDeg, latitudeDeg }` objects. Each entry is
|
|
7260
|
+
* `{ ok: true, heightM }` or `{ ok: false, error }`.
|
|
7261
|
+
* @param {any} points
|
|
7262
|
+
* @param {any} options
|
|
7263
|
+
* @returns {any}
|
|
7000
7264
|
*/
|
|
7001
|
-
|
|
7002
|
-
|
|
7003
|
-
|
|
7004
|
-
|
|
7005
|
-
const ret = wasm.moontransit_kind(this.__wbg_ptr);
|
|
7006
|
-
deferred1_0 = ret[0];
|
|
7007
|
-
deferred1_1 = ret[1];
|
|
7008
|
-
return getStringFromWasm0(ret[0], ret[1]);
|
|
7009
|
-
} finally {
|
|
7010
|
-
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7265
|
+
heightBatch(points, options) {
|
|
7266
|
+
const ret = wasm.mmapterrain_heightBatch(this.__wbg_ptr, points, options);
|
|
7267
|
+
if (ret[2]) {
|
|
7268
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7011
7269
|
}
|
|
7270
|
+
return takeFromExternrefTable0(ret[0]);
|
|
7012
7271
|
}
|
|
7013
7272
|
/**
|
|
7014
|
-
*
|
|
7015
|
-
*
|
|
7273
|
+
* Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
|
|
7274
|
+
*
|
|
7275
|
+
* Longitude and latitude are degrees. The lookup uses bilinear
|
|
7276
|
+
* interpolation. Missing tiles evaluate to `0.0`.
|
|
7277
|
+
* @param {number} longitude_deg
|
|
7278
|
+
* @param {number} latitude_deg
|
|
7279
|
+
* @returns {number}
|
|
7016
7280
|
*/
|
|
7017
|
-
|
|
7018
|
-
const ret = wasm.
|
|
7019
|
-
|
|
7281
|
+
heightM(longitude_deg, latitude_deg) {
|
|
7282
|
+
const ret = wasm.mmapterrain_heightM(this.__wbg_ptr, longitude_deg, latitude_deg);
|
|
7283
|
+
if (ret[2]) {
|
|
7284
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7285
|
+
}
|
|
7286
|
+
return ret[0];
|
|
7020
7287
|
}
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7288
|
+
/**
|
|
7289
|
+
* Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
|
|
7290
|
+
*
|
|
7291
|
+
* `options.interpolation` is `"bilinear"`, `"nearest"`, or
|
|
7292
|
+
* `"nearestPosting"`.
|
|
7293
|
+
* @param {number} longitude_deg
|
|
7294
|
+
* @param {number} latitude_deg
|
|
7295
|
+
* @param {any} options
|
|
7296
|
+
* @returns {number}
|
|
7297
|
+
*/
|
|
7298
|
+
heightMWithOptions(longitude_deg, latitude_deg, options) {
|
|
7299
|
+
const ret = wasm.mmapterrain_heightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
|
|
7300
|
+
if (ret[2]) {
|
|
7301
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7302
|
+
}
|
|
7303
|
+
return ret[0];
|
|
7304
|
+
}
|
|
7305
|
+
/**
|
|
7306
|
+
* Batch typed ORTHOMETRIC terrain heights for longitude-first points.
|
|
7307
|
+
*
|
|
7308
|
+
* Each entry is `{ ok: true, orthometricHeightM: { valueM } }` or
|
|
7309
|
+
* `{ ok: false, error }`.
|
|
7310
|
+
* @param {any} points
|
|
7311
|
+
* @param {any} options
|
|
7312
|
+
* @returns {any}
|
|
7313
|
+
*/
|
|
7314
|
+
orthometricHeightBatch(points, options) {
|
|
7315
|
+
const ret = wasm.mmapterrain_orthometricHeightBatch(this.__wbg_ptr, points, options);
|
|
7316
|
+
if (ret[2]) {
|
|
7317
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7318
|
+
}
|
|
7319
|
+
return takeFromExternrefTable0(ret[0]);
|
|
7320
|
+
}
|
|
7321
|
+
/**
|
|
7322
|
+
* Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`.
|
|
7323
|
+
* @param {number} longitude_deg
|
|
7324
|
+
* @param {number} latitude_deg
|
|
7325
|
+
* @returns {OrthometricHeightM}
|
|
7326
|
+
*/
|
|
7327
|
+
orthometricHeightM(longitude_deg, latitude_deg) {
|
|
7328
|
+
const ret = wasm.mmapterrain_orthometricHeightM(this.__wbg_ptr, longitude_deg, latitude_deg);
|
|
7329
|
+
if (ret[2]) {
|
|
7330
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7331
|
+
}
|
|
7332
|
+
return OrthometricHeightM.__wrap(ret[0]);
|
|
7333
|
+
}
|
|
7334
|
+
/**
|
|
7335
|
+
* Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`
|
|
7336
|
+
* with explicit lookup options.
|
|
7337
|
+
* @param {number} longitude_deg
|
|
7338
|
+
* @param {number} latitude_deg
|
|
7339
|
+
* @param {any} options
|
|
7340
|
+
* @returns {OrthometricHeightM}
|
|
7341
|
+
*/
|
|
7342
|
+
orthometricHeightMWithOptions(longitude_deg, latitude_deg, options) {
|
|
7343
|
+
const ret = wasm.mmapterrain_orthometricHeightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
|
|
7344
|
+
if (ret[2]) {
|
|
7345
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7346
|
+
}
|
|
7347
|
+
return OrthometricHeightM.__wrap(ret[0]);
|
|
7348
|
+
}
|
|
7349
|
+
/**
|
|
7350
|
+
* Parsed tile index records in store order.
|
|
7351
|
+
* @returns {TerrainStoreTileIndex[]}
|
|
7352
|
+
*/
|
|
7353
|
+
tileIndex() {
|
|
7354
|
+
const ret = wasm.mmapterrain_tileIndex(this.__wbg_ptr);
|
|
7355
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
7356
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
7357
|
+
return v1;
|
|
7358
|
+
}
|
|
7359
|
+
/**
|
|
7360
|
+
* Canonical store bytes for this parsed terrain store.
|
|
7361
|
+
* @returns {Uint8Array}
|
|
7362
|
+
*/
|
|
7363
|
+
toBytes() {
|
|
7364
|
+
const ret = wasm.mmapterrain_toBytes(this.__wbg_ptr);
|
|
7365
|
+
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
7366
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
7367
|
+
return v1;
|
|
7368
|
+
}
|
|
7369
|
+
/**
|
|
7370
|
+
* File-level vertical datum for the store's orthometric posting payloads.
|
|
7371
|
+
* @returns {VerticalDatum}
|
|
7372
|
+
*/
|
|
7373
|
+
get verticalDatum() {
|
|
7374
|
+
const ret = wasm.mmapterrain_verticalDatum(this.__wbg_ptr);
|
|
7375
|
+
return ret;
|
|
7376
|
+
}
|
|
7377
|
+
}
|
|
7378
|
+
if (Symbol.dispose) MmapTerrain.prototype[Symbol.dispose] = MmapTerrain.prototype.free;
|
|
7379
|
+
exports.MmapTerrain = MmapTerrain;
|
|
7380
|
+
|
|
7381
|
+
/**
|
|
7382
|
+
* One refined Moon elevation threshold crossing (moonrise / moonset).
|
|
7383
|
+
*/
|
|
7384
|
+
class MoonElevationCrossing {
|
|
7385
|
+
static __wrap(ptr) {
|
|
7386
|
+
const obj = Object.create(MoonElevationCrossing.prototype);
|
|
7387
|
+
obj.__wbg_ptr = ptr;
|
|
7388
|
+
MoonElevationCrossingFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
7389
|
+
return obj;
|
|
7390
|
+
}
|
|
7391
|
+
__destroy_into_raw() {
|
|
7392
|
+
const ptr = this.__wbg_ptr;
|
|
7393
|
+
this.__wbg_ptr = 0;
|
|
7394
|
+
MoonElevationCrossingFinalization.unregister(this);
|
|
7395
|
+
return ptr;
|
|
7396
|
+
}
|
|
7397
|
+
free() {
|
|
7398
|
+
const ptr = this.__destroy_into_raw();
|
|
7399
|
+
wasm.__wbg_moonelevationcrossing_free(ptr, 0);
|
|
7400
|
+
}
|
|
7401
|
+
/**
|
|
7402
|
+
* Topocentric Moon elevation at the refined instant, degrees.
|
|
7403
|
+
* @returns {number}
|
|
7404
|
+
*/
|
|
7405
|
+
get elevationDeg() {
|
|
7406
|
+
const ret = wasm.moonelevationcrossing_elevationDeg(this.__wbg_ptr);
|
|
7407
|
+
return ret;
|
|
7408
|
+
}
|
|
7409
|
+
/**
|
|
7410
|
+
* Crossing direction: `"rising"` (moonrise) or `"setting"` (moonset).
|
|
7411
|
+
* @returns {string}
|
|
7412
|
+
*/
|
|
7413
|
+
get kind() {
|
|
7414
|
+
let deferred1_0;
|
|
7415
|
+
let deferred1_1;
|
|
7416
|
+
try {
|
|
7417
|
+
const ret = wasm.moonelevationcrossing_kind(this.__wbg_ptr);
|
|
7418
|
+
deferred1_0 = ret[0];
|
|
7419
|
+
deferred1_1 = ret[1];
|
|
7420
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
7421
|
+
} finally {
|
|
7422
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7423
|
+
}
|
|
7424
|
+
}
|
|
7425
|
+
/**
|
|
7426
|
+
* Refined crossing instant, unix microseconds.
|
|
7427
|
+
* @returns {bigint}
|
|
7428
|
+
*/
|
|
7429
|
+
get timeUnixUs() {
|
|
7430
|
+
const ret = wasm.moonelevationcrossing_timeUnixUs(this.__wbg_ptr);
|
|
7431
|
+
return ret;
|
|
7432
|
+
}
|
|
7433
|
+
}
|
|
7434
|
+
if (Symbol.dispose) MoonElevationCrossing.prototype[Symbol.dispose] = MoonElevationCrossing.prototype.free;
|
|
7435
|
+
exports.MoonElevationCrossing = MoonElevationCrossing;
|
|
7436
|
+
|
|
7437
|
+
/**
|
|
7438
|
+
* One refined Moon meridian transit (culmination).
|
|
7439
|
+
*/
|
|
7440
|
+
class MoonTransit {
|
|
7441
|
+
static __wrap(ptr) {
|
|
7442
|
+
const obj = Object.create(MoonTransit.prototype);
|
|
7443
|
+
obj.__wbg_ptr = ptr;
|
|
7444
|
+
MoonTransitFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
7445
|
+
return obj;
|
|
7446
|
+
}
|
|
7447
|
+
__destroy_into_raw() {
|
|
7448
|
+
const ptr = this.__wbg_ptr;
|
|
7449
|
+
this.__wbg_ptr = 0;
|
|
7450
|
+
MoonTransitFinalization.unregister(this);
|
|
7451
|
+
return ptr;
|
|
7452
|
+
}
|
|
7453
|
+
free() {
|
|
7454
|
+
const ptr = this.__destroy_into_raw();
|
|
7455
|
+
wasm.__wbg_moontransit_free(ptr, 0);
|
|
7456
|
+
}
|
|
7457
|
+
/**
|
|
7458
|
+
* Topocentric Moon elevation at the refined instant, degrees.
|
|
7459
|
+
* @returns {number}
|
|
7460
|
+
*/
|
|
7461
|
+
get elevationDeg() {
|
|
7462
|
+
const ret = wasm.moontransit_elevationDeg(this.__wbg_ptr);
|
|
7463
|
+
return ret;
|
|
7464
|
+
}
|
|
7465
|
+
/**
|
|
7466
|
+
* Culmination kind: `"upper"` (due south, highest) or `"lower"` (due north,
|
|
7467
|
+
* lowest).
|
|
7468
|
+
* @returns {string}
|
|
7469
|
+
*/
|
|
7470
|
+
get kind() {
|
|
7471
|
+
let deferred1_0;
|
|
7472
|
+
let deferred1_1;
|
|
7473
|
+
try {
|
|
7474
|
+
const ret = wasm.moontransit_kind(this.__wbg_ptr);
|
|
7475
|
+
deferred1_0 = ret[0];
|
|
7476
|
+
deferred1_1 = ret[1];
|
|
7477
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
7478
|
+
} finally {
|
|
7479
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7480
|
+
}
|
|
7481
|
+
}
|
|
7482
|
+
/**
|
|
7483
|
+
* Refined culmination instant, unix microseconds.
|
|
7484
|
+
* @returns {bigint}
|
|
7485
|
+
*/
|
|
7486
|
+
get timeUnixUs() {
|
|
7487
|
+
const ret = wasm.moontransit_timeUnixUs(this.__wbg_ptr);
|
|
7488
|
+
return ret;
|
|
7489
|
+
}
|
|
7490
|
+
}
|
|
7491
|
+
if (Symbol.dispose) MoonTransit.prototype[Symbol.dispose] = MoonTransit.prototype.free;
|
|
7492
|
+
exports.MoonTransit = MoonTransit;
|
|
7493
|
+
|
|
7494
|
+
/**
|
|
7026
7495
|
* One solved moving-baseline epoch.
|
|
7027
7496
|
*/
|
|
7028
7497
|
class MovingBaselineSolution {
|
|
@@ -10049,6 +10518,81 @@ class OpmState {
|
|
|
10049
10518
|
if (Symbol.dispose) OpmState.prototype[Symbol.dispose] = OpmState.prototype.free;
|
|
10050
10519
|
exports.OpmState = OpmState;
|
|
10051
10520
|
|
|
10521
|
+
/**
|
|
10522
|
+
* Orthometric terrain height `H` in metres above the EGM96 mean sea level
|
|
10523
|
+
* geoid.
|
|
10524
|
+
*/
|
|
10525
|
+
class OrthometricHeightM {
|
|
10526
|
+
static __wrap(ptr) {
|
|
10527
|
+
const obj = Object.create(OrthometricHeightM.prototype);
|
|
10528
|
+
obj.__wbg_ptr = ptr;
|
|
10529
|
+
OrthometricHeightMFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
10530
|
+
return obj;
|
|
10531
|
+
}
|
|
10532
|
+
__destroy_into_raw() {
|
|
10533
|
+
const ptr = this.__wbg_ptr;
|
|
10534
|
+
this.__wbg_ptr = 0;
|
|
10535
|
+
OrthometricHeightMFinalization.unregister(this);
|
|
10536
|
+
return ptr;
|
|
10537
|
+
}
|
|
10538
|
+
free() {
|
|
10539
|
+
const ptr = this.__destroy_into_raw();
|
|
10540
|
+
wasm.__wbg_orthometricheightm_free(ptr, 0);
|
|
10541
|
+
}
|
|
10542
|
+
/**
|
|
10543
|
+
* Build an orthometric height `H` in metres.
|
|
10544
|
+
* @param {number} value_m
|
|
10545
|
+
*/
|
|
10546
|
+
constructor(value_m) {
|
|
10547
|
+
const ret = wasm.orthometricheightm_new(value_m);
|
|
10548
|
+
this.__wbg_ptr = ret;
|
|
10549
|
+
OrthometricHeightMFinalization.register(this, this.__wbg_ptr, this);
|
|
10550
|
+
return this;
|
|
10551
|
+
}
|
|
10552
|
+
/**
|
|
10553
|
+
* Convert to ellipsoidal height `h = H + N` using degree inputs in geoid
|
|
10554
|
+
* order `(latitudeDeg, longitudeDeg)` and an explicit geoid model.
|
|
10555
|
+
* @param {number} latitude_deg
|
|
10556
|
+
* @param {number} longitude_deg
|
|
10557
|
+
* @param {TerrainGeoidModel} geoid
|
|
10558
|
+
* @returns {EllipsoidalHeightM}
|
|
10559
|
+
*/
|
|
10560
|
+
toEllipsoidalHeightDeg(latitude_deg, longitude_deg, geoid) {
|
|
10561
|
+
_assertClass(geoid, TerrainGeoidModel);
|
|
10562
|
+
const ret = wasm.orthometricheightm_toEllipsoidalHeightDeg(this.__wbg_ptr, latitude_deg, longitude_deg, geoid.__wbg_ptr);
|
|
10563
|
+
if (ret[2]) {
|
|
10564
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
10565
|
+
}
|
|
10566
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
10567
|
+
}
|
|
10568
|
+
/**
|
|
10569
|
+
* Convert to ellipsoidal height `h = H + N` using radian inputs in geoid
|
|
10570
|
+
* order `(latitudeRad, longitudeRad)` and an explicit geoid model.
|
|
10571
|
+
* @param {number} latitude_rad
|
|
10572
|
+
* @param {number} longitude_rad
|
|
10573
|
+
* @param {TerrainGeoidModel} geoid
|
|
10574
|
+
* @returns {EllipsoidalHeightM}
|
|
10575
|
+
*/
|
|
10576
|
+
toEllipsoidalHeightRad(latitude_rad, longitude_rad, geoid) {
|
|
10577
|
+
_assertClass(geoid, TerrainGeoidModel);
|
|
10578
|
+
const ret = wasm.orthometricheightm_toEllipsoidalHeightRad(this.__wbg_ptr, latitude_rad, longitude_rad, geoid.__wbg_ptr);
|
|
10579
|
+
if (ret[2]) {
|
|
10580
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
10581
|
+
}
|
|
10582
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
10583
|
+
}
|
|
10584
|
+
/**
|
|
10585
|
+
* Orthometric height `H`, metres above the EGM96 mean sea level geoid.
|
|
10586
|
+
* @returns {number}
|
|
10587
|
+
*/
|
|
10588
|
+
get valueM() {
|
|
10589
|
+
const ret = wasm.orthometricheightm_valueM(this.__wbg_ptr);
|
|
10590
|
+
return ret;
|
|
10591
|
+
}
|
|
10592
|
+
}
|
|
10593
|
+
if (Symbol.dispose) OrthometricHeightM.prototype[Symbol.dispose] = OrthometricHeightM.prototype.free;
|
|
10594
|
+
exports.OrthometricHeightM = OrthometricHeightM;
|
|
10595
|
+
|
|
10052
10596
|
/**
|
|
10053
10597
|
* The result of [`parseTleFile`]: the satellites that parsed, plus a count of
|
|
10054
10598
|
* complete records that were skipped because SGP4 initialization failed.
|
|
@@ -10543,52 +11087,244 @@ if (Symbol.dispose) PppFloatSolution.prototype[Symbol.dispose] = PppFloatSolutio
|
|
|
10543
11087
|
exports.PppFloatSolution = PppFloatSolution;
|
|
10544
11088
|
|
|
10545
11089
|
/**
|
|
10546
|
-
* A precise-ephemeris
|
|
11090
|
+
* A reusable precise-ephemeris interpolant with cached per-satellite nodes.
|
|
10547
11091
|
*
|
|
10548
|
-
*
|
|
10549
|
-
*
|
|
10550
|
-
*
|
|
10551
|
-
|
|
10552
|
-
|
|
11092
|
+
* Build this handle once from a parsed [`Sp3`] product, raw precise samples, or
|
|
11093
|
+
* a [`PreciseEphemerisSampleSource`], then reuse it for many state or range
|
|
11094
|
+
* queries. The handle delegates to
|
|
11095
|
+
* `sidereon_core::ephemeris::PreciseEphemerisInterpolant`; ECEF positions are
|
|
11096
|
+
* metres, clocks are seconds, and query epochs are seconds since J2000 in the
|
|
11097
|
+
* source time scale.
|
|
11098
|
+
*/
|
|
11099
|
+
class PreciseEphemerisInterpolant {
|
|
10553
11100
|
static __wrap(ptr) {
|
|
10554
|
-
const obj = Object.create(
|
|
11101
|
+
const obj = Object.create(PreciseEphemerisInterpolant.prototype);
|
|
10555
11102
|
obj.__wbg_ptr = ptr;
|
|
10556
|
-
|
|
11103
|
+
PreciseEphemerisInterpolantFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
10557
11104
|
return obj;
|
|
10558
11105
|
}
|
|
10559
11106
|
__destroy_into_raw() {
|
|
10560
11107
|
const ptr = this.__wbg_ptr;
|
|
10561
11108
|
this.__wbg_ptr = 0;
|
|
10562
|
-
|
|
11109
|
+
PreciseEphemerisInterpolantFinalization.unregister(this);
|
|
10563
11110
|
return ptr;
|
|
10564
11111
|
}
|
|
10565
11112
|
free() {
|
|
10566
11113
|
const ptr = this.__destroy_into_raw();
|
|
10567
|
-
wasm.
|
|
11114
|
+
wasm.__wbg_preciseephemerisinterpolant_free(ptr, 0);
|
|
10568
11115
|
}
|
|
10569
11116
|
/**
|
|
10570
|
-
*
|
|
10571
|
-
*
|
|
10572
|
-
*
|
|
10573
|
-
|
|
10574
|
-
|
|
11117
|
+
* Build a cached interpolant from an existing sample-backed precise source.
|
|
11118
|
+
* @param {PreciseEphemerisSampleSource} source
|
|
11119
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
11120
|
+
*/
|
|
11121
|
+
static fromPreciseEphemerisSamples(source) {
|
|
11122
|
+
_assertClass(source, PreciseEphemerisSampleSource);
|
|
11123
|
+
const ret = wasm.preciseephemerisinterpolant_fromPreciseEphemerisSamples(source.__wbg_ptr);
|
|
11124
|
+
return PreciseEphemerisInterpolant.__wrap(ret);
|
|
11125
|
+
}
|
|
11126
|
+
/**
|
|
11127
|
+
* Build a cached interpolant directly from precise samples.
|
|
11128
|
+
*
|
|
11129
|
+
* `samples` is the same array accepted by
|
|
11130
|
+
* [`preciseEphemerisSamplesFromSamples`]: each item has `{ sat, epoch,
|
|
11131
|
+
* positionEcefM, clockS?, clockEvent? }`, with epochs in seconds since
|
|
11132
|
+
* J2000 and positions in ECEF metres. Throws a `TypeError` for malformed
|
|
11133
|
+
* JS input and a `RangeError` for sample validation failures.
|
|
11134
|
+
* @param {any} samples
|
|
11135
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
11136
|
+
*/
|
|
11137
|
+
static fromSamples(samples) {
|
|
11138
|
+
const ret = wasm.preciseephemerisinterpolant_fromSamples(samples);
|
|
11139
|
+
if (ret[2]) {
|
|
11140
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11141
|
+
}
|
|
11142
|
+
return PreciseEphemerisInterpolant.__wrap(ret[0]);
|
|
11143
|
+
}
|
|
11144
|
+
/**
|
|
11145
|
+
* Build a cached interpolant from a parsed SP3 precise product.
|
|
11146
|
+
*
|
|
11147
|
+
* Nodes are copied from the product's native SP3 records. Query epochs are
|
|
11148
|
+
* seconds since J2000 in the SP3 product time scale.
|
|
11149
|
+
* @param {Sp3} sp3
|
|
11150
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
11151
|
+
*/
|
|
11152
|
+
static fromSp3(sp3) {
|
|
11153
|
+
_assertClass(sp3, Sp3);
|
|
11154
|
+
const ret = wasm.preciseephemerisinterpolant_fromSp3(sp3.__wbg_ptr);
|
|
11155
|
+
return PreciseEphemerisInterpolant.__wrap(ret);
|
|
11156
|
+
}
|
|
11157
|
+
/**
|
|
11158
|
+
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
11159
|
+
* arrays using this cached interpolant.
|
|
11160
|
+
*
|
|
11161
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
11162
|
+
* seconds since J2000 on this handle's time scale. The returned plain
|
|
11163
|
+
* object has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
11164
|
+
* `elementResults` arrays.
|
|
11165
|
+
* @param {any} satellites
|
|
11166
|
+
* @param {any} epochs_j2000_s
|
|
10575
11167
|
* @returns {any}
|
|
10576
11168
|
*/
|
|
10577
|
-
|
|
10578
|
-
const ret = wasm.
|
|
11169
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
11170
|
+
const ret = wasm.preciseephemerisinterpolant_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
10579
11171
|
if (ret[2]) {
|
|
10580
11172
|
throw takeFromExternrefTable0(ret[1]);
|
|
10581
11173
|
}
|
|
10582
11174
|
return takeFromExternrefTable0(ret[0]);
|
|
10583
11175
|
}
|
|
10584
11176
|
/**
|
|
10585
|
-
*
|
|
10586
|
-
*
|
|
11177
|
+
* Query ECEF position and optional clock for many satellites at one epoch
|
|
11178
|
+
* using this cached interpolant.
|
|
11179
|
+
*
|
|
11180
|
+
* `epochJ2000S` is seconds since J2000 on this handle's time scale. The
|
|
11181
|
+
* returned object follows the same contract as
|
|
11182
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
11183
|
+
* @param {any} satellites
|
|
11184
|
+
* @param {number} epoch_j2000_s
|
|
11185
|
+
* @returns {any}
|
|
10587
11186
|
*/
|
|
10588
|
-
|
|
10589
|
-
const ret = wasm.
|
|
10590
|
-
|
|
10591
|
-
|
|
11187
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
11188
|
+
const ret = wasm.preciseephemerisinterpolant_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
11189
|
+
if (ret[2]) {
|
|
11190
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11191
|
+
}
|
|
11192
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11193
|
+
}
|
|
11194
|
+
/**
|
|
11195
|
+
* Predict geometric ranges for many `(satellite, receiver, epoch)`
|
|
11196
|
+
* requests using this cached interpolant.
|
|
11197
|
+
*
|
|
11198
|
+
* `requests` is an array of `{ sat, receiverEcefM, tRxJ2000S }` objects.
|
|
11199
|
+
* Positions are ECEF metres and epochs are seconds since J2000 on this
|
|
11200
|
+
* handle's time scale. The output matches [`Sp3.predictRanges`].
|
|
11201
|
+
* @param {any} requests
|
|
11202
|
+
* @param {any} options
|
|
11203
|
+
* @returns {any}
|
|
11204
|
+
*/
|
|
11205
|
+
predictRanges(requests, options) {
|
|
11206
|
+
const ret = wasm.preciseephemerisinterpolant_predictRanges(this.__wbg_ptr, requests, options);
|
|
11207
|
+
if (ret[2]) {
|
|
11208
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11209
|
+
}
|
|
11210
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11211
|
+
}
|
|
11212
|
+
/**
|
|
11213
|
+
* Satellite tokens this handle can interpolate, ascending.
|
|
11214
|
+
* @returns {string[]}
|
|
11215
|
+
*/
|
|
11216
|
+
get satellites() {
|
|
11217
|
+
const ret = wasm.preciseephemerisinterpolant_satellites(this.__wbg_ptr);
|
|
11218
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
11219
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
11220
|
+
return v1;
|
|
11221
|
+
}
|
|
11222
|
+
/**
|
|
11223
|
+
* Source time-scale abbreviation used by this handle's J2000-second axis,
|
|
11224
|
+
* such as `"GPST"`.
|
|
11225
|
+
* @returns {string}
|
|
11226
|
+
*/
|
|
11227
|
+
get timeScale() {
|
|
11228
|
+
let deferred1_0;
|
|
11229
|
+
let deferred1_1;
|
|
11230
|
+
try {
|
|
11231
|
+
const ret = wasm.preciseephemerisinterpolant_timeScale(this.__wbg_ptr);
|
|
11232
|
+
deferred1_0 = ret[0];
|
|
11233
|
+
deferred1_1 = ret[1];
|
|
11234
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
11235
|
+
} finally {
|
|
11236
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
11237
|
+
}
|
|
11238
|
+
}
|
|
11239
|
+
}
|
|
11240
|
+
if (Symbol.dispose) PreciseEphemerisInterpolant.prototype[Symbol.dispose] = PreciseEphemerisInterpolant.prototype.free;
|
|
11241
|
+
exports.PreciseEphemerisInterpolant = PreciseEphemerisInterpolant;
|
|
11242
|
+
|
|
11243
|
+
/**
|
|
11244
|
+
* A precise-ephemeris source built from samples rather than parsed SP3 text.
|
|
11245
|
+
*
|
|
11246
|
+
* Implements the same `ObservableEphemerisSource` contract as a parsed [`Sp3`]
|
|
11247
|
+
* product and shares its interpolation substrate, so [`predictRanges`] accepts
|
|
11248
|
+
* either handle. Build one with [`preciseEphemerisSamplesFromSamples`].
|
|
11249
|
+
*/
|
|
11250
|
+
class PreciseEphemerisSampleSource {
|
|
11251
|
+
static __wrap(ptr) {
|
|
11252
|
+
const obj = Object.create(PreciseEphemerisSampleSource.prototype);
|
|
11253
|
+
obj.__wbg_ptr = ptr;
|
|
11254
|
+
PreciseEphemerisSampleSourceFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
11255
|
+
return obj;
|
|
11256
|
+
}
|
|
11257
|
+
__destroy_into_raw() {
|
|
11258
|
+
const ptr = this.__wbg_ptr;
|
|
11259
|
+
this.__wbg_ptr = 0;
|
|
11260
|
+
PreciseEphemerisSampleSourceFinalization.unregister(this);
|
|
11261
|
+
return ptr;
|
|
11262
|
+
}
|
|
11263
|
+
free() {
|
|
11264
|
+
const ptr = this.__destroy_into_raw();
|
|
11265
|
+
wasm.__wbg_preciseephemerissamplesource_free(ptr, 0);
|
|
11266
|
+
}
|
|
11267
|
+
/**
|
|
11268
|
+
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
11269
|
+
* arrays against this sample-backed precise source.
|
|
11270
|
+
*
|
|
11271
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
11272
|
+
* seconds since J2000 on the source time scale. The returned plain object
|
|
11273
|
+
* has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
11274
|
+
* `elementResults` arrays. Failed elements use the core missing-position
|
|
11275
|
+
* sentinel and carry the scalar engine error in `elementResults[i].error`.
|
|
11276
|
+
* @param {any} satellites
|
|
11277
|
+
* @param {any} epochs_j2000_s
|
|
11278
|
+
* @returns {any}
|
|
11279
|
+
*/
|
|
11280
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
11281
|
+
const ret = wasm.preciseephemerissamplesource_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
11282
|
+
if (ret[2]) {
|
|
11283
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11284
|
+
}
|
|
11285
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11286
|
+
}
|
|
11287
|
+
/**
|
|
11288
|
+
* Query ECEF position and optional clock for many satellites at one epoch
|
|
11289
|
+
* against this sample-backed precise source.
|
|
11290
|
+
*
|
|
11291
|
+
* `epochJ2000S` is seconds since J2000 on the source time scale. The
|
|
11292
|
+
* returned plain object follows the same contract as
|
|
11293
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
11294
|
+
* @param {any} satellites
|
|
11295
|
+
* @param {number} epoch_j2000_s
|
|
11296
|
+
* @returns {any}
|
|
11297
|
+
*/
|
|
11298
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
11299
|
+
const ret = wasm.preciseephemerissamplesource_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
11300
|
+
if (ret[2]) {
|
|
11301
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11302
|
+
}
|
|
11303
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11304
|
+
}
|
|
11305
|
+
/**
|
|
11306
|
+
* Predict geometric ranges for many requests in one call. See the shared
|
|
11307
|
+
* [`predictRanges`](crate::precise_samples::predict_ranges_over) contract;
|
|
11308
|
+
* this is the sample-source entry point.
|
|
11309
|
+
* @param {any} requests
|
|
11310
|
+
* @param {any} options
|
|
11311
|
+
* @returns {any}
|
|
11312
|
+
*/
|
|
11313
|
+
predictRanges(requests, options) {
|
|
11314
|
+
const ret = wasm.preciseephemerissamplesource_predictRanges(this.__wbg_ptr, requests, options);
|
|
11315
|
+
if (ret[2]) {
|
|
11316
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11317
|
+
}
|
|
11318
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11319
|
+
}
|
|
11320
|
+
/**
|
|
11321
|
+
* The satellites this source can interpolate (e.g. `"G01"`), ascending.
|
|
11322
|
+
* @returns {string[]}
|
|
11323
|
+
*/
|
|
11324
|
+
get satellites() {
|
|
11325
|
+
const ret = wasm.preciseephemerissamplesource_satellites(this.__wbg_ptr);
|
|
11326
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
11327
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
10592
11328
|
return v1;
|
|
10593
11329
|
}
|
|
10594
11330
|
}
|
|
@@ -12050,6 +12786,12 @@ class SatelliteVector {
|
|
|
12050
12786
|
if (Symbol.dispose) SatelliteVector.prototype[Symbol.dispose] = SatelliteVector.prototype.free;
|
|
12051
12787
|
exports.SatelliteVector = SatelliteVector;
|
|
12052
12788
|
|
|
12789
|
+
/**
|
|
12790
|
+
* Mutable SBAS correction store.
|
|
12791
|
+
*
|
|
12792
|
+
* Ingest raw SBAS messages with a source GEO and GNSS time, then query decoded
|
|
12793
|
+
* fast, long-term, ionospheric, and GEO navigation correction records.
|
|
12794
|
+
*/
|
|
12053
12795
|
class SbasCorrectionStore {
|
|
12054
12796
|
__destroy_into_raw() {
|
|
12055
12797
|
const ptr = this.__wbg_ptr;
|
|
@@ -12062,6 +12804,49 @@ class SbasCorrectionStore {
|
|
|
12062
12804
|
wasm.__wbg_sbascorrectionstore_free(ptr, 0);
|
|
12063
12805
|
}
|
|
12064
12806
|
/**
|
|
12807
|
+
* Fast pseudorange correction for `(geo, sat)`, or `null`.
|
|
12808
|
+
*
|
|
12809
|
+
* `prcM` is meters, `rrcMS` is meters per second, and `tOfJ2000S` is
|
|
12810
|
+
* seconds since J2000.
|
|
12811
|
+
* @param {string} geo
|
|
12812
|
+
* @param {string} sat
|
|
12813
|
+
* @returns {any}
|
|
12814
|
+
*/
|
|
12815
|
+
fastCorrection(geo, sat) {
|
|
12816
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12817
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12818
|
+
const ptr1 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12819
|
+
const len1 = WASM_VECTOR_LEN;
|
|
12820
|
+
const ret = wasm.sbascorrectionstore_fastCorrection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
12821
|
+
if (ret[2]) {
|
|
12822
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12823
|
+
}
|
|
12824
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12825
|
+
}
|
|
12826
|
+
/**
|
|
12827
|
+
* SBAS GEO navigation state for `geo`, or `null`.
|
|
12828
|
+
*
|
|
12829
|
+
* Positions are ECEF meters, velocities are ECEF meters per second,
|
|
12830
|
+
* accelerations are ECEF meters per second squared, clock fields are
|
|
12831
|
+
* seconds and seconds per second, and `t0J2000S` is seconds since J2000.
|
|
12832
|
+
* @param {string} geo
|
|
12833
|
+
* @returns {any}
|
|
12834
|
+
*/
|
|
12835
|
+
geoNavState(geo) {
|
|
12836
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12837
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12838
|
+
const ret = wasm.sbascorrectionstore_geoNavState(this.__wbg_ptr, ptr0, len0);
|
|
12839
|
+
if (ret[2]) {
|
|
12840
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12841
|
+
}
|
|
12842
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12843
|
+
}
|
|
12844
|
+
/**
|
|
12845
|
+
* Ingest one decoded SBAS message into the correction store.
|
|
12846
|
+
*
|
|
12847
|
+
* `geo` is the SBAS source satellite token such as `"S29"`. `week` and
|
|
12848
|
+
* `towS` are in the selected GNSS time scale. `form` is `"framed250"` or
|
|
12849
|
+
* `"body226"`.
|
|
12065
12850
|
* @param {Uint8Array} bytes
|
|
12066
12851
|
* @param {string | null | undefined} form
|
|
12067
12852
|
* @param {string} geo
|
|
@@ -12084,6 +12869,27 @@ class SbasCorrectionStore {
|
|
|
12084
12869
|
}
|
|
12085
12870
|
}
|
|
12086
12871
|
/**
|
|
12872
|
+
* SBAS ionospheric grid for `geo`, or `null`.
|
|
12873
|
+
*
|
|
12874
|
+
* Grid point latitudes and longitudes are degrees, vertical delays are
|
|
12875
|
+
* meters, and GIVE variances are square meters when present.
|
|
12876
|
+
* @param {string} geo
|
|
12877
|
+
* @returns {any}
|
|
12878
|
+
*/
|
|
12879
|
+
ionoGrid(geo) {
|
|
12880
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12881
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12882
|
+
const ret = wasm.sbascorrectionstore_ionoGrid(this.__wbg_ptr, ptr0, len0);
|
|
12883
|
+
if (ret[2]) {
|
|
12884
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12885
|
+
}
|
|
12886
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12887
|
+
}
|
|
12888
|
+
/**
|
|
12889
|
+
* SBAS ionospheric slant delay in meters, or `null`.
|
|
12890
|
+
*
|
|
12891
|
+
* Receiver latitude, longitude, elevation, and azimuth are radians.
|
|
12892
|
+
* `frequencyHz` is the carrier frequency for the reported group delay.
|
|
12087
12893
|
* @param {string} geo
|
|
12088
12894
|
* @param {number} receiver_lat_rad
|
|
12089
12895
|
* @param {number} receiver_lon_rad
|
|
@@ -12102,6 +12908,30 @@ class SbasCorrectionStore {
|
|
|
12102
12908
|
}
|
|
12103
12909
|
return ret[0] === 0 ? undefined : ret[1];
|
|
12104
12910
|
}
|
|
12911
|
+
/**
|
|
12912
|
+
* Long-term orbit and clock correction for `(geo, sat)`, or `null`.
|
|
12913
|
+
*
|
|
12914
|
+
* Position deltas are ECEF meters, rates are ECEF meters per second, clock
|
|
12915
|
+
* deltas are seconds and seconds per second, and `t0J2000S` is seconds
|
|
12916
|
+
* since J2000.
|
|
12917
|
+
* @param {string} geo
|
|
12918
|
+
* @param {string} sat
|
|
12919
|
+
* @returns {any}
|
|
12920
|
+
*/
|
|
12921
|
+
longTermCorrection(geo, sat) {
|
|
12922
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12923
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12924
|
+
const ptr1 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12925
|
+
const len1 = WASM_VECTOR_LEN;
|
|
12926
|
+
const ret = wasm.sbascorrectionstore_longTermCorrection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
12927
|
+
if (ret[2]) {
|
|
12928
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12929
|
+
}
|
|
12930
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12931
|
+
}
|
|
12932
|
+
/**
|
|
12933
|
+
* Create an empty SBAS correction store.
|
|
12934
|
+
*/
|
|
12105
12935
|
constructor() {
|
|
12106
12936
|
const ret = wasm.sbascorrectionstore_new();
|
|
12107
12937
|
this.__wbg_ptr = ret;
|
|
@@ -12109,6 +12939,10 @@ class SbasCorrectionStore {
|
|
|
12109
12939
|
return this;
|
|
12110
12940
|
}
|
|
12111
12941
|
/**
|
|
12942
|
+
* Ready SBAS GEO source satellites at `tJ2000S`.
|
|
12943
|
+
*
|
|
12944
|
+
* The time is seconds since J2000. Returned tokens are strings such as
|
|
12945
|
+
* `"S29"`, sorted by most recent update first.
|
|
12112
12946
|
* @param {number} t_j2000_s
|
|
12113
12947
|
* @returns {string[]}
|
|
12114
12948
|
*/
|
|
@@ -12118,6 +12952,24 @@ class SbasCorrectionStore {
|
|
|
12118
12952
|
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
12119
12953
|
return v1;
|
|
12120
12954
|
}
|
|
12955
|
+
/**
|
|
12956
|
+
* Allow or disallow partial SBAS corrections when building corrected
|
|
12957
|
+
* ephemeris states.
|
|
12958
|
+
* @param {boolean} yes
|
|
12959
|
+
*/
|
|
12960
|
+
setAllowPartial(yes) {
|
|
12961
|
+
wasm.sbascorrectionstore_setAllowPartial(this.__wbg_ptr, yes);
|
|
12962
|
+
}
|
|
12963
|
+
/**
|
|
12964
|
+
* Set the maximum staleness for fresh SBAS corrections, in seconds.
|
|
12965
|
+
* @param {number} seconds
|
|
12966
|
+
*/
|
|
12967
|
+
setStalenessSeconds(seconds) {
|
|
12968
|
+
const ret = wasm.sbascorrectionstore_setStalenessSeconds(this.__wbg_ptr, seconds);
|
|
12969
|
+
if (ret[1]) {
|
|
12970
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
12971
|
+
}
|
|
12972
|
+
}
|
|
12121
12973
|
}
|
|
12122
12974
|
if (Symbol.dispose) SbasCorrectionStore.prototype[Symbol.dispose] = SbasCorrectionStore.prototype.free;
|
|
12123
12975
|
exports.SbasCorrectionStore = SbasCorrectionStore;
|
|
@@ -12519,6 +13371,44 @@ class Sp3 {
|
|
|
12519
13371
|
}
|
|
12520
13372
|
return Sp3Interpolation.__wrap(ret[0]);
|
|
12521
13373
|
}
|
|
13374
|
+
/**
|
|
13375
|
+
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
13376
|
+
* arrays against this parsed SP3 product.
|
|
13377
|
+
*
|
|
13378
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
13379
|
+
* seconds since J2000 in the product time scale. The returned plain object
|
|
13380
|
+
* has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
13381
|
+
* `elementResults` arrays. Failed elements use the core missing-position
|
|
13382
|
+
* sentinel and carry the scalar engine error in `elementResults[i].error`.
|
|
13383
|
+
* @param {any} satellites
|
|
13384
|
+
* @param {any} epochs_j2000_s
|
|
13385
|
+
* @returns {any}
|
|
13386
|
+
*/
|
|
13387
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
13388
|
+
const ret = wasm.sp3_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
13389
|
+
if (ret[2]) {
|
|
13390
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
13391
|
+
}
|
|
13392
|
+
return takeFromExternrefTable0(ret[0]);
|
|
13393
|
+
}
|
|
13394
|
+
/**
|
|
13395
|
+
* Query ECEF position and optional clock for many satellites at one epoch
|
|
13396
|
+
* against this parsed SP3 product.
|
|
13397
|
+
*
|
|
13398
|
+
* `epochJ2000S` is seconds since J2000 in the product time scale. The
|
|
13399
|
+
* returned object follows the same contract as
|
|
13400
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
13401
|
+
* @param {any} satellites
|
|
13402
|
+
* @param {number} epoch_j2000_s
|
|
13403
|
+
* @returns {any}
|
|
13404
|
+
*/
|
|
13405
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
13406
|
+
const ret = wasm.sp3_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
13407
|
+
if (ret[2]) {
|
|
13408
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
13409
|
+
}
|
|
13410
|
+
return takeFromExternrefTable0(ret[0]);
|
|
13411
|
+
}
|
|
12522
13412
|
/**
|
|
12523
13413
|
* Predict geometric ranges for many `(satellite, receiver, epoch)` requests
|
|
12524
13414
|
* against this ephemeris in one call. `requests` is an array of
|
|
@@ -14073,100 +14963,77 @@ if (Symbol.dispose) SunMoon.prototype[Symbol.dispose] = SunMoon.prototype.free;
|
|
|
14073
14963
|
exports.SunMoon = SunMoon;
|
|
14074
14964
|
|
|
14075
14965
|
/**
|
|
14076
|
-
*
|
|
14077
|
-
* @enum {0 | 1 | 2 | 3
|
|
14966
|
+
* Terrain datum conversion and optional geoid-grid loading error variants.
|
|
14967
|
+
* @enum {0 | 1 | 2 | 3}
|
|
14078
14968
|
*/
|
|
14079
|
-
const
|
|
14080
|
-
/**
|
|
14081
|
-
* Coordinated Universal Time.
|
|
14082
|
-
*/
|
|
14083
|
-
Utc: 0, "0": "Utc",
|
|
14084
|
-
/**
|
|
14085
|
-
* International Atomic Time.
|
|
14086
|
-
*/
|
|
14087
|
-
Tai: 1, "1": "Tai",
|
|
14088
|
-
/**
|
|
14089
|
-
* Terrestrial Time.
|
|
14090
|
-
*/
|
|
14091
|
-
Tt: 2, "2": "Tt",
|
|
14092
|
-
/**
|
|
14093
|
-
* Barycentric Dynamical Time.
|
|
14094
|
-
*/
|
|
14095
|
-
Tdb: 3, "3": "Tdb",
|
|
14096
|
-
/**
|
|
14097
|
-
* GPS time.
|
|
14098
|
-
*/
|
|
14099
|
-
Gpst: 4, "4": "Gpst",
|
|
14969
|
+
const TerrainDatumError = Object.freeze({
|
|
14100
14970
|
/**
|
|
14101
|
-
*
|
|
14971
|
+
* Terrain lookup failed before datum conversion.
|
|
14102
14972
|
*/
|
|
14103
|
-
|
|
14973
|
+
Terrain: 0, "0": "Terrain",
|
|
14104
14974
|
/**
|
|
14105
|
-
*
|
|
14975
|
+
* A geoid grid could not be parsed.
|
|
14106
14976
|
*/
|
|
14107
|
-
|
|
14977
|
+
Geoid: 1, "1": "Geoid",
|
|
14108
14978
|
/**
|
|
14109
|
-
*
|
|
14979
|
+
* Reading a geoid grid failed for a reason other than absence.
|
|
14110
14980
|
*/
|
|
14111
|
-
|
|
14981
|
+
Io: 2, "2": "Io",
|
|
14112
14982
|
/**
|
|
14113
|
-
*
|
|
14983
|
+
* The EGM96 15-arcminute `WW15MGH.DAC` grid was requested but is absent.
|
|
14114
14984
|
*/
|
|
14115
|
-
|
|
14985
|
+
MissingEgm96Dac: 3, "3": "MissingEgm96Dac",
|
|
14116
14986
|
});
|
|
14117
|
-
exports.
|
|
14987
|
+
exports.TerrainDatumError = TerrainDatumError;
|
|
14118
14988
|
|
|
14119
14989
|
/**
|
|
14120
|
-
*
|
|
14990
|
+
* Geoid model used to convert terrain orthometric height `H` to ellipsoidal
|
|
14991
|
+
* height `h`.
|
|
14121
14992
|
*/
|
|
14122
|
-
class
|
|
14993
|
+
class TerrainGeoidModel {
|
|
14123
14994
|
static __wrap(ptr) {
|
|
14124
|
-
const obj = Object.create(
|
|
14995
|
+
const obj = Object.create(TerrainGeoidModel.prototype);
|
|
14125
14996
|
obj.__wbg_ptr = ptr;
|
|
14126
|
-
|
|
14997
|
+
TerrainGeoidModelFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
14127
14998
|
return obj;
|
|
14128
14999
|
}
|
|
14129
|
-
static __unwrap(jsValue) {
|
|
14130
|
-
if (!(jsValue instanceof Tle)) {
|
|
14131
|
-
return 0;
|
|
14132
|
-
}
|
|
14133
|
-
return jsValue.__destroy_into_raw();
|
|
14134
|
-
}
|
|
14135
15000
|
__destroy_into_raw() {
|
|
14136
15001
|
const ptr = this.__wbg_ptr;
|
|
14137
15002
|
this.__wbg_ptr = 0;
|
|
14138
|
-
|
|
15003
|
+
TerrainGeoidModelFinalization.unregister(this);
|
|
14139
15004
|
return ptr;
|
|
14140
15005
|
}
|
|
14141
15006
|
free() {
|
|
14142
15007
|
const ptr = this.__destroy_into_raw();
|
|
14143
|
-
wasm.
|
|
15008
|
+
wasm.__wbg_terraingeoidmodel_free(ptr, 0);
|
|
14144
15009
|
}
|
|
14145
15010
|
/**
|
|
14146
|
-
*
|
|
14147
|
-
* @
|
|
15011
|
+
* Use a caller-supplied EGM96 15-arcminute geoid grid for `h = H + N`.
|
|
15012
|
+
* @param {Egm96FifteenMinuteGeoid} geoid
|
|
15013
|
+
* @returns {TerrainGeoidModel}
|
|
14148
15014
|
*/
|
|
14149
|
-
|
|
14150
|
-
|
|
14151
|
-
|
|
15015
|
+
static egm96FifteenMinute(geoid) {
|
|
15016
|
+
_assertClass(geoid, Egm96FifteenMinuteGeoid);
|
|
15017
|
+
const ret = wasm.terraingeoidmodel_egm96FifteenMinute(geoid.__wbg_ptr);
|
|
15018
|
+
return TerrainGeoidModel.__wrap(ret);
|
|
14152
15019
|
}
|
|
14153
15020
|
/**
|
|
14154
|
-
*
|
|
14155
|
-
* @returns {
|
|
15021
|
+
* Use the embedded EGM96 1-degree geoid grid for `h = H + N`.
|
|
15022
|
+
* @returns {TerrainGeoidModel}
|
|
14156
15023
|
*/
|
|
14157
|
-
|
|
14158
|
-
const ret = wasm.
|
|
14159
|
-
return ret;
|
|
15024
|
+
static egm96OneDegree() {
|
|
15025
|
+
const ret = wasm.terraingeoidmodel_egm96OneDegree();
|
|
15026
|
+
return TerrainGeoidModel.__wrap(ret);
|
|
14160
15027
|
}
|
|
14161
15028
|
/**
|
|
14162
|
-
*
|
|
15029
|
+
* Model discriminator: `"egm96OneDegree"` or `"egm96FifteenMinute"`.
|
|
14163
15030
|
* @returns {string}
|
|
14164
15031
|
*/
|
|
14165
|
-
get
|
|
15032
|
+
get kind() {
|
|
14166
15033
|
let deferred1_0;
|
|
14167
15034
|
let deferred1_1;
|
|
14168
15035
|
try {
|
|
14169
|
-
const ret = wasm.
|
|
15036
|
+
const ret = wasm.terraingeoidmodel_kind(this.__wbg_ptr);
|
|
14170
15037
|
deferred1_0 = ret[0];
|
|
14171
15038
|
deferred1_1 = ret[1];
|
|
14172
15039
|
return getStringFromWasm0(ret[0], ret[1]);
|
|
@@ -14174,9 +15041,269 @@ class Tle {
|
|
|
14174
15041
|
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
14175
15042
|
}
|
|
14176
15043
|
}
|
|
14177
|
-
|
|
14178
|
-
|
|
14179
|
-
|
|
15044
|
+
}
|
|
15045
|
+
if (Symbol.dispose) TerrainGeoidModel.prototype[Symbol.dispose] = TerrainGeoidModel.prototype.free;
|
|
15046
|
+
exports.TerrainGeoidModel = TerrainGeoidModel;
|
|
15047
|
+
|
|
15048
|
+
/**
|
|
15049
|
+
* Terrain store conversion, serialization, and parsing error variants.
|
|
15050
|
+
* @enum {0 | 1 | 2 | 3 | 4 | 5}
|
|
15051
|
+
*/
|
|
15052
|
+
const TerrainStoreError = Object.freeze({
|
|
15053
|
+
/**
|
|
15054
|
+
* File or directory I/O failed.
|
|
15055
|
+
*/
|
|
15056
|
+
Io: 0, "0": "Io",
|
|
15057
|
+
/**
|
|
15058
|
+
* DTED or terrain store bytes could not be parsed.
|
|
15059
|
+
*/
|
|
15060
|
+
Parse: 1, "1": "Parse",
|
|
15061
|
+
/**
|
|
15062
|
+
* The terrain store version is not supported.
|
|
15063
|
+
*/
|
|
15064
|
+
UnsupportedVersion: 2, "2": "UnsupportedVersion",
|
|
15065
|
+
/**
|
|
15066
|
+
* The terrain store datum tag is not supported.
|
|
15067
|
+
*/
|
|
15068
|
+
UnsupportedDatum: 3, "3": "UnsupportedDatum",
|
|
15069
|
+
/**
|
|
15070
|
+
* Two input DTED files resolved to the same integer tile id.
|
|
15071
|
+
*/
|
|
15072
|
+
DuplicateTile: 4, "4": "DuplicateTile",
|
|
15073
|
+
/**
|
|
15074
|
+
* A tile payload checksum did not match its index record.
|
|
15075
|
+
*/
|
|
15076
|
+
Checksum: 5, "5": "Checksum",
|
|
15077
|
+
});
|
|
15078
|
+
exports.TerrainStoreError = TerrainStoreError;
|
|
15079
|
+
|
|
15080
|
+
/**
|
|
15081
|
+
* Metadata for one tile index record in a memory-mappable terrain store.
|
|
15082
|
+
*/
|
|
15083
|
+
class TerrainStoreTileIndex {
|
|
15084
|
+
static __wrap(ptr) {
|
|
15085
|
+
const obj = Object.create(TerrainStoreTileIndex.prototype);
|
|
15086
|
+
obj.__wbg_ptr = ptr;
|
|
15087
|
+
TerrainStoreTileIndexFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
15088
|
+
return obj;
|
|
15089
|
+
}
|
|
15090
|
+
__destroy_into_raw() {
|
|
15091
|
+
const ptr = this.__wbg_ptr;
|
|
15092
|
+
this.__wbg_ptr = 0;
|
|
15093
|
+
TerrainStoreTileIndexFinalization.unregister(this);
|
|
15094
|
+
return ptr;
|
|
15095
|
+
}
|
|
15096
|
+
free() {
|
|
15097
|
+
const ptr = this.__destroy_into_raw();
|
|
15098
|
+
wasm.__wbg_terrainstoretileindex_free(ptr, 0);
|
|
15099
|
+
}
|
|
15100
|
+
/**
|
|
15101
|
+
* FNV-1a checksum of this tile's posting payload bytes.
|
|
15102
|
+
* @returns {bigint}
|
|
15103
|
+
*/
|
|
15104
|
+
get checksum64() {
|
|
15105
|
+
const ret = wasm.terrainstoretileindex_checksum64(this.__wbg_ptr);
|
|
15106
|
+
return BigInt.asUintN(64, ret);
|
|
15107
|
+
}
|
|
15108
|
+
/**
|
|
15109
|
+
* Byte length of this tile's posting payload in the store.
|
|
15110
|
+
* @returns {bigint}
|
|
15111
|
+
*/
|
|
15112
|
+
get dataLen() {
|
|
15113
|
+
const ret = wasm.terrainstoretileindex_dataLen(this.__wbg_ptr);
|
|
15114
|
+
return BigInt.asUintN(64, ret);
|
|
15115
|
+
}
|
|
15116
|
+
/**
|
|
15117
|
+
* Byte offset of this tile's posting payload in the store.
|
|
15118
|
+
* @returns {bigint}
|
|
15119
|
+
*/
|
|
15120
|
+
get dataOffset() {
|
|
15121
|
+
const ret = wasm.terrainstoretileindex_dataOffset(this.__wbg_ptr);
|
|
15122
|
+
return BigInt.asUintN(64, ret);
|
|
15123
|
+
}
|
|
15124
|
+
/**
|
|
15125
|
+
* Number of latitude postings.
|
|
15126
|
+
* @returns {number}
|
|
15127
|
+
*/
|
|
15128
|
+
get latCount() {
|
|
15129
|
+
const ret = wasm.terrainstoretileindex_latCount(this.__wbg_ptr);
|
|
15130
|
+
return ret >>> 0;
|
|
15131
|
+
}
|
|
15132
|
+
/**
|
|
15133
|
+
* Integer latitude tile id, for example `36` for a tile covering
|
|
15134
|
+
* `36..37` degrees.
|
|
15135
|
+
* @returns {number}
|
|
15136
|
+
*/
|
|
15137
|
+
get latIndex() {
|
|
15138
|
+
const ret = wasm.terrainstoretileindex_latIndex(this.__wbg_ptr);
|
|
15139
|
+
return ret;
|
|
15140
|
+
}
|
|
15141
|
+
/**
|
|
15142
|
+
* Number of longitude postings.
|
|
15143
|
+
* @returns {number}
|
|
15144
|
+
*/
|
|
15145
|
+
get lonCount() {
|
|
15146
|
+
const ret = wasm.terrainstoretileindex_lonCount(this.__wbg_ptr);
|
|
15147
|
+
return ret >>> 0;
|
|
15148
|
+
}
|
|
15149
|
+
/**
|
|
15150
|
+
* Integer longitude tile id, for example `-107` for a tile covering
|
|
15151
|
+
* `-107..-106` degrees.
|
|
15152
|
+
* @returns {number}
|
|
15153
|
+
*/
|
|
15154
|
+
get lonIndex() {
|
|
15155
|
+
const ret = wasm.terrainstoretileindex_lonIndex(this.__wbg_ptr);
|
|
15156
|
+
return ret;
|
|
15157
|
+
}
|
|
15158
|
+
/**
|
|
15159
|
+
* Northern edge latitude, degrees.
|
|
15160
|
+
* @returns {number}
|
|
15161
|
+
*/
|
|
15162
|
+
get maxLatitudeDeg() {
|
|
15163
|
+
const ret = wasm.terrainstoretileindex_maxLatitudeDeg(this.__wbg_ptr);
|
|
15164
|
+
return ret;
|
|
15165
|
+
}
|
|
15166
|
+
/**
|
|
15167
|
+
* Eastern edge longitude, degrees.
|
|
15168
|
+
* @returns {number}
|
|
15169
|
+
*/
|
|
15170
|
+
get maxLongitudeDeg() {
|
|
15171
|
+
const ret = wasm.terrainstoretileindex_maxLongitudeDeg(this.__wbg_ptr);
|
|
15172
|
+
return ret;
|
|
15173
|
+
}
|
|
15174
|
+
/**
|
|
15175
|
+
* Southern edge latitude, degrees.
|
|
15176
|
+
* @returns {number}
|
|
15177
|
+
*/
|
|
15178
|
+
get minLatitudeDeg() {
|
|
15179
|
+
const ret = wasm.terrainstoretileindex_minLatitudeDeg(this.__wbg_ptr);
|
|
15180
|
+
return ret;
|
|
15181
|
+
}
|
|
15182
|
+
/**
|
|
15183
|
+
* Western edge longitude, degrees.
|
|
15184
|
+
* @returns {number}
|
|
15185
|
+
*/
|
|
15186
|
+
get minLongitudeDeg() {
|
|
15187
|
+
const ret = wasm.terrainstoretileindex_minLongitudeDeg(this.__wbg_ptr);
|
|
15188
|
+
return ret;
|
|
15189
|
+
}
|
|
15190
|
+
/**
|
|
15191
|
+
* Vertical datum for this tile's orthometric posting payload.
|
|
15192
|
+
* @returns {VerticalDatum}
|
|
15193
|
+
*/
|
|
15194
|
+
get verticalDatum() {
|
|
15195
|
+
const ret = wasm.terrainstoretileindex_verticalDatum(this.__wbg_ptr);
|
|
15196
|
+
return ret;
|
|
15197
|
+
}
|
|
15198
|
+
}
|
|
15199
|
+
if (Symbol.dispose) TerrainStoreTileIndex.prototype[Symbol.dispose] = TerrainStoreTileIndex.prototype.free;
|
|
15200
|
+
exports.TerrainStoreTileIndex = TerrainStoreTileIndex;
|
|
15201
|
+
|
|
15202
|
+
/**
|
|
15203
|
+
* A named time scale. The JS value matches the variant order below.
|
|
15204
|
+
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8}
|
|
15205
|
+
*/
|
|
15206
|
+
const TimeScale = Object.freeze({
|
|
15207
|
+
/**
|
|
15208
|
+
* Coordinated Universal Time.
|
|
15209
|
+
*/
|
|
15210
|
+
Utc: 0, "0": "Utc",
|
|
15211
|
+
/**
|
|
15212
|
+
* International Atomic Time.
|
|
15213
|
+
*/
|
|
15214
|
+
Tai: 1, "1": "Tai",
|
|
15215
|
+
/**
|
|
15216
|
+
* Terrestrial Time.
|
|
15217
|
+
*/
|
|
15218
|
+
Tt: 2, "2": "Tt",
|
|
15219
|
+
/**
|
|
15220
|
+
* Barycentric Dynamical Time.
|
|
15221
|
+
*/
|
|
15222
|
+
Tdb: 3, "3": "Tdb",
|
|
15223
|
+
/**
|
|
15224
|
+
* GPS time.
|
|
15225
|
+
*/
|
|
15226
|
+
Gpst: 4, "4": "Gpst",
|
|
15227
|
+
/**
|
|
15228
|
+
* Galileo System Time.
|
|
15229
|
+
*/
|
|
15230
|
+
Gst: 5, "5": "Gst",
|
|
15231
|
+
/**
|
|
15232
|
+
* BeiDou Time.
|
|
15233
|
+
*/
|
|
15234
|
+
Bdt: 6, "6": "Bdt",
|
|
15235
|
+
/**
|
|
15236
|
+
* GLONASS system time (UTC(SU)-based, leap-second carrying).
|
|
15237
|
+
*/
|
|
15238
|
+
Glonasst: 7, "7": "Glonasst",
|
|
15239
|
+
/**
|
|
15240
|
+
* QZSS system time (steered to GPST).
|
|
15241
|
+
*/
|
|
15242
|
+
Qzsst: 8, "8": "Qzsst",
|
|
15243
|
+
});
|
|
15244
|
+
exports.TimeScale = TimeScale;
|
|
15245
|
+
|
|
15246
|
+
/**
|
|
15247
|
+
* A parsed two-line element set with an initialized SGP4 satellite.
|
|
15248
|
+
*/
|
|
15249
|
+
class Tle {
|
|
15250
|
+
static __wrap(ptr) {
|
|
15251
|
+
const obj = Object.create(Tle.prototype);
|
|
15252
|
+
obj.__wbg_ptr = ptr;
|
|
15253
|
+
TleFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
15254
|
+
return obj;
|
|
15255
|
+
}
|
|
15256
|
+
static __unwrap(jsValue) {
|
|
15257
|
+
if (!(jsValue instanceof Tle)) {
|
|
15258
|
+
return 0;
|
|
15259
|
+
}
|
|
15260
|
+
return jsValue.__destroy_into_raw();
|
|
15261
|
+
}
|
|
15262
|
+
__destroy_into_raw() {
|
|
15263
|
+
const ptr = this.__wbg_ptr;
|
|
15264
|
+
this.__wbg_ptr = 0;
|
|
15265
|
+
TleFinalization.unregister(this);
|
|
15266
|
+
return ptr;
|
|
15267
|
+
}
|
|
15268
|
+
free() {
|
|
15269
|
+
const ptr = this.__destroy_into_raw();
|
|
15270
|
+
wasm.__wbg_tle_free(ptr, 0);
|
|
15271
|
+
}
|
|
15272
|
+
/**
|
|
15273
|
+
* Argument of perigee, degrees.
|
|
15274
|
+
* @returns {number}
|
|
15275
|
+
*/
|
|
15276
|
+
get argPerigeeDeg() {
|
|
15277
|
+
const ret = wasm.tle_argPerigeeDeg(this.__wbg_ptr);
|
|
15278
|
+
return ret;
|
|
15279
|
+
}
|
|
15280
|
+
/**
|
|
15281
|
+
* B* drag term (TLE dimensionless convention).
|
|
15282
|
+
* @returns {number}
|
|
15283
|
+
*/
|
|
15284
|
+
get bstar() {
|
|
15285
|
+
const ret = wasm.tle_bstar(this.__wbg_ptr);
|
|
15286
|
+
return ret;
|
|
15287
|
+
}
|
|
15288
|
+
/**
|
|
15289
|
+
* NORAD catalog number (as recorded in the TLE).
|
|
15290
|
+
* @returns {string}
|
|
15291
|
+
*/
|
|
15292
|
+
get catalogNumber() {
|
|
15293
|
+
let deferred1_0;
|
|
15294
|
+
let deferred1_1;
|
|
15295
|
+
try {
|
|
15296
|
+
const ret = wasm.tle_catalogNumber(this.__wbg_ptr);
|
|
15297
|
+
deferred1_0 = ret[0];
|
|
15298
|
+
deferred1_1 = ret[1];
|
|
15299
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
15300
|
+
} finally {
|
|
15301
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
15302
|
+
}
|
|
15303
|
+
}
|
|
15304
|
+
/**
|
|
15305
|
+
* Advisory checksum discrepancies found while parsing. Empty when both
|
|
15306
|
+
* lines' checksums are valid.
|
|
14180
15307
|
* @returns {ChecksumWarning[]}
|
|
14181
15308
|
*/
|
|
14182
15309
|
get checksumWarnings() {
|
|
@@ -14725,6 +15852,18 @@ class VelocitySolution {
|
|
|
14725
15852
|
if (Symbol.dispose) VelocitySolution.prototype[Symbol.dispose] = VelocitySolution.prototype.free;
|
|
14726
15853
|
exports.VelocitySolution = VelocitySolution;
|
|
14727
15854
|
|
|
15855
|
+
/**
|
|
15856
|
+
* Vertical datum carried by a terrain store.
|
|
15857
|
+
* @enum {0}
|
|
15858
|
+
*/
|
|
15859
|
+
const VerticalDatum = Object.freeze({
|
|
15860
|
+
/**
|
|
15861
|
+
* Orthometric height `H` in metres above the EGM96 mean sea level geoid.
|
|
15862
|
+
*/
|
|
15863
|
+
Egm96MslOrthometric: 0, "0": "Egm96MslOrthometric",
|
|
15864
|
+
});
|
|
15865
|
+
exports.VerticalDatum = VerticalDatum;
|
|
15866
|
+
|
|
14728
15867
|
/**
|
|
14729
15868
|
* Per-epoch topocentric visibility plus the dense pass list over the grid
|
|
14730
15869
|
* window.
|
|
@@ -15021,6 +16160,104 @@ function acquire(samples, prn, options) {
|
|
|
15021
16160
|
}
|
|
15022
16161
|
exports.acquire = acquire;
|
|
15023
16162
|
|
|
16163
|
+
/**
|
|
16164
|
+
* Plain non-overlapping Allan deviation for explicit averaging factors.
|
|
16165
|
+
*
|
|
16166
|
+
* `series` is `{ kind, values }`, where `kind` is `"phaseSeconds"` or
|
|
16167
|
+
* `"fractionalFrequency"` and `values` are phase seconds or dimensionless
|
|
16168
|
+
* fractional-frequency samples. `tau0S` is the sample interval in seconds.
|
|
16169
|
+
* `averagingFactors` is an array of positive integer `m` values. Returns
|
|
16170
|
+
* `{ tauS, deviation, n }`.
|
|
16171
|
+
* @param {any} series
|
|
16172
|
+
* @param {number} tau0_s
|
|
16173
|
+
* @param {any} averaging_factors
|
|
16174
|
+
* @returns {any}
|
|
16175
|
+
*/
|
|
16176
|
+
function allanDeviation(series, tau0_s, averaging_factors) {
|
|
16177
|
+
const ret = wasm.allanDeviation(series, tau0_s, averaging_factors);
|
|
16178
|
+
if (ret[2]) {
|
|
16179
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16180
|
+
}
|
|
16181
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16182
|
+
}
|
|
16183
|
+
exports.allanDeviation = allanDeviation;
|
|
16184
|
+
|
|
16185
|
+
/**
|
|
16186
|
+
* Alpha-beta measurement update applied to a predicted scalar state.
|
|
16187
|
+
*
|
|
16188
|
+
* `predicted` is `{ level, rate }`, `measurement` has the same unit as
|
|
16189
|
+
* `level`, `dt` is seconds, and `gains` is `{ alpha, beta }`.
|
|
16190
|
+
* @param {any} predicted
|
|
16191
|
+
* @param {number} measurement
|
|
16192
|
+
* @param {number} dt
|
|
16193
|
+
* @param {any} gains
|
|
16194
|
+
* @returns {any}
|
|
16195
|
+
*/
|
|
16196
|
+
function alphaBetaApplyMeasurement(predicted, measurement, dt, gains) {
|
|
16197
|
+
const ret = wasm.alphaBetaApplyMeasurement(predicted, measurement, dt, gains);
|
|
16198
|
+
if (ret[2]) {
|
|
16199
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16200
|
+
}
|
|
16201
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16202
|
+
}
|
|
16203
|
+
exports.alphaBetaApplyMeasurement = alphaBetaApplyMeasurement;
|
|
16204
|
+
|
|
16205
|
+
/**
|
|
16206
|
+
* Run one alpha-beta predict and measurement update.
|
|
16207
|
+
*
|
|
16208
|
+
* `state` is `{ level, rate }`, `measurement` has the same unit as `level`,
|
|
16209
|
+
* `dt` is seconds, and `gains` is `{ alpha, beta }`. Returns `{ predicted,
|
|
16210
|
+
* updated, innovation }`.
|
|
16211
|
+
* @param {any} state
|
|
16212
|
+
* @param {number} measurement
|
|
16213
|
+
* @param {number} dt
|
|
16214
|
+
* @param {any} gains
|
|
16215
|
+
* @returns {any}
|
|
16216
|
+
*/
|
|
16217
|
+
function alphaBetaFilterStep(state, measurement, dt, gains) {
|
|
16218
|
+
const ret = wasm.alphaBetaFilterStep(state, measurement, dt, gains);
|
|
16219
|
+
if (ret[2]) {
|
|
16220
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16221
|
+
}
|
|
16222
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16223
|
+
}
|
|
16224
|
+
exports.alphaBetaFilterStep = alphaBetaFilterStep;
|
|
16225
|
+
|
|
16226
|
+
/**
|
|
16227
|
+
* Alpha-beta constant-rate prediction.
|
|
16228
|
+
*
|
|
16229
|
+
* `state` is `{ level, rate }` and `dt` is the positive propagation interval in
|
|
16230
|
+
* seconds. Returns the predicted `{ level, rate }`.
|
|
16231
|
+
* @param {any} state
|
|
16232
|
+
* @param {number} dt
|
|
16233
|
+
* @returns {any}
|
|
16234
|
+
*/
|
|
16235
|
+
function alphaBetaPredict(state, dt) {
|
|
16236
|
+
const ret = wasm.alphaBetaPredict(state, dt);
|
|
16237
|
+
if (ret[2]) {
|
|
16238
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16239
|
+
}
|
|
16240
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16241
|
+
}
|
|
16242
|
+
exports.alphaBetaPredict = alphaBetaPredict;
|
|
16243
|
+
|
|
16244
|
+
/**
|
|
16245
|
+
* Steady-state alpha-beta gains from a positive tracking index.
|
|
16246
|
+
*
|
|
16247
|
+
* Returns `{ alpha, beta }`, where `alpha` is the level gain and `beta` maps
|
|
16248
|
+
* innovation to rate through `beta * innovation / dt`.
|
|
16249
|
+
* @param {number} tracking_index
|
|
16250
|
+
* @returns {any}
|
|
16251
|
+
*/
|
|
16252
|
+
function alphaBetaSteadyStateGains(tracking_index) {
|
|
16253
|
+
const ret = wasm.alphaBetaSteadyStateGains(tracking_index);
|
|
16254
|
+
if (ret[2]) {
|
|
16255
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16256
|
+
}
|
|
16257
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16258
|
+
}
|
|
16259
|
+
exports.alphaBetaSteadyStateGains = alphaBetaSteadyStateGains;
|
|
16260
|
+
|
|
15024
16261
|
/**
|
|
15025
16262
|
* On-sky angle in degrees between two direction vectors.
|
|
15026
16263
|
* @param {Float64Array} a
|
|
@@ -15057,6 +16294,68 @@ function angularSeparationCoords(a_lon_deg, a_lat_deg, b_lon_deg, b_lat_deg) {
|
|
|
15057
16294
|
}
|
|
15058
16295
|
exports.angularSeparationCoords = angularSeparationCoords;
|
|
15059
16296
|
|
|
16297
|
+
/**
|
|
16298
|
+
* Run ARAIM MHSS protection-level computation.
|
|
16299
|
+
*
|
|
16300
|
+
* `geometry.rows` contains satellite IDs, ECEF line-of-sight unit vectors,
|
|
16301
|
+
* optional constellation labels, and elevations in radians. `receiver` is WGS84
|
|
16302
|
+
* geodetic radians plus ellipsoidal height meters. `ism` contains
|
|
16303
|
+
* constellation defaults and optional satellite overrides. Satellite models may
|
|
16304
|
+
* provide paired `effectiveSigmaIntM` and `effectiveSigmaAccM` fields; omit both
|
|
16305
|
+
* to let the core derive them from elevation. `allocation` may be omitted to use
|
|
16306
|
+
* `araimLpv200Allocation()`. Returned `hplM`, `vplM`, `sigmaAccHM`,
|
|
16307
|
+
* `sigmaAccVM`, `emtM`, and per-mode ENU arrays are meters.
|
|
16308
|
+
* @param {any} geometry
|
|
16309
|
+
* @param {any} ism
|
|
16310
|
+
* @param {any} allocation
|
|
16311
|
+
* @returns {any}
|
|
16312
|
+
*/
|
|
16313
|
+
function araim(geometry, ism, allocation) {
|
|
16314
|
+
const ret = wasm.araim(geometry, ism, allocation);
|
|
16315
|
+
if (ret[2]) {
|
|
16316
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16317
|
+
}
|
|
16318
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16319
|
+
}
|
|
16320
|
+
exports.araim = araim;
|
|
16321
|
+
|
|
16322
|
+
/**
|
|
16323
|
+
* Enumerate ARAIM fault hypotheses for the given geometry, ISM, and allocation.
|
|
16324
|
+
*
|
|
16325
|
+
* Inputs mirror `araim`. The returned priors are probabilities. Excluded
|
|
16326
|
+
* satellites are string tokens such as `"G01"`, and excluded constellations are
|
|
16327
|
+
* labels such as `"GPS"`.
|
|
16328
|
+
* @param {any} geometry
|
|
16329
|
+
* @param {any} ism
|
|
16330
|
+
* @param {any} allocation
|
|
16331
|
+
* @returns {any}
|
|
16332
|
+
*/
|
|
16333
|
+
function araimFaultModes(geometry, ism, allocation) {
|
|
16334
|
+
const ret = wasm.araimFaultModes(geometry, ism, allocation);
|
|
16335
|
+
if (ret[2]) {
|
|
16336
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16337
|
+
}
|
|
16338
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16339
|
+
}
|
|
16340
|
+
exports.araimFaultModes = araimFaultModes;
|
|
16341
|
+
|
|
16342
|
+
/**
|
|
16343
|
+
* LPV-200 ARAIM integrity and continuity allocation.
|
|
16344
|
+
*
|
|
16345
|
+
* The returned object can be passed to `araim`. Probability fields are
|
|
16346
|
+
* dimensionless, `pEmt` defaults to `1e-5`, and `maxFaultOrder` is an integer
|
|
16347
|
+
* fault order.
|
|
16348
|
+
* @returns {any}
|
|
16349
|
+
*/
|
|
16350
|
+
function araimLpv200Allocation() {
|
|
16351
|
+
const ret = wasm.araimLpv200Allocation();
|
|
16352
|
+
if (ret[2]) {
|
|
16353
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16354
|
+
}
|
|
16355
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16356
|
+
}
|
|
16357
|
+
exports.araimLpv200Allocation = araimLpv200Allocation;
|
|
16358
|
+
|
|
15060
16359
|
/**
|
|
15061
16360
|
* Evaluate NRLMSISE-00 neutral-atmosphere density and temperature.
|
|
15062
16361
|
*
|
|
@@ -15231,6 +16530,92 @@ function carrierFrequencyHz(system, band) {
|
|
|
15231
16530
|
}
|
|
15232
16531
|
exports.carrierFrequencyHz = carrierFrequencyHz;
|
|
15233
16532
|
|
|
16533
|
+
/**
|
|
16534
|
+
* CA-CFAR false alarm probability from searched-cell count, absolute
|
|
16535
|
+
* threshold, and mean noise level.
|
|
16536
|
+
* @param {number} searched_cells
|
|
16537
|
+
* @param {number} threshold
|
|
16538
|
+
* @param {number} noise_level
|
|
16539
|
+
* @returns {number}
|
|
16540
|
+
*/
|
|
16541
|
+
function cfarCaFalseAlarmProbability(searched_cells, threshold, noise_level) {
|
|
16542
|
+
const ret = wasm.cfarCaFalseAlarmProbability(searched_cells, threshold, noise_level);
|
|
16543
|
+
if (ret[2]) {
|
|
16544
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16545
|
+
}
|
|
16546
|
+
return ret[0];
|
|
16547
|
+
}
|
|
16548
|
+
exports.cfarCaFalseAlarmProbability = cfarCaFalseAlarmProbability;
|
|
16549
|
+
|
|
16550
|
+
/**
|
|
16551
|
+
* CA-CFAR threshold multiplier from searched-cell count and target false alarm
|
|
16552
|
+
* probability.
|
|
16553
|
+
* @param {number} searched_cells
|
|
16554
|
+
* @param {number} false_alarm_probability
|
|
16555
|
+
* @returns {number}
|
|
16556
|
+
*/
|
|
16557
|
+
function cfarCaMultiplierFromPfa(searched_cells, false_alarm_probability) {
|
|
16558
|
+
const ret = wasm.cfarCaMultiplierFromPfa(searched_cells, false_alarm_probability);
|
|
16559
|
+
if (ret[2]) {
|
|
16560
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16561
|
+
}
|
|
16562
|
+
return ret[0];
|
|
16563
|
+
}
|
|
16564
|
+
exports.cfarCaMultiplierFromPfa = cfarCaMultiplierFromPfa;
|
|
16565
|
+
|
|
16566
|
+
/**
|
|
16567
|
+
* CA-CFAR false alarm probability from searched-cell count and multiplier.
|
|
16568
|
+
* @param {number} searched_cells
|
|
16569
|
+
* @param {number} multiplier
|
|
16570
|
+
* @returns {number}
|
|
16571
|
+
*/
|
|
16572
|
+
function cfarCaPfaFromMultiplier(searched_cells, multiplier) {
|
|
16573
|
+
const ret = wasm.cfarCaPfaFromMultiplier(searched_cells, multiplier);
|
|
16574
|
+
if (ret[2]) {
|
|
16575
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16576
|
+
}
|
|
16577
|
+
return ret[0];
|
|
16578
|
+
}
|
|
16579
|
+
exports.cfarCaPfaFromMultiplier = cfarCaPfaFromMultiplier;
|
|
16580
|
+
|
|
16581
|
+
/**
|
|
16582
|
+
* CA-CFAR absolute threshold from searched-cell count, target false alarm
|
|
16583
|
+
* probability, and mean noise level.
|
|
16584
|
+
* @param {number} searched_cells
|
|
16585
|
+
* @param {number} false_alarm_probability
|
|
16586
|
+
* @param {number} noise_level
|
|
16587
|
+
* @returns {number}
|
|
16588
|
+
*/
|
|
16589
|
+
function cfarCaThreshold(searched_cells, false_alarm_probability, noise_level) {
|
|
16590
|
+
const ret = wasm.cfarCaThreshold(searched_cells, false_alarm_probability, noise_level);
|
|
16591
|
+
if (ret[2]) {
|
|
16592
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16593
|
+
}
|
|
16594
|
+
return ret[0];
|
|
16595
|
+
}
|
|
16596
|
+
exports.cfarCaThreshold = cfarCaThreshold;
|
|
16597
|
+
|
|
16598
|
+
/**
|
|
16599
|
+
* Compute the closed-form Chan-Ho seed used by [`locateSource`].
|
|
16600
|
+
*
|
|
16601
|
+
* `mode` is `"toa"`, `"tdoa"`, or `{ mode: "tdoa", referenceSensor }`.
|
|
16602
|
+
* Per-sensor speed overrides are not used by the closed-form equations, but
|
|
16603
|
+
* they are used by [`locateSource`] during iterative refinement.
|
|
16604
|
+
* @param {any} sensors
|
|
16605
|
+
* @param {any} arrival_times_s
|
|
16606
|
+
* @param {number} propagation_speed_m_s
|
|
16607
|
+
* @param {any} mode
|
|
16608
|
+
* @returns {any}
|
|
16609
|
+
*/
|
|
16610
|
+
function chanHoInitialGuess(sensors, arrival_times_s, propagation_speed_m_s, mode) {
|
|
16611
|
+
const ret = wasm.chanHoInitialGuess(sensors, arrival_times_s, propagation_speed_m_s, mode);
|
|
16612
|
+
if (ret[2]) {
|
|
16613
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16614
|
+
}
|
|
16615
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16616
|
+
}
|
|
16617
|
+
exports.chanHoInitialGuess = chanHoInitialGuess;
|
|
16618
|
+
|
|
15234
16619
|
/**
|
|
15235
16620
|
* Returns `true` when a diff has any findings.
|
|
15236
16621
|
* @param {any} diff
|
|
@@ -15392,6 +16777,29 @@ function collisionProbability(object1, object2, hard_body_radius_km, method) {
|
|
|
15392
16777
|
}
|
|
15393
16778
|
exports.collisionProbability = collisionProbability;
|
|
15394
16779
|
|
|
16780
|
+
/**
|
|
16781
|
+
* Compute one or more Allan-family curves with a selected tau grid and gap
|
|
16782
|
+
* policy.
|
|
16783
|
+
*
|
|
16784
|
+
* `input` is `{ series, tau0S, options? }`. `series.kind` may be
|
|
16785
|
+
* `"phaseSeconds"`, `"fractionalFrequency"`, `"phaseSecondsWithGaps"`, or
|
|
16786
|
+
* `"fractionalFrequencyWithGaps"`; gap series use `null` for missing samples.
|
|
16787
|
+
* `options.estimators` is `"standard"`, `"all"`, `"none"`, or a boolean flag
|
|
16788
|
+
* object. `options.tauGrid` is `"octave"`, `"all"`, or
|
|
16789
|
+
* `{ kind: "explicit", averagingFactors }`. `tau0S` and all returned `tauS`
|
|
16790
|
+
* values are seconds.
|
|
16791
|
+
* @param {any} input
|
|
16792
|
+
* @returns {any}
|
|
16793
|
+
*/
|
|
16794
|
+
function computeAllanDeviations(input) {
|
|
16795
|
+
const ret = wasm.computeAllanDeviations(input);
|
|
16796
|
+
if (ret[2]) {
|
|
16797
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16798
|
+
}
|
|
16799
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16800
|
+
}
|
|
16801
|
+
exports.computeAllanDeviations = computeAllanDeviations;
|
|
16802
|
+
|
|
15395
16803
|
/**
|
|
15396
16804
|
* Coherently correlate interleaved IQ samples against a GPS C/A PRN replica.
|
|
15397
16805
|
* `iq` is `[i0, q0, i1, q1, ...]`.
|
|
@@ -15662,6 +17070,12 @@ function decodeRtcmStream(bytes) {
|
|
|
15662
17070
|
exports.decodeRtcmStream = decodeRtcmStream;
|
|
15663
17071
|
|
|
15664
17072
|
/**
|
|
17073
|
+
* Decode a raw SBAS message.
|
|
17074
|
+
*
|
|
17075
|
+
* `form` is `"framed250"` for a 32-byte message with CRC or `"body226"` for a
|
|
17076
|
+
* 29-byte body. The result contains `messageType`, `form`, legacy debug
|
|
17077
|
+
* `kind`, and `message`, a structured decoded payload. Parse failures are
|
|
17078
|
+
* thrown as `Error`.
|
|
15665
17079
|
* @param {Uint8Array} bytes
|
|
15666
17080
|
* @param {string | null} [form]
|
|
15667
17081
|
* @returns {any}
|
|
@@ -15907,6 +17321,27 @@ function dopplerToRangeRate(doppler_hz, carrier_hz) {
|
|
|
15907
17321
|
}
|
|
15908
17322
|
exports.dopplerToRangeRate = dopplerToRangeRate;
|
|
15909
17323
|
|
|
17324
|
+
/**
|
|
17325
|
+
* Convert a DTED tile tree into canonical memory-mappable terrain store bytes.
|
|
17326
|
+
*
|
|
17327
|
+
* The returned `Uint8Array` can be passed to [`MmapTerrain.fromBytes`] or
|
|
17328
|
+
* [`MmapTerrain.fromVec`]. Posting payloads are decoded orthometric metres.
|
|
17329
|
+
* @param {string} root
|
|
17330
|
+
* @returns {Uint8Array}
|
|
17331
|
+
*/
|
|
17332
|
+
function dtedTreeToMmapStore(root) {
|
|
17333
|
+
const ptr0 = passStringToWasm0(root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
17334
|
+
const len0 = WASM_VECTOR_LEN;
|
|
17335
|
+
const ret = wasm.dtedTreeToMmapStore(ptr0, len0);
|
|
17336
|
+
if (ret[3]) {
|
|
17337
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
17338
|
+
}
|
|
17339
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
17340
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
17341
|
+
return v2;
|
|
17342
|
+
}
|
|
17343
|
+
exports.dtedTreeToMmapStore = dtedTreeToMmapStore;
|
|
17344
|
+
|
|
15910
17345
|
/**
|
|
15911
17346
|
* Angular radius in degrees of Earth as seen from each satellite position.
|
|
15912
17347
|
* @param {Float64Array} satellite_position_km
|
|
@@ -16307,22 +17742,57 @@ function estimateDecay(drag, request) {
|
|
|
16307
17742
|
exports.estimateDecay = estimateDecay;
|
|
16308
17743
|
|
|
16309
17744
|
/**
|
|
16310
|
-
* Estimate decay using per-epoch values from a parsed space-weather table.
|
|
16311
|
-
* @param {DragForce} drag
|
|
16312
|
-
* @param {SpaceWeatherTable} table
|
|
16313
|
-
* @param {any} request
|
|
16314
|
-
* @returns {any}
|
|
17745
|
+
* Estimate decay using per-epoch values from a parsed space-weather table.
|
|
17746
|
+
* @param {DragForce} drag
|
|
17747
|
+
* @param {SpaceWeatherTable} table
|
|
17748
|
+
* @param {any} request
|
|
17749
|
+
* @returns {any}
|
|
17750
|
+
*/
|
|
17751
|
+
function estimateDecayWithSpaceWeather(drag, table, request) {
|
|
17752
|
+
_assertClass(drag, DragForce);
|
|
17753
|
+
_assertClass(table, SpaceWeatherTable);
|
|
17754
|
+
const ret = wasm.estimateDecayWithSpaceWeather(drag.__wbg_ptr, table.__wbg_ptr, request);
|
|
17755
|
+
if (ret[2]) {
|
|
17756
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
17757
|
+
}
|
|
17758
|
+
return takeFromExternrefTable0(ret[0]);
|
|
17759
|
+
}
|
|
17760
|
+
exports.estimateDecayWithSpaceWeather = estimateDecayWithSpaceWeather;
|
|
17761
|
+
|
|
17762
|
+
/**
|
|
17763
|
+
* Exponentially weighted moving-average update.
|
|
17764
|
+
*
|
|
17765
|
+
* `alpha` must be in `[0, 1]`; the returned value is
|
|
17766
|
+
* `previous + alpha * (sample - previous)`.
|
|
17767
|
+
* @param {number} previous
|
|
17768
|
+
* @param {number} sample
|
|
17769
|
+
* @param {number} alpha
|
|
17770
|
+
* @returns {number}
|
|
17771
|
+
*/
|
|
17772
|
+
function ewmaUpdate(previous, sample, alpha) {
|
|
17773
|
+
const ret = wasm.ewmaUpdate(previous, sample, alpha);
|
|
17774
|
+
if (ret[2]) {
|
|
17775
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
17776
|
+
}
|
|
17777
|
+
return ret[0];
|
|
17778
|
+
}
|
|
17779
|
+
exports.ewmaUpdate = ewmaUpdate;
|
|
17780
|
+
|
|
17781
|
+
/**
|
|
17782
|
+
* EWMA update with `alpha = 1 / 2^shift`.
|
|
17783
|
+
* @param {number} previous
|
|
17784
|
+
* @param {number} sample
|
|
17785
|
+
* @param {number} shift
|
|
17786
|
+
* @returns {number}
|
|
16315
17787
|
*/
|
|
16316
|
-
function
|
|
16317
|
-
|
|
16318
|
-
_assertClass(table, SpaceWeatherTable);
|
|
16319
|
-
const ret = wasm.estimateDecayWithSpaceWeather(drag.__wbg_ptr, table.__wbg_ptr, request);
|
|
17788
|
+
function ewmaUpdatePowerOfTwo(previous, sample, shift) {
|
|
17789
|
+
const ret = wasm.ewmaUpdatePowerOfTwo(previous, sample, shift);
|
|
16320
17790
|
if (ret[2]) {
|
|
16321
17791
|
throw takeFromExternrefTable0(ret[1]);
|
|
16322
17792
|
}
|
|
16323
|
-
return
|
|
17793
|
+
return ret[0];
|
|
16324
17794
|
}
|
|
16325
|
-
exports.
|
|
17795
|
+
exports.ewmaUpdatePowerOfTwo = ewmaUpdatePowerOfTwo;
|
|
16326
17796
|
|
|
16327
17797
|
/**
|
|
16328
17798
|
* Find Moon elevation threshold crossings (moonrise / moonset) over a UTC
|
|
@@ -17192,6 +18662,26 @@ function gpsUtcOffsetS(year, month, day) {
|
|
|
17192
18662
|
}
|
|
17193
18663
|
exports.gpsUtcOffsetS = gpsUtcOffsetS;
|
|
17194
18664
|
|
|
18665
|
+
/**
|
|
18666
|
+
* Overlapping Hadamard deviation for explicit averaging factors.
|
|
18667
|
+
*
|
|
18668
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
18669
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
18670
|
+
* `{ tauS, deviation, n }`.
|
|
18671
|
+
* @param {any} series
|
|
18672
|
+
* @param {number} tau0_s
|
|
18673
|
+
* @param {any} averaging_factors
|
|
18674
|
+
* @returns {any}
|
|
18675
|
+
*/
|
|
18676
|
+
function hadamardDeviation(series, tau0_s, averaging_factors) {
|
|
18677
|
+
const ret = wasm.hadamardDeviation(series, tau0_s, averaging_factors);
|
|
18678
|
+
if (ret[2]) {
|
|
18679
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18680
|
+
}
|
|
18681
|
+
return takeFromExternrefTable0(ret[0]);
|
|
18682
|
+
}
|
|
18683
|
+
exports.hadamardDeviation = hadamardDeviation;
|
|
18684
|
+
|
|
17195
18685
|
/**
|
|
17196
18686
|
* Trace of the Gauss-Newton Hessian approximation `J^T J`: the sum of the
|
|
17197
18687
|
* squared column norms of the Jacobian, with no inverse formed.
|
|
@@ -17305,6 +18795,49 @@ function iodHerrickGibbs(r1, r2, r3, jd1, jd2, jd3) {
|
|
|
17305
18795
|
}
|
|
17306
18796
|
exports.iodHerrickGibbs = iodHerrickGibbs;
|
|
17307
18797
|
|
|
18798
|
+
/**
|
|
18799
|
+
* Build an IONEX vertical-TEC product from flat node samples.
|
|
18800
|
+
*
|
|
18801
|
+
* `samples` is an array of `{ epochJ2000S, latDeg, lonDeg, vtecTecu,
|
|
18802
|
+
* rmsTecu? }` objects. Epochs are integer seconds since J2000, coordinates are
|
|
18803
|
+
* degrees, and TEC/RMS values are TECU. `shellHeightKm` and `baseRadiusKm` are
|
|
18804
|
+
* kilometers. Validation errors from the core sample builder are thrown as
|
|
18805
|
+
* `RangeError`.
|
|
18806
|
+
* @param {any} samples
|
|
18807
|
+
* @param {number} shell_height_km
|
|
18808
|
+
* @param {number} base_radius_km
|
|
18809
|
+
* @param {number} exponent
|
|
18810
|
+
* @returns {Ionex}
|
|
18811
|
+
*/
|
|
18812
|
+
function ionexFromNodeSamples(samples, shell_height_km, base_radius_km, exponent) {
|
|
18813
|
+
const ret = wasm.ionexFromNodeSamples(samples, shell_height_km, base_radius_km, exponent);
|
|
18814
|
+
if (ret[2]) {
|
|
18815
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18816
|
+
}
|
|
18817
|
+
return Ionex.__wrap(ret[0]);
|
|
18818
|
+
}
|
|
18819
|
+
exports.ionexFromNodeSamples = ionexFromNodeSamples;
|
|
18820
|
+
|
|
18821
|
+
/**
|
|
18822
|
+
* Build an IONEX vertical-TEC product from full-grid samples.
|
|
18823
|
+
*
|
|
18824
|
+
* `samples.mapEpochsJ2000S` are integer seconds since J2000. Latitude and
|
|
18825
|
+
* longitude nodes and `dlatDeg` / `dlonDeg` are degrees. `tecMaps` and
|
|
18826
|
+
* `rmsMaps` are TECU and indexed `[map][iLat][iLon]`. The shell height and
|
|
18827
|
+
* base radius are kilometers. Validation errors from the core sample builder
|
|
18828
|
+
* are thrown as `RangeError`.
|
|
18829
|
+
* @param {any} samples
|
|
18830
|
+
* @returns {Ionex}
|
|
18831
|
+
*/
|
|
18832
|
+
function ionexFromSamples(samples) {
|
|
18833
|
+
const ret = wasm.ionexFromSamples(samples);
|
|
18834
|
+
if (ret[2]) {
|
|
18835
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18836
|
+
}
|
|
18837
|
+
return Ionex.__wrap(ret[0]);
|
|
18838
|
+
}
|
|
18839
|
+
exports.ionexFromSamples = ionexFromSamples;
|
|
18840
|
+
|
|
17308
18841
|
/**
|
|
17309
18842
|
* Ionosphere-free code or meter-valued phase combination, metres.
|
|
17310
18843
|
* @param {number} obs1_m
|
|
@@ -17443,6 +18976,26 @@ function jarqueBera(x) {
|
|
|
17443
18976
|
}
|
|
17444
18977
|
exports.jarqueBera = jarqueBera;
|
|
17445
18978
|
|
|
18979
|
+
/**
|
|
18980
|
+
* Steady-state gains for a scalar constant-velocity Kalman filter.
|
|
18981
|
+
*
|
|
18982
|
+
* `trackingIndex`, `dt`, and `measurementVariance` must be positive. Returns
|
|
18983
|
+
* `{ positionGain, rateGain }`; `rateGain * dt` equals the alpha-beta `beta`
|
|
18984
|
+
* gain for the same tracking index.
|
|
18985
|
+
* @param {number} tracking_index
|
|
18986
|
+
* @param {number} dt
|
|
18987
|
+
* @param {number} measurement_variance
|
|
18988
|
+
* @returns {any}
|
|
18989
|
+
*/
|
|
18990
|
+
function kalmanCvSteadyStateGains(tracking_index, dt, measurement_variance) {
|
|
18991
|
+
const ret = wasm.kalmanCvSteadyStateGains(tracking_index, dt, measurement_variance);
|
|
18992
|
+
if (ret[2]) {
|
|
18993
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18994
|
+
}
|
|
18995
|
+
return takeFromExternrefTable0(ret[0]);
|
|
18996
|
+
}
|
|
18997
|
+
exports.kalmanCvSteadyStateGains = kalmanCvSteadyStateGains;
|
|
18998
|
+
|
|
17446
18999
|
/**
|
|
17447
19000
|
* GPS broadcast Klobuchar ionospheric group delay in the model's native units
|
|
17448
19001
|
* (positive metres).
|
|
@@ -18013,6 +19566,30 @@ function loadSp3(bytes) {
|
|
|
18013
19566
|
}
|
|
18014
19567
|
exports.loadSp3 = loadSp3;
|
|
18015
19568
|
|
|
19569
|
+
/**
|
|
19570
|
+
* Locate a source from sensor arrival times.
|
|
19571
|
+
*
|
|
19572
|
+
* `sensors` is an array of `{ positionM, propagationSpeedMS? }`; each
|
|
19573
|
+
* `positionM` is a 2D or 3D Cartesian metre vector and all sensors must share
|
|
19574
|
+
* the same dimension. `arrivalTimesS` is an aligned seconds array,
|
|
19575
|
+
* `propagationSpeedMS` is the call-level speed in metres per second, and
|
|
19576
|
+
* `options` may include `mode`, `referenceSensor`, `timingSigmaS`, `loss`,
|
|
19577
|
+
* `fScaleS`, `ftol`, `xtol`, `gtol`, and `maxNfev`.
|
|
19578
|
+
* @param {any} sensors
|
|
19579
|
+
* @param {any} arrival_times_s
|
|
19580
|
+
* @param {number} propagation_speed_m_s
|
|
19581
|
+
* @param {any} options
|
|
19582
|
+
* @returns {any}
|
|
19583
|
+
*/
|
|
19584
|
+
function locateSource(sensors, arrival_times_s, propagation_speed_m_s, options) {
|
|
19585
|
+
const ret = wasm.locateSource(sensors, arrival_times_s, propagation_speed_m_s, options);
|
|
19586
|
+
if (ret[2]) {
|
|
19587
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19588
|
+
}
|
|
19589
|
+
return takeFromExternrefTable0(ret[0]);
|
|
19590
|
+
}
|
|
19591
|
+
exports.locateSource = locateSource;
|
|
19592
|
+
|
|
18016
19593
|
/**
|
|
18017
19594
|
* @param {bigint} start_unix_us
|
|
18018
19595
|
* @param {bigint} end_unix_us
|
|
@@ -18067,6 +19644,35 @@ function lvlhRotation(position_km, velocity_km_s) {
|
|
|
18067
19644
|
}
|
|
18068
19645
|
exports.lvlhRotation = lvlhRotation;
|
|
18069
19646
|
|
|
19647
|
+
/**
|
|
19648
|
+
* Gaussian consistency factor applied by [`madSpread`].
|
|
19649
|
+
* @returns {number}
|
|
19650
|
+
*/
|
|
19651
|
+
function madGaussianConsistency() {
|
|
19652
|
+
const ret = wasm.madGaussianConsistency();
|
|
19653
|
+
return ret;
|
|
19654
|
+
}
|
|
19655
|
+
exports.madGaussianConsistency = madGaussianConsistency;
|
|
19656
|
+
|
|
19657
|
+
/**
|
|
19658
|
+
* Median absolute deviation spread estimate.
|
|
19659
|
+
*
|
|
19660
|
+
* `values` is a JS number array. The returned spread is
|
|
19661
|
+
* `MAD_GAUSSIAN_CONSISTENCY * median(abs(value - median(values)))`, floored by
|
|
19662
|
+
* `scaleFloor`.
|
|
19663
|
+
* @param {any} values
|
|
19664
|
+
* @param {number} scale_floor
|
|
19665
|
+
* @returns {number}
|
|
19666
|
+
*/
|
|
19667
|
+
function madSpread(values, scale_floor) {
|
|
19668
|
+
const ret = wasm.madSpread(values, scale_floor);
|
|
19669
|
+
if (ret[2]) {
|
|
19670
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19671
|
+
}
|
|
19672
|
+
return ret[0];
|
|
19673
|
+
}
|
|
19674
|
+
exports.madSpread = madSpread;
|
|
19675
|
+
|
|
18070
19676
|
/**
|
|
18071
19677
|
* @param {number} radius_km
|
|
18072
19678
|
* @returns {number}
|
|
@@ -18257,6 +19863,26 @@ function meridianTransitsSpk(spk, body, station, start_unix_us, end_unix_us, ste
|
|
|
18257
19863
|
}
|
|
18258
19864
|
exports.meridianTransitsSpk = meridianTransitsSpk;
|
|
18259
19865
|
|
|
19866
|
+
/**
|
|
19867
|
+
* Modified Allan deviation for explicit averaging factors.
|
|
19868
|
+
*
|
|
19869
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
19870
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
19871
|
+
* `{ tauS, deviation, n }`.
|
|
19872
|
+
* @param {any} series
|
|
19873
|
+
* @param {number} tau0_s
|
|
19874
|
+
* @param {any} averaging_factors
|
|
19875
|
+
* @returns {any}
|
|
19876
|
+
*/
|
|
19877
|
+
function modifiedAdev(series, tau0_s, averaging_factors) {
|
|
19878
|
+
const ret = wasm.modifiedAdev(series, tau0_s, averaging_factors);
|
|
19879
|
+
if (ret[2]) {
|
|
19880
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19881
|
+
}
|
|
19882
|
+
return takeFromExternrefTable0(ret[0]);
|
|
19883
|
+
}
|
|
19884
|
+
exports.modifiedAdev = modifiedAdev;
|
|
19885
|
+
|
|
18260
19886
|
/**
|
|
18261
19887
|
* Mean, variance, skewness, and excess kurtosis of a residual set in one pass.
|
|
18262
19888
|
*
|
|
@@ -18479,6 +20105,69 @@ function nequickGStecTecu(_eval) {
|
|
|
18479
20105
|
}
|
|
18480
20106
|
exports.nequickGStecTecu = nequickGStecTecu;
|
|
18481
20107
|
|
|
20108
|
+
/**
|
|
20109
|
+
* Scalar normalized innovation squared statistic.
|
|
20110
|
+
* @param {number} innovation
|
|
20111
|
+
* @param {number} innovation_variance
|
|
20112
|
+
* @returns {number}
|
|
20113
|
+
*/
|
|
20114
|
+
function nis(innovation, innovation_variance) {
|
|
20115
|
+
const ret = wasm.nis(innovation, innovation_variance);
|
|
20116
|
+
if (ret[2]) {
|
|
20117
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20118
|
+
}
|
|
20119
|
+
return ret[0];
|
|
20120
|
+
}
|
|
20121
|
+
exports.nis = nis;
|
|
20122
|
+
|
|
20123
|
+
/**
|
|
20124
|
+
* Bar-Shalom expected NIS value for `dof` measurement degrees of freedom.
|
|
20125
|
+
* @param {number} dof
|
|
20126
|
+
* @returns {number}
|
|
20127
|
+
*/
|
|
20128
|
+
function nisExpectedValue(dof) {
|
|
20129
|
+
const ret = wasm.nisExpectedValue(dof);
|
|
20130
|
+
if (ret[2]) {
|
|
20131
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20132
|
+
}
|
|
20133
|
+
return ret[0];
|
|
20134
|
+
}
|
|
20135
|
+
exports.nisExpectedValue = nisExpectedValue;
|
|
20136
|
+
|
|
20137
|
+
/**
|
|
20138
|
+
* Test a scalar innovation against a chi-square NIS gate.
|
|
20139
|
+
*
|
|
20140
|
+
* Returns `{ nis, threshold, inGate, dof }`, with `confidence` in `(0, 1)`.
|
|
20141
|
+
* @param {number} innovation
|
|
20142
|
+
* @param {number} innovation_variance
|
|
20143
|
+
* @param {number} dof
|
|
20144
|
+
* @param {number} confidence
|
|
20145
|
+
* @returns {any}
|
|
20146
|
+
*/
|
|
20147
|
+
function nisGate(innovation, innovation_variance, dof, confidence) {
|
|
20148
|
+
const ret = wasm.nisGate(innovation, innovation_variance, dof, confidence);
|
|
20149
|
+
if (ret[2]) {
|
|
20150
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20151
|
+
}
|
|
20152
|
+
return takeFromExternrefTable0(ret[0]);
|
|
20153
|
+
}
|
|
20154
|
+
exports.nisGate = nisGate;
|
|
20155
|
+
|
|
20156
|
+
/**
|
|
20157
|
+
* Chi-square NIS gate threshold for `dof` and confidence probability.
|
|
20158
|
+
* @param {number} dof
|
|
20159
|
+
* @param {number} confidence
|
|
20160
|
+
* @returns {number}
|
|
20161
|
+
*/
|
|
20162
|
+
function nisGateThreshold(dof, confidence) {
|
|
20163
|
+
const ret = wasm.nisGateThreshold(dof, confidence);
|
|
20164
|
+
if (ret[2]) {
|
|
20165
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20166
|
+
}
|
|
20167
|
+
return ret[0];
|
|
20168
|
+
}
|
|
20169
|
+
exports.nisGateThreshold = nisGateThreshold;
|
|
20170
|
+
|
|
18482
20171
|
/**
|
|
18483
20172
|
* Parse bytes and return grouped epoch snapshots directly.
|
|
18484
20173
|
* @param {Uint8Array} bytes
|
|
@@ -18566,6 +20255,21 @@ function normalCovariance(jacobian, m, n, variance_scale) {
|
|
|
18566
20255
|
}
|
|
18567
20256
|
exports.normalCovariance = normalCovariance;
|
|
18568
20257
|
|
|
20258
|
+
/**
|
|
20259
|
+
* Scalar normalized innovation `innovation / sqrt(innovationVariance)`.
|
|
20260
|
+
* @param {number} innovation
|
|
20261
|
+
* @param {number} innovation_variance
|
|
20262
|
+
* @returns {number}
|
|
20263
|
+
*/
|
|
20264
|
+
function normalizedInnovation(innovation, innovation_variance) {
|
|
20265
|
+
const ret = wasm.normalizedInnovation(innovation, innovation_variance);
|
|
20266
|
+
if (ret[2]) {
|
|
20267
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20268
|
+
}
|
|
20269
|
+
return ret[0];
|
|
20270
|
+
}
|
|
20271
|
+
exports.normalizedInnovation = normalizedInnovation;
|
|
20272
|
+
|
|
18569
20273
|
/**
|
|
18570
20274
|
* Build the NTRIP connection request bytes for a config object.
|
|
18571
20275
|
* @param {any} config
|
|
@@ -18582,6 +20286,24 @@ function ntripRequestBytes(config) {
|
|
|
18582
20286
|
}
|
|
18583
20287
|
exports.ntripRequestBytes = ntripRequestBytes;
|
|
18584
20288
|
|
|
20289
|
+
/**
|
|
20290
|
+
* Missing-position sentinel used in failed observable-state batch elements.
|
|
20291
|
+
*
|
|
20292
|
+
* The returned JS value is `[NaN, NaN, NaN]`, matching
|
|
20293
|
+
* `sidereon_core::ephemeris::OBSERVABLE_STATE_MISSING_POSITION_ECEF_M`. Always
|
|
20294
|
+
* check `elementResults[i].ok` or `statuses[i]` before using
|
|
20295
|
+
* `positionsEcefM[i]`.
|
|
20296
|
+
* @returns {any}
|
|
20297
|
+
*/
|
|
20298
|
+
function observableStateMissingPositionEcefM() {
|
|
20299
|
+
const ret = wasm.observableStateMissingPositionEcefM();
|
|
20300
|
+
if (ret[2]) {
|
|
20301
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20302
|
+
}
|
|
20303
|
+
return takeFromExternrefTable0(ret[0]);
|
|
20304
|
+
}
|
|
20305
|
+
exports.observableStateMissingPositionEcefM = observableStateMissingPositionEcefM;
|
|
20306
|
+
|
|
18585
20307
|
/**
|
|
18586
20308
|
* Predict observables for one satellite from a broadcast ephemeris store.
|
|
18587
20309
|
* Delegates to `sidereon_core::observables::predict`.
|
|
@@ -18778,6 +20500,26 @@ function orthometricHeightM(ellipsoidal_height_m, lat_rad, lon_rad) {
|
|
|
18778
20500
|
}
|
|
18779
20501
|
exports.orthometricHeightM = orthometricHeightM;
|
|
18780
20502
|
|
|
20503
|
+
/**
|
|
20504
|
+
* Fully overlapping Allan deviation for explicit averaging factors.
|
|
20505
|
+
*
|
|
20506
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
20507
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
20508
|
+
* `{ tauS, deviation, n }`.
|
|
20509
|
+
* @param {any} series
|
|
20510
|
+
* @param {number} tau0_s
|
|
20511
|
+
* @param {any} averaging_factors
|
|
20512
|
+
* @returns {any}
|
|
20513
|
+
*/
|
|
20514
|
+
function overlappingAdev(series, tau0_s, averaging_factors) {
|
|
20515
|
+
const ret = wasm.overlappingAdev(series, tau0_s, averaging_factors);
|
|
20516
|
+
if (ret[2]) {
|
|
20517
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20518
|
+
}
|
|
20519
|
+
return takeFromExternrefTable0(ret[0]);
|
|
20520
|
+
}
|
|
20521
|
+
exports.overlappingAdev = overlappingAdev;
|
|
20522
|
+
|
|
18781
20523
|
/**
|
|
18782
20524
|
* Parallactic angle (degrees) of a target at a station.
|
|
18783
20525
|
*
|
|
@@ -19996,6 +21738,23 @@ function sampleSp3Ephemeris(sp3, satellites, start_j2000_s, stop_j2000_s, step_s
|
|
|
19996
21738
|
}
|
|
19997
21739
|
exports.sampleSp3Ephemeris = sampleSp3Ephemeris;
|
|
19998
21740
|
|
|
21741
|
+
/**
|
|
21742
|
+
* Convert an SBAS satellite token such as `"S29"` to broadcast PRN number
|
|
21743
|
+
* such as `129`. Returns `null` for non-SBAS satellites.
|
|
21744
|
+
* @param {string} sat
|
|
21745
|
+
* @returns {any}
|
|
21746
|
+
*/
|
|
21747
|
+
function satToSbasPrn(sat) {
|
|
21748
|
+
const ptr0 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
21749
|
+
const len0 = WASM_VECTOR_LEN;
|
|
21750
|
+
const ret = wasm.satToSbasPrn(ptr0, len0);
|
|
21751
|
+
if (ret[2]) {
|
|
21752
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
21753
|
+
}
|
|
21754
|
+
return takeFromExternrefTable0(ret[0]);
|
|
21755
|
+
}
|
|
21756
|
+
exports.satToSbasPrn = satToSbasPrn;
|
|
21757
|
+
|
|
19999
21758
|
/**
|
|
20000
21759
|
* Apparent visual magnitude of a sunlit body from a diffuse-sphere phase law.
|
|
20001
21760
|
*
|
|
@@ -20020,6 +21779,10 @@ function satelliteVisualMagnitude(range_km, phase_angle_deg, standard_magnitude,
|
|
|
20020
21779
|
exports.satelliteVisualMagnitude = satelliteVisualMagnitude;
|
|
20021
21780
|
|
|
20022
21781
|
/**
|
|
21782
|
+
* SBAS-corrected broadcast satellite position and clock.
|
|
21783
|
+
*
|
|
21784
|
+
* Position is ECEF meters and clock is seconds at `tJ2000S`, seconds since
|
|
21785
|
+
* J2000. Returns `null` when the selected SBAS mode cannot provide a state.
|
|
20023
21786
|
* @param {BroadcastEphemeris} broadcast
|
|
20024
21787
|
* @param {SbasCorrectionStore} store
|
|
20025
21788
|
* @param {string} geo
|
|
@@ -20045,6 +21808,18 @@ function sbasCorrectedState(broadcast, store, geo, sat, t_j2000_s, mode) {
|
|
|
20045
21808
|
}
|
|
20046
21809
|
exports.sbasCorrectedState = sbasCorrectedState;
|
|
20047
21810
|
|
|
21811
|
+
/**
|
|
21812
|
+
* Convert an SBAS broadcast PRN number such as `129` to an SBAS satellite
|
|
21813
|
+
* token such as `"S29"`. Returns `null` when the PRN is outside the SBAS range.
|
|
21814
|
+
* @param {number} broadcast_prn
|
|
21815
|
+
* @returns {any}
|
|
21816
|
+
*/
|
|
21817
|
+
function sbasPrnToSat(broadcast_prn) {
|
|
21818
|
+
const ret = wasm.sbasPrnToSat(broadcast_prn);
|
|
21819
|
+
return ret;
|
|
21820
|
+
}
|
|
21821
|
+
exports.sbasPrnToSat = sbasPrnToSat;
|
|
21822
|
+
|
|
20048
21823
|
/**
|
|
20049
21824
|
* Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
|
|
20050
21825
|
*
|
|
@@ -20629,6 +22404,11 @@ function solveRtkFloat(config) {
|
|
|
20629
22404
|
exports.solveRtkFloat = solveRtkFloat;
|
|
20630
22405
|
|
|
20631
22406
|
/**
|
|
22407
|
+
* Solve SPP using an SBAS-corrected broadcast source and optional SBAS iono.
|
|
22408
|
+
*
|
|
22409
|
+
* The returned solution uses the same units as `solveSpp`: ECEF meters,
|
|
22410
|
+
* receiver clock seconds, residual meters, and optional geodetic radians plus
|
|
22411
|
+
* ellipsoidal height meters.
|
|
20632
22412
|
* @param {BroadcastEphemeris} broadcast
|
|
20633
22413
|
* @param {SbasCorrectionStore} store
|
|
20634
22414
|
* @param {string} geo
|
|
@@ -20745,6 +22525,78 @@ function solveWithFallback(precise, broadcast, request, policy) {
|
|
|
20745
22525
|
}
|
|
20746
22526
|
exports.solveWithFallback = solveWithFallback;
|
|
20747
22527
|
|
|
22528
|
+
/**
|
|
22529
|
+
* Compute the timing Cramer-Rao lower bound for a proposed source position.
|
|
22530
|
+
*
|
|
22531
|
+
* The covariance is `(H^T H)^-1 * timingSigmaS^2`; position blocks are square
|
|
22532
|
+
* metres and origin-time variance is square seconds.
|
|
22533
|
+
* @param {any} sensors
|
|
22534
|
+
* @param {any} source_position_m
|
|
22535
|
+
* @param {number} propagation_speed_m_s
|
|
22536
|
+
* @param {number} timing_sigma_s
|
|
22537
|
+
* @returns {any}
|
|
22538
|
+
*/
|
|
22539
|
+
function sourceCrlb(sensors, source_position_m, propagation_speed_m_s, timing_sigma_s) {
|
|
22540
|
+
const ret = wasm.sourceCrlb(sensors, source_position_m, propagation_speed_m_s, timing_sigma_s);
|
|
22541
|
+
if (ret[2]) {
|
|
22542
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22543
|
+
}
|
|
22544
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22545
|
+
}
|
|
22546
|
+
exports.sourceCrlb = sourceCrlb;
|
|
22547
|
+
|
|
22548
|
+
/**
|
|
22549
|
+
* Compute timing DOP for a proposed source position.
|
|
22550
|
+
*
|
|
22551
|
+
* `sourcePositionM` is a 2D or 3D Cartesian metre vector in the same frame as
|
|
22552
|
+
* the sensors. The returned DOP values multiply timing sigma in seconds to
|
|
22553
|
+
* produce metres in the caller's Cartesian axes.
|
|
22554
|
+
* @param {any} sensors
|
|
22555
|
+
* @param {any} source_position_m
|
|
22556
|
+
* @param {number} propagation_speed_m_s
|
|
22557
|
+
* @returns {any}
|
|
22558
|
+
*/
|
|
22559
|
+
function sourceDop(sensors, source_position_m, propagation_speed_m_s) {
|
|
22560
|
+
const ret = wasm.sourceDop(sensors, source_position_m, propagation_speed_m_s);
|
|
22561
|
+
if (ret[2]) {
|
|
22562
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22563
|
+
}
|
|
22564
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22565
|
+
}
|
|
22566
|
+
exports.sourceDop = sourceDop;
|
|
22567
|
+
|
|
22568
|
+
/**
|
|
22569
|
+
* Return the plain mode object for TDOA solves against `referenceSensor`.
|
|
22570
|
+
* @param {number} reference_sensor
|
|
22571
|
+
* @returns {any}
|
|
22572
|
+
*/
|
|
22573
|
+
function sourceSolveModeTdoa(reference_sensor) {
|
|
22574
|
+
const ret = wasm.sourceSolveModeTdoa(reference_sensor);
|
|
22575
|
+
if (ret[2]) {
|
|
22576
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22577
|
+
}
|
|
22578
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22579
|
+
}
|
|
22580
|
+
exports.sourceSolveModeTdoa = sourceSolveModeTdoa;
|
|
22581
|
+
|
|
22582
|
+
/**
|
|
22583
|
+
* Return the plain mode value for absolute time-of-arrival solves.
|
|
22584
|
+
* @returns {string}
|
|
22585
|
+
*/
|
|
22586
|
+
function sourceSolveModeToa() {
|
|
22587
|
+
let deferred1_0;
|
|
22588
|
+
let deferred1_1;
|
|
22589
|
+
try {
|
|
22590
|
+
const ret = wasm.sourceSolveModeToa();
|
|
22591
|
+
deferred1_0 = ret[0];
|
|
22592
|
+
deferred1_1 = ret[1];
|
|
22593
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
22594
|
+
} finally {
|
|
22595
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
22596
|
+
}
|
|
22597
|
+
}
|
|
22598
|
+
exports.sourceSolveModeToa = sourceSolveModeToa;
|
|
22599
|
+
|
|
20748
22600
|
/**
|
|
20749
22601
|
* Extract a parsed SP3 product as the canonical precise-ephemeris samples, one
|
|
20750
22602
|
* per real position record in ascending epoch order.
|
|
@@ -21031,6 +22883,39 @@ function terminatorLatitudeDeg(sub_solar_latitude_deg, sub_solar_longitude_deg,
|
|
|
21031
22883
|
}
|
|
21032
22884
|
exports.terminatorLatitudeDeg = terminatorLatitudeDeg;
|
|
21033
22885
|
|
|
22886
|
+
/**
|
|
22887
|
+
* Return an FNV-1a checksum for terrain store bytes.
|
|
22888
|
+
* @param {Uint8Array} bytes
|
|
22889
|
+
* @returns {bigint}
|
|
22890
|
+
*/
|
|
22891
|
+
function terrainStoreChecksum64(bytes) {
|
|
22892
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
22893
|
+
const len0 = WASM_VECTOR_LEN;
|
|
22894
|
+
const ret = wasm.terrainStoreChecksum64(ptr0, len0);
|
|
22895
|
+
return BigInt.asUintN(64, ret);
|
|
22896
|
+
}
|
|
22897
|
+
exports.terrainStoreChecksum64 = terrainStoreChecksum64;
|
|
22898
|
+
|
|
22899
|
+
/**
|
|
22900
|
+
* Time deviation for explicit averaging factors.
|
|
22901
|
+
*
|
|
22902
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
22903
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
22904
|
+
* `{ tauS, deviation, n }`.
|
|
22905
|
+
* @param {any} series
|
|
22906
|
+
* @param {number} tau0_s
|
|
22907
|
+
* @param {any} averaging_factors
|
|
22908
|
+
* @returns {any}
|
|
22909
|
+
*/
|
|
22910
|
+
function timeDeviation(series, tau0_s, averaging_factors) {
|
|
22911
|
+
const ret = wasm.timeDeviation(series, tau0_s, averaging_factors);
|
|
22912
|
+
if (ret[2]) {
|
|
22913
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22914
|
+
}
|
|
22915
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22916
|
+
}
|
|
22917
|
+
exports.timeDeviation = timeDeviation;
|
|
22918
|
+
|
|
21034
22919
|
/**
|
|
21035
22920
|
* Short uppercase identifier for a time scale, e.g. `"GPST"`.
|
|
21036
22921
|
* @param {TimeScale} scale
|
|
@@ -21400,6 +23285,23 @@ function wideLaneWavelength(f1_hz, f2_hz) {
|
|
|
21400
23285
|
return ret[0];
|
|
21401
23286
|
}
|
|
21402
23287
|
exports.wideLaneWavelength = wideLaneWavelength;
|
|
23288
|
+
|
|
23289
|
+
/**
|
|
23290
|
+
* Convert a DTED tile tree and write canonical terrain store bytes to a path.
|
|
23291
|
+
* @param {string} root
|
|
23292
|
+
* @param {string} out_path
|
|
23293
|
+
*/
|
|
23294
|
+
function writeDtedTreeToMmapStore(root, out_path) {
|
|
23295
|
+
const ptr0 = passStringToWasm0(root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
23296
|
+
const len0 = WASM_VECTOR_LEN;
|
|
23297
|
+
const ptr1 = passStringToWasm0(out_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
23298
|
+
const len1 = WASM_VECTOR_LEN;
|
|
23299
|
+
const ret = wasm.writeDtedTreeToMmapStore(ptr0, len0, ptr1, len1);
|
|
23300
|
+
if (ret[1]) {
|
|
23301
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
23302
|
+
}
|
|
23303
|
+
}
|
|
23304
|
+
exports.writeDtedTreeToMmapStore = writeDtedTreeToMmapStore;
|
|
21403
23305
|
function __wbg_get_imports() {
|
|
21404
23306
|
const import0 = {
|
|
21405
23307
|
__proto__: null,
|
|
@@ -21780,6 +23682,10 @@ function __wbg_get_imports() {
|
|
|
21780
23682
|
const ret = SpkSegment.__wrap(arg0);
|
|
21781
23683
|
return ret;
|
|
21782
23684
|
},
|
|
23685
|
+
__wbg_terrainstoretileindex_new: function(arg0) {
|
|
23686
|
+
const ret = TerrainStoreTileIndex.__wrap(arg0);
|
|
23687
|
+
return ret;
|
|
23688
|
+
},
|
|
21783
23689
|
__wbg_tle_unwrap: function(arg0) {
|
|
21784
23690
|
const ret = Tle.__unwrap(arg0);
|
|
21785
23691
|
return ret;
|
|
@@ -21942,6 +23848,12 @@ const DragForceFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
21942
23848
|
const DtedTerrainFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21943
23849
|
? { register: () => {}, unregister: () => {} }
|
|
21944
23850
|
: new FinalizationRegistry(ptr => wasm.__wbg_dtedterrain_free(ptr, 1));
|
|
23851
|
+
const Egm96FifteenMinuteGeoidFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23852
|
+
? { register: () => {}, unregister: () => {} }
|
|
23853
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_egm96fifteenminutegeoid_free(ptr, 1));
|
|
23854
|
+
const EllipsoidalHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23855
|
+
? { register: () => {}, unregister: () => {} }
|
|
23856
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_ellipsoidalheightm_free(ptr, 1));
|
|
21945
23857
|
const EncounterFrameFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21946
23858
|
? { register: () => {}, unregister: () => {} }
|
|
21947
23859
|
: new FinalizationRegistry(ptr => wasm.__wbg_encounterframe_free(ptr, 1));
|
|
@@ -22050,6 +23962,9 @@ const LookAnglesFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
22050
23962
|
const MappingFactorsFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22051
23963
|
? { register: () => {}, unregister: () => {} }
|
|
22052
23964
|
: new FinalizationRegistry(ptr => wasm.__wbg_mappingfactors_free(ptr, 1));
|
|
23965
|
+
const MmapTerrainFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23966
|
+
? { register: () => {}, unregister: () => {} }
|
|
23967
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_mmapterrain_free(ptr, 1));
|
|
22053
23968
|
const MoonElevationCrossingFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22054
23969
|
? { register: () => {}, unregister: () => {} }
|
|
22055
23970
|
: new FinalizationRegistry(ptr => wasm.__wbg_moonelevationcrossing_free(ptr, 1));
|
|
@@ -22134,6 +24049,9 @@ const OpmSpacecraftFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
22134
24049
|
const OpmStateFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22135
24050
|
? { register: () => {}, unregister: () => {} }
|
|
22136
24051
|
: new FinalizationRegistry(ptr => wasm.__wbg_opmstate_free(ptr, 1));
|
|
24052
|
+
const OrthometricHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
24053
|
+
? { register: () => {}, unregister: () => {} }
|
|
24054
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_orthometricheightm_free(ptr, 1));
|
|
22137
24055
|
const ParsedTleFileFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22138
24056
|
? { register: () => {}, unregister: () => {} }
|
|
22139
24057
|
: new FinalizationRegistry(ptr => wasm.__wbg_parsedtlefile_free(ptr, 1));
|
|
@@ -22149,6 +24067,9 @@ const PppFixedSolutionFinalization = (typeof FinalizationRegistry === 'undefined
|
|
|
22149
24067
|
const PppFloatSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22150
24068
|
? { register: () => {}, unregister: () => {} }
|
|
22151
24069
|
: new FinalizationRegistry(ptr => wasm.__wbg_pppfloatsolution_free(ptr, 1));
|
|
24070
|
+
const PreciseEphemerisInterpolantFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
24071
|
+
? { register: () => {}, unregister: () => {} }
|
|
24072
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_preciseephemerisinterpolant_free(ptr, 1));
|
|
22152
24073
|
const PreciseEphemerisSampleSourceFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22153
24074
|
? { register: () => {}, unregister: () => {} }
|
|
22154
24075
|
: new FinalizationRegistry(ptr => wasm.__wbg_preciseephemerissamplesource_free(ptr, 1));
|
|
@@ -22275,6 +24196,12 @@ const SsrCorrectionStoreFinalization = (typeof FinalizationRegistry === 'undefin
|
|
|
22275
24196
|
const SunMoonFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22276
24197
|
? { register: () => {}, unregister: () => {} }
|
|
22277
24198
|
: new FinalizationRegistry(ptr => wasm.__wbg_sunmoon_free(ptr, 1));
|
|
24199
|
+
const TerrainGeoidModelFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
24200
|
+
? { register: () => {}, unregister: () => {} }
|
|
24201
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_terraingeoidmodel_free(ptr, 1));
|
|
24202
|
+
const TerrainStoreTileIndexFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
24203
|
+
? { register: () => {}, unregister: () => {} }
|
|
24204
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_terrainstoretileindex_free(ptr, 1));
|
|
22278
24205
|
const TleFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
22279
24206
|
? { register: () => {}, unregister: () => {} }
|
|
22280
24207
|
: new FinalizationRegistry(ptr => wasm.__wbg_tle_free(ptr, 1));
|