@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/sidereon.js
CHANGED
|
@@ -875,6 +875,43 @@ export class BroadcastEphemeris {
|
|
|
875
875
|
const ret = wasm.broadcastephemeris_leapSeconds(this.__wbg_ptr);
|
|
876
876
|
return ret[0] === 0 ? undefined : ret[1];
|
|
877
877
|
}
|
|
878
|
+
/**
|
|
879
|
+
* Query ECEF position and clock for parallel satellite and epoch arrays
|
|
880
|
+
* against this parsed broadcast ephemeris store.
|
|
881
|
+
*
|
|
882
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
883
|
+
* seconds since J2000 in GPST for GNSS broadcast records. The returned
|
|
884
|
+
* plain object has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
885
|
+
* `elementResults` arrays.
|
|
886
|
+
* @param {any} satellites
|
|
887
|
+
* @param {any} epochs_j2000_s
|
|
888
|
+
* @returns {any}
|
|
889
|
+
*/
|
|
890
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
891
|
+
const ret = wasm.broadcastephemeris_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
892
|
+
if (ret[2]) {
|
|
893
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
894
|
+
}
|
|
895
|
+
return takeFromExternrefTable0(ret[0]);
|
|
896
|
+
}
|
|
897
|
+
/**
|
|
898
|
+
* Query ECEF position and clock for many satellites at one epoch against
|
|
899
|
+
* this parsed broadcast ephemeris store.
|
|
900
|
+
*
|
|
901
|
+
* `epochJ2000S` is seconds since J2000 in GPST. The returned object follows
|
|
902
|
+
* the same contract as
|
|
903
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
904
|
+
* @param {any} satellites
|
|
905
|
+
* @param {number} epoch_j2000_s
|
|
906
|
+
* @returns {any}
|
|
907
|
+
*/
|
|
908
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
909
|
+
const ret = wasm.broadcastephemeris_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
910
|
+
if (ret[2]) {
|
|
911
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
912
|
+
}
|
|
913
|
+
return takeFromExternrefTable0(ret[0]);
|
|
914
|
+
}
|
|
878
915
|
/**
|
|
879
916
|
* Number of usable GPS, Galileo, and BeiDou records.
|
|
880
917
|
* @returns {number}
|
|
@@ -3791,6 +3828,12 @@ export class DragForce {
|
|
|
3791
3828
|
}
|
|
3792
3829
|
if (Symbol.dispose) DragForce.prototype[Symbol.dispose] = DragForce.prototype.free;
|
|
3793
3830
|
|
|
3831
|
+
/**
|
|
3832
|
+
* A DTED terrain tile cache rooted at a directory of DTED Level 2 files.
|
|
3833
|
+
*
|
|
3834
|
+
* Heights are ORTHOMETRIC terrain elevations in meters. Point order is always
|
|
3835
|
+
* longitude first, then latitude, both in degrees.
|
|
3836
|
+
*/
|
|
3794
3837
|
export class DtedTerrain {
|
|
3795
3838
|
__destroy_into_raw() {
|
|
3796
3839
|
const ptr = this.__wbg_ptr;
|
|
@@ -3803,6 +3846,30 @@ export class DtedTerrain {
|
|
|
3803
3846
|
wasm.__wbg_dtedterrain_free(ptr, 0);
|
|
3804
3847
|
}
|
|
3805
3848
|
/**
|
|
3849
|
+
* Batch terrain heights in ORTHOMETRIC meters for longitude-first points.
|
|
3850
|
+
*
|
|
3851
|
+
* `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
|
|
3852
|
+
* `{ longitudeDeg, latitudeDeg }` objects. `options.interpolation` is
|
|
3853
|
+
* `"bilinear"`, `"nearest"`, or `"nearestPosting"`. The return value is
|
|
3854
|
+
* index-aligned to `points`; each entry is `{ ok: true, heightM }` or
|
|
3855
|
+
* `{ ok: false, error }`. Missing tiles evaluate to `0.0`.
|
|
3856
|
+
* @param {any} points
|
|
3857
|
+
* @param {any} options
|
|
3858
|
+
* @returns {any}
|
|
3859
|
+
*/
|
|
3860
|
+
heightBatch(points, options) {
|
|
3861
|
+
const ret = wasm.dtedterrain_heightBatch(this.__wbg_ptr, points, options);
|
|
3862
|
+
if (ret[2]) {
|
|
3863
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
3864
|
+
}
|
|
3865
|
+
return takeFromExternrefTable0(ret[0]);
|
|
3866
|
+
}
|
|
3867
|
+
/**
|
|
3868
|
+
* Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
|
|
3869
|
+
*
|
|
3870
|
+
* Longitude and latitude are degrees. The lookup uses bilinear
|
|
3871
|
+
* interpolation. Missing tiles evaluate to `0.0`, matching the core DTED
|
|
3872
|
+
* fallback.
|
|
3806
3873
|
* @param {number} longitude_deg
|
|
3807
3874
|
* @param {number} latitude_deg
|
|
3808
3875
|
* @returns {number}
|
|
@@ -3815,6 +3882,11 @@ export class DtedTerrain {
|
|
|
3815
3882
|
return ret[0];
|
|
3816
3883
|
}
|
|
3817
3884
|
/**
|
|
3885
|
+
* Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
|
|
3886
|
+
*
|
|
3887
|
+
* Longitude and latitude are degrees. `options.interpolation` is
|
|
3888
|
+
* `"bilinear"`, `"nearest"`, or `"nearestPosting"`. Missing tiles evaluate
|
|
3889
|
+
* to `0.0`, matching the core DTED fallback.
|
|
3818
3890
|
* @param {number} longitude_deg
|
|
3819
3891
|
* @param {number} latitude_deg
|
|
3820
3892
|
* @param {any} options
|
|
@@ -3828,6 +3900,10 @@ export class DtedTerrain {
|
|
|
3828
3900
|
return ret[0];
|
|
3829
3901
|
}
|
|
3830
3902
|
/**
|
|
3903
|
+
* Create a DTED terrain reader rooted at `root`.
|
|
3904
|
+
*
|
|
3905
|
+
* The root may contain tile files directly or the nested block layout the
|
|
3906
|
+
* core reader recognizes. Height results are ORTHOMETRIC meters.
|
|
3831
3907
|
* @param {string} root
|
|
3832
3908
|
*/
|
|
3833
3909
|
constructor(root) {
|
|
@@ -3841,6 +3917,99 @@ export class DtedTerrain {
|
|
|
3841
3917
|
}
|
|
3842
3918
|
if (Symbol.dispose) DtedTerrain.prototype[Symbol.dispose] = DtedTerrain.prototype.free;
|
|
3843
3919
|
|
|
3920
|
+
/**
|
|
3921
|
+
* Loaded EGM96 15-arcminute geoid grid for explicit terrain datum conversion.
|
|
3922
|
+
*/
|
|
3923
|
+
export class Egm96FifteenMinuteGeoid {
|
|
3924
|
+
static __wrap(ptr) {
|
|
3925
|
+
const obj = Object.create(Egm96FifteenMinuteGeoid.prototype);
|
|
3926
|
+
obj.__wbg_ptr = ptr;
|
|
3927
|
+
Egm96FifteenMinuteGeoidFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
3928
|
+
return obj;
|
|
3929
|
+
}
|
|
3930
|
+
__destroy_into_raw() {
|
|
3931
|
+
const ptr = this.__wbg_ptr;
|
|
3932
|
+
this.__wbg_ptr = 0;
|
|
3933
|
+
Egm96FifteenMinuteGeoidFinalization.unregister(this);
|
|
3934
|
+
return ptr;
|
|
3935
|
+
}
|
|
3936
|
+
free() {
|
|
3937
|
+
const ptr = this.__destroy_into_raw();
|
|
3938
|
+
wasm.__wbg_egm96fifteenminutegeoid_free(ptr, 0);
|
|
3939
|
+
}
|
|
3940
|
+
/**
|
|
3941
|
+
* Load `WW15MGH.DAC` bytes as an EGM96 15-arcminute geoid grid.
|
|
3942
|
+
* @param {Uint8Array} bytes
|
|
3943
|
+
* @returns {Egm96FifteenMinuteGeoid}
|
|
3944
|
+
*/
|
|
3945
|
+
static fromWw15mghDacBytes(bytes) {
|
|
3946
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
3947
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3948
|
+
const ret = wasm.egm96fifteenminutegeoid_fromWw15mghDacBytes(ptr0, len0);
|
|
3949
|
+
if (ret[2]) {
|
|
3950
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
3951
|
+
}
|
|
3952
|
+
return Egm96FifteenMinuteGeoid.__wrap(ret[0]);
|
|
3953
|
+
}
|
|
3954
|
+
/**
|
|
3955
|
+
* Read and load `WW15MGH.DAC` from disk. A missing file throws a typed
|
|
3956
|
+
* `MissingEgm96Dac` error with `path` and `remediation` fields.
|
|
3957
|
+
* @param {string} path
|
|
3958
|
+
* @returns {Egm96FifteenMinuteGeoid}
|
|
3959
|
+
*/
|
|
3960
|
+
static fromWw15mghDacPath(path) {
|
|
3961
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3962
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3963
|
+
const ret = wasm.egm96fifteenminutegeoid_fromWw15mghDacPath(ptr0, len0);
|
|
3964
|
+
if (ret[2]) {
|
|
3965
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
3966
|
+
}
|
|
3967
|
+
return Egm96FifteenMinuteGeoid.__wrap(ret[0]);
|
|
3968
|
+
}
|
|
3969
|
+
}
|
|
3970
|
+
if (Symbol.dispose) Egm96FifteenMinuteGeoid.prototype[Symbol.dispose] = Egm96FifteenMinuteGeoid.prototype.free;
|
|
3971
|
+
|
|
3972
|
+
/**
|
|
3973
|
+
* Ellipsoidal height `h` in metres above the WGS84 reference ellipsoid.
|
|
3974
|
+
*/
|
|
3975
|
+
export class EllipsoidalHeightM {
|
|
3976
|
+
static __wrap(ptr) {
|
|
3977
|
+
const obj = Object.create(EllipsoidalHeightM.prototype);
|
|
3978
|
+
obj.__wbg_ptr = ptr;
|
|
3979
|
+
EllipsoidalHeightMFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
3980
|
+
return obj;
|
|
3981
|
+
}
|
|
3982
|
+
__destroy_into_raw() {
|
|
3983
|
+
const ptr = this.__wbg_ptr;
|
|
3984
|
+
this.__wbg_ptr = 0;
|
|
3985
|
+
EllipsoidalHeightMFinalization.unregister(this);
|
|
3986
|
+
return ptr;
|
|
3987
|
+
}
|
|
3988
|
+
free() {
|
|
3989
|
+
const ptr = this.__destroy_into_raw();
|
|
3990
|
+
wasm.__wbg_ellipsoidalheightm_free(ptr, 0);
|
|
3991
|
+
}
|
|
3992
|
+
/**
|
|
3993
|
+
* Build an ellipsoidal height `h` in metres.
|
|
3994
|
+
* @param {number} value_m
|
|
3995
|
+
*/
|
|
3996
|
+
constructor(value_m) {
|
|
3997
|
+
const ret = wasm.ellipsoidalheightm_new(value_m);
|
|
3998
|
+
this.__wbg_ptr = ret;
|
|
3999
|
+
EllipsoidalHeightMFinalization.register(this, this.__wbg_ptr, this);
|
|
4000
|
+
return this;
|
|
4001
|
+
}
|
|
4002
|
+
/**
|
|
4003
|
+
* Ellipsoidal height `h`, metres above the WGS84 reference ellipsoid.
|
|
4004
|
+
* @returns {number}
|
|
4005
|
+
*/
|
|
4006
|
+
get valueM() {
|
|
4007
|
+
const ret = wasm.ellipsoidalheightm_valueM(this.__wbg_ptr);
|
|
4008
|
+
return ret;
|
|
4009
|
+
}
|
|
4010
|
+
}
|
|
4011
|
+
if (Symbol.dispose) EllipsoidalHeightM.prototype[Symbol.dispose] = EllipsoidalHeightM.prototype.free;
|
|
4012
|
+
|
|
3844
4013
|
/**
|
|
3845
4014
|
* Orthonormal encounter frame built from two relative states.
|
|
3846
4015
|
*/
|
|
@@ -5456,6 +5625,24 @@ export class Ionex {
|
|
|
5456
5625
|
const ret = wasm.ionex_baseRadiusKm(this.__wbg_ptr);
|
|
5457
5626
|
return ret;
|
|
5458
5627
|
}
|
|
5628
|
+
/**
|
|
5629
|
+
* Signed latitude grid step, degrees. Standard IONEX grids are
|
|
5630
|
+
* north-to-south, so this value is usually negative.
|
|
5631
|
+
* @returns {number}
|
|
5632
|
+
*/
|
|
5633
|
+
get dlatDeg() {
|
|
5634
|
+
const ret = wasm.ionex_dlatDeg(this.__wbg_ptr);
|
|
5635
|
+
return ret;
|
|
5636
|
+
}
|
|
5637
|
+
/**
|
|
5638
|
+
* Signed longitude grid step, degrees. Standard IONEX grids are
|
|
5639
|
+
* west-to-east, so this value is usually positive.
|
|
5640
|
+
* @returns {number}
|
|
5641
|
+
*/
|
|
5642
|
+
get dlonDeg() {
|
|
5643
|
+
const ret = wasm.ionex_dlonDeg(this.__wbg_ptr);
|
|
5644
|
+
return ret;
|
|
5645
|
+
}
|
|
5459
5646
|
/**
|
|
5460
5647
|
* The IONEX `EXPONENT` header field; the TEC scale is `10^exponent`.
|
|
5461
5648
|
* @returns {number}
|
|
@@ -5529,6 +5716,36 @@ export class Ionex {
|
|
|
5529
5716
|
}
|
|
5530
5717
|
return ret[0];
|
|
5531
5718
|
}
|
|
5719
|
+
/**
|
|
5720
|
+
* Extract the full IONEX vertical-TEC grids as plain sample data.
|
|
5721
|
+
*
|
|
5722
|
+
* Epochs are integer seconds since J2000. Latitude and longitude nodes and
|
|
5723
|
+
* grid steps are degrees. TEC and RMS maps are TECU and indexed
|
|
5724
|
+
* `[map][iLat][iLon]`. The shell height and base radius are kilometers.
|
|
5725
|
+
* @returns {any}
|
|
5726
|
+
*/
|
|
5727
|
+
tecGridSamples() {
|
|
5728
|
+
const ret = wasm.ionex_tecGridSamples(this.__wbg_ptr);
|
|
5729
|
+
if (ret[2]) {
|
|
5730
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
5731
|
+
}
|
|
5732
|
+
return takeFromExternrefTable0(ret[0]);
|
|
5733
|
+
}
|
|
5734
|
+
/**
|
|
5735
|
+
* Extract one IONEX vertical-TEC sample per grid node.
|
|
5736
|
+
*
|
|
5737
|
+
* Each sample is `{ epochJ2000S, latDeg, lonDeg, vtecTecu, rmsTecu }`.
|
|
5738
|
+
* Epochs are integer seconds since J2000, coordinates are degrees, and TEC
|
|
5739
|
+
* and RMS values are TECU.
|
|
5740
|
+
* @returns {any}
|
|
5741
|
+
*/
|
|
5742
|
+
tecSamples() {
|
|
5743
|
+
const ret = wasm.ionex_tecSamples(this.__wbg_ptr);
|
|
5744
|
+
if (ret[2]) {
|
|
5745
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
5746
|
+
}
|
|
5747
|
+
return takeFromExternrefTable0(ret[0]);
|
|
5748
|
+
}
|
|
5532
5749
|
/**
|
|
5533
5750
|
* Serialize to standard IONEX text. Deterministic: the same product always
|
|
5534
5751
|
* produces byte-identical text, and re-parsing the output yields an equal
|
|
@@ -6831,119 +7048,368 @@ export class MappingFactors {
|
|
|
6831
7048
|
if (Symbol.dispose) MappingFactors.prototype[Symbol.dispose] = MappingFactors.prototype.free;
|
|
6832
7049
|
|
|
6833
7050
|
/**
|
|
6834
|
-
*
|
|
7051
|
+
* In-memory reader for memory-mappable terrain store bytes.
|
|
7052
|
+
*
|
|
7053
|
+
* Query results are orthometric terrain heights `H` in metres. Use the
|
|
7054
|
+
* ellipsoidal methods only when a geoid model is deliberately selected.
|
|
6835
7055
|
*/
|
|
6836
|
-
export class
|
|
7056
|
+
export class MmapTerrain {
|
|
6837
7057
|
static __wrap(ptr) {
|
|
6838
|
-
const obj = Object.create(
|
|
7058
|
+
const obj = Object.create(MmapTerrain.prototype);
|
|
6839
7059
|
obj.__wbg_ptr = ptr;
|
|
6840
|
-
|
|
7060
|
+
MmapTerrainFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
6841
7061
|
return obj;
|
|
6842
7062
|
}
|
|
6843
7063
|
__destroy_into_raw() {
|
|
6844
7064
|
const ptr = this.__wbg_ptr;
|
|
6845
7065
|
this.__wbg_ptr = 0;
|
|
6846
|
-
|
|
7066
|
+
MmapTerrainFinalization.unregister(this);
|
|
6847
7067
|
return ptr;
|
|
6848
7068
|
}
|
|
6849
7069
|
free() {
|
|
6850
7070
|
const ptr = this.__destroy_into_raw();
|
|
6851
|
-
wasm.
|
|
7071
|
+
wasm.__wbg_mmapterrain_free(ptr, 0);
|
|
6852
7072
|
}
|
|
6853
7073
|
/**
|
|
6854
|
-
*
|
|
6855
|
-
* @returns {
|
|
7074
|
+
* FNV-1a checksum of the full terrain store byte span.
|
|
7075
|
+
* @returns {bigint}
|
|
6856
7076
|
*/
|
|
6857
|
-
|
|
6858
|
-
const ret = wasm.
|
|
6859
|
-
return ret;
|
|
7077
|
+
checksum64() {
|
|
7078
|
+
const ret = wasm.mmapterrain_checksum64(this.__wbg_ptr);
|
|
7079
|
+
return BigInt.asUintN(64, ret);
|
|
6860
7080
|
}
|
|
6861
7081
|
/**
|
|
6862
|
-
*
|
|
6863
|
-
*
|
|
7082
|
+
* Ellipsoidal height `h = H + N` in metres at `(longitudeDeg, latitudeDeg)`
|
|
7083
|
+
* using the embedded EGM96 1-degree geoid grid.
|
|
7084
|
+
* @param {number} longitude_deg
|
|
7085
|
+
* @param {number} latitude_deg
|
|
7086
|
+
* @returns {EllipsoidalHeightM}
|
|
6864
7087
|
*/
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
|
|
6869
|
-
const ret = wasm.moonelevationcrossing_kind(this.__wbg_ptr);
|
|
6870
|
-
deferred1_0 = ret[0];
|
|
6871
|
-
deferred1_1 = ret[1];
|
|
6872
|
-
return getStringFromWasm0(ret[0], ret[1]);
|
|
6873
|
-
} finally {
|
|
6874
|
-
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7088
|
+
ellipsoidalHeightM(longitude_deg, latitude_deg) {
|
|
7089
|
+
const ret = wasm.mmapterrain_ellipsoidalHeightM(this.__wbg_ptr, longitude_deg, latitude_deg);
|
|
7090
|
+
if (ret[2]) {
|
|
7091
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
6875
7092
|
}
|
|
7093
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
6876
7094
|
}
|
|
6877
7095
|
/**
|
|
6878
|
-
*
|
|
6879
|
-
*
|
|
7096
|
+
* Ellipsoidal height `h = H + N` in metres using an explicit geoid model.
|
|
7097
|
+
*
|
|
7098
|
+
* The terrain lookup input order is `(longitudeDeg, latitudeDeg)`. Choosing
|
|
7099
|
+
* the EGM96 15-arcminute model requires a loaded `WW15MGH.DAC` grid and
|
|
7100
|
+
* does not fall back to the embedded 1-degree grid.
|
|
7101
|
+
* @param {number} longitude_deg
|
|
7102
|
+
* @param {number} latitude_deg
|
|
7103
|
+
* @param {any} options
|
|
7104
|
+
* @param {TerrainGeoidModel} geoid
|
|
7105
|
+
* @returns {EllipsoidalHeightM}
|
|
6880
7106
|
*/
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
7107
|
+
ellipsoidalHeightMWithModel(longitude_deg, latitude_deg, options, geoid) {
|
|
7108
|
+
_assertClass(geoid, TerrainGeoidModel);
|
|
7109
|
+
const ret = wasm.mmapterrain_ellipsoidalHeightMWithModel(this.__wbg_ptr, longitude_deg, latitude_deg, options, geoid.__wbg_ptr);
|
|
7110
|
+
if (ret[2]) {
|
|
7111
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7112
|
+
}
|
|
7113
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
6884
7114
|
}
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
7115
|
+
/**
|
|
7116
|
+
* Ellipsoidal height `h = H + N` in metres using embedded EGM96 1-degree
|
|
7117
|
+
* geoid conversion and explicit terrain lookup options.
|
|
7118
|
+
* @param {number} longitude_deg
|
|
7119
|
+
* @param {number} latitude_deg
|
|
7120
|
+
* @param {any} options
|
|
7121
|
+
* @returns {EllipsoidalHeightM}
|
|
7122
|
+
*/
|
|
7123
|
+
ellipsoidalHeightMWithOptions(longitude_deg, latitude_deg, options) {
|
|
7124
|
+
const ret = wasm.mmapterrain_ellipsoidalHeightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
|
|
7125
|
+
if (ret[2]) {
|
|
7126
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7127
|
+
}
|
|
7128
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
6897
7129
|
}
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
7130
|
+
/**
|
|
7131
|
+
* Parse terrain store bytes from a `Uint8Array`.
|
|
7132
|
+
* @param {Uint8Array} bytes
|
|
7133
|
+
* @returns {MmapTerrain}
|
|
7134
|
+
*/
|
|
7135
|
+
static fromBytes(bytes) {
|
|
7136
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
7137
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7138
|
+
const ret = wasm.mmapterrain_fromBytes(ptr0, len0);
|
|
7139
|
+
if (ret[2]) {
|
|
7140
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7141
|
+
}
|
|
7142
|
+
return MmapTerrain.__wrap(ret[0]);
|
|
6903
7143
|
}
|
|
6904
|
-
|
|
6905
|
-
|
|
6906
|
-
|
|
7144
|
+
/**
|
|
7145
|
+
* Read a terrain store file from host I/O and parse it into memory.
|
|
7146
|
+
*
|
|
7147
|
+
* Browser runtimes should use [`MmapTerrain.fromBytes`] with fetched bytes.
|
|
7148
|
+
* @param {string} path
|
|
7149
|
+
* @returns {MmapTerrain}
|
|
7150
|
+
*/
|
|
7151
|
+
static fromPath(path) {
|
|
7152
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7153
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7154
|
+
const ret = wasm.mmapterrain_fromPath(ptr0, len0);
|
|
7155
|
+
if (ret[2]) {
|
|
7156
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7157
|
+
}
|
|
7158
|
+
return MmapTerrain.__wrap(ret[0]);
|
|
6907
7159
|
}
|
|
6908
7160
|
/**
|
|
6909
|
-
*
|
|
6910
|
-
* @
|
|
7161
|
+
* Parse terrain store bytes from an owned `Uint8Array` copy.
|
|
7162
|
+
* @param {Uint8Array} bytes
|
|
7163
|
+
* @returns {MmapTerrain}
|
|
6911
7164
|
*/
|
|
6912
|
-
|
|
6913
|
-
const
|
|
6914
|
-
|
|
7165
|
+
static fromVec(bytes) {
|
|
7166
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
7167
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7168
|
+
const ret = wasm.mmapterrain_fromVec(ptr0, len0);
|
|
7169
|
+
if (ret[2]) {
|
|
7170
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7171
|
+
}
|
|
7172
|
+
return MmapTerrain.__wrap(ret[0]);
|
|
6915
7173
|
}
|
|
6916
7174
|
/**
|
|
6917
|
-
*
|
|
6918
|
-
*
|
|
6919
|
-
*
|
|
7175
|
+
* Batch ORTHOMETRIC terrain heights for longitude-first points.
|
|
7176
|
+
*
|
|
7177
|
+
* `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
|
|
7178
|
+
* `{ longitudeDeg, latitudeDeg }` objects. Each entry is
|
|
7179
|
+
* `{ ok: true, heightM }` or `{ ok: false, error }`.
|
|
7180
|
+
* @param {any} points
|
|
7181
|
+
* @param {any} options
|
|
7182
|
+
* @returns {any}
|
|
6920
7183
|
*/
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
const ret = wasm.moontransit_kind(this.__wbg_ptr);
|
|
6926
|
-
deferred1_0 = ret[0];
|
|
6927
|
-
deferred1_1 = ret[1];
|
|
6928
|
-
return getStringFromWasm0(ret[0], ret[1]);
|
|
6929
|
-
} finally {
|
|
6930
|
-
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7184
|
+
heightBatch(points, options) {
|
|
7185
|
+
const ret = wasm.mmapterrain_heightBatch(this.__wbg_ptr, points, options);
|
|
7186
|
+
if (ret[2]) {
|
|
7187
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
6931
7188
|
}
|
|
7189
|
+
return takeFromExternrefTable0(ret[0]);
|
|
6932
7190
|
}
|
|
6933
7191
|
/**
|
|
6934
|
-
*
|
|
6935
|
-
*
|
|
7192
|
+
* Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
|
|
7193
|
+
*
|
|
7194
|
+
* Longitude and latitude are degrees. The lookup uses bilinear
|
|
7195
|
+
* interpolation. Missing tiles evaluate to `0.0`.
|
|
7196
|
+
* @param {number} longitude_deg
|
|
7197
|
+
* @param {number} latitude_deg
|
|
7198
|
+
* @returns {number}
|
|
6936
7199
|
*/
|
|
6937
|
-
|
|
6938
|
-
const ret = wasm.
|
|
6939
|
-
|
|
7200
|
+
heightM(longitude_deg, latitude_deg) {
|
|
7201
|
+
const ret = wasm.mmapterrain_heightM(this.__wbg_ptr, longitude_deg, latitude_deg);
|
|
7202
|
+
if (ret[2]) {
|
|
7203
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7204
|
+
}
|
|
7205
|
+
return ret[0];
|
|
6940
7206
|
}
|
|
6941
|
-
|
|
6942
|
-
|
|
6943
|
-
|
|
6944
|
-
|
|
6945
|
-
|
|
6946
|
-
|
|
7207
|
+
/**
|
|
7208
|
+
* Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
|
|
7209
|
+
*
|
|
7210
|
+
* `options.interpolation` is `"bilinear"`, `"nearest"`, or
|
|
7211
|
+
* `"nearestPosting"`.
|
|
7212
|
+
* @param {number} longitude_deg
|
|
7213
|
+
* @param {number} latitude_deg
|
|
7214
|
+
* @param {any} options
|
|
7215
|
+
* @returns {number}
|
|
7216
|
+
*/
|
|
7217
|
+
heightMWithOptions(longitude_deg, latitude_deg, options) {
|
|
7218
|
+
const ret = wasm.mmapterrain_heightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
|
|
7219
|
+
if (ret[2]) {
|
|
7220
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7221
|
+
}
|
|
7222
|
+
return ret[0];
|
|
7223
|
+
}
|
|
7224
|
+
/**
|
|
7225
|
+
* Batch typed ORTHOMETRIC terrain heights for longitude-first points.
|
|
7226
|
+
*
|
|
7227
|
+
* Each entry is `{ ok: true, orthometricHeightM: { valueM } }` or
|
|
7228
|
+
* `{ ok: false, error }`.
|
|
7229
|
+
* @param {any} points
|
|
7230
|
+
* @param {any} options
|
|
7231
|
+
* @returns {any}
|
|
7232
|
+
*/
|
|
7233
|
+
orthometricHeightBatch(points, options) {
|
|
7234
|
+
const ret = wasm.mmapterrain_orthometricHeightBatch(this.__wbg_ptr, points, options);
|
|
7235
|
+
if (ret[2]) {
|
|
7236
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7237
|
+
}
|
|
7238
|
+
return takeFromExternrefTable0(ret[0]);
|
|
7239
|
+
}
|
|
7240
|
+
/**
|
|
7241
|
+
* Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`.
|
|
7242
|
+
* @param {number} longitude_deg
|
|
7243
|
+
* @param {number} latitude_deg
|
|
7244
|
+
* @returns {OrthometricHeightM}
|
|
7245
|
+
*/
|
|
7246
|
+
orthometricHeightM(longitude_deg, latitude_deg) {
|
|
7247
|
+
const ret = wasm.mmapterrain_orthometricHeightM(this.__wbg_ptr, longitude_deg, latitude_deg);
|
|
7248
|
+
if (ret[2]) {
|
|
7249
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7250
|
+
}
|
|
7251
|
+
return OrthometricHeightM.__wrap(ret[0]);
|
|
7252
|
+
}
|
|
7253
|
+
/**
|
|
7254
|
+
* Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`
|
|
7255
|
+
* with explicit lookup options.
|
|
7256
|
+
* @param {number} longitude_deg
|
|
7257
|
+
* @param {number} latitude_deg
|
|
7258
|
+
* @param {any} options
|
|
7259
|
+
* @returns {OrthometricHeightM}
|
|
7260
|
+
*/
|
|
7261
|
+
orthometricHeightMWithOptions(longitude_deg, latitude_deg, options) {
|
|
7262
|
+
const ret = wasm.mmapterrain_orthometricHeightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
|
|
7263
|
+
if (ret[2]) {
|
|
7264
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
7265
|
+
}
|
|
7266
|
+
return OrthometricHeightM.__wrap(ret[0]);
|
|
7267
|
+
}
|
|
7268
|
+
/**
|
|
7269
|
+
* Parsed tile index records in store order.
|
|
7270
|
+
* @returns {TerrainStoreTileIndex[]}
|
|
7271
|
+
*/
|
|
7272
|
+
tileIndex() {
|
|
7273
|
+
const ret = wasm.mmapterrain_tileIndex(this.__wbg_ptr);
|
|
7274
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
7275
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
7276
|
+
return v1;
|
|
7277
|
+
}
|
|
7278
|
+
/**
|
|
7279
|
+
* Canonical store bytes for this parsed terrain store.
|
|
7280
|
+
* @returns {Uint8Array}
|
|
7281
|
+
*/
|
|
7282
|
+
toBytes() {
|
|
7283
|
+
const ret = wasm.mmapterrain_toBytes(this.__wbg_ptr);
|
|
7284
|
+
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
7285
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
7286
|
+
return v1;
|
|
7287
|
+
}
|
|
7288
|
+
/**
|
|
7289
|
+
* File-level vertical datum for the store's orthometric posting payloads.
|
|
7290
|
+
* @returns {VerticalDatum}
|
|
7291
|
+
*/
|
|
7292
|
+
get verticalDatum() {
|
|
7293
|
+
const ret = wasm.mmapterrain_verticalDatum(this.__wbg_ptr);
|
|
7294
|
+
return ret;
|
|
7295
|
+
}
|
|
7296
|
+
}
|
|
7297
|
+
if (Symbol.dispose) MmapTerrain.prototype[Symbol.dispose] = MmapTerrain.prototype.free;
|
|
7298
|
+
|
|
7299
|
+
/**
|
|
7300
|
+
* One refined Moon elevation threshold crossing (moonrise / moonset).
|
|
7301
|
+
*/
|
|
7302
|
+
export class MoonElevationCrossing {
|
|
7303
|
+
static __wrap(ptr) {
|
|
7304
|
+
const obj = Object.create(MoonElevationCrossing.prototype);
|
|
7305
|
+
obj.__wbg_ptr = ptr;
|
|
7306
|
+
MoonElevationCrossingFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
7307
|
+
return obj;
|
|
7308
|
+
}
|
|
7309
|
+
__destroy_into_raw() {
|
|
7310
|
+
const ptr = this.__wbg_ptr;
|
|
7311
|
+
this.__wbg_ptr = 0;
|
|
7312
|
+
MoonElevationCrossingFinalization.unregister(this);
|
|
7313
|
+
return ptr;
|
|
7314
|
+
}
|
|
7315
|
+
free() {
|
|
7316
|
+
const ptr = this.__destroy_into_raw();
|
|
7317
|
+
wasm.__wbg_moonelevationcrossing_free(ptr, 0);
|
|
7318
|
+
}
|
|
7319
|
+
/**
|
|
7320
|
+
* Topocentric Moon elevation at the refined instant, degrees.
|
|
7321
|
+
* @returns {number}
|
|
7322
|
+
*/
|
|
7323
|
+
get elevationDeg() {
|
|
7324
|
+
const ret = wasm.moonelevationcrossing_elevationDeg(this.__wbg_ptr);
|
|
7325
|
+
return ret;
|
|
7326
|
+
}
|
|
7327
|
+
/**
|
|
7328
|
+
* Crossing direction: `"rising"` (moonrise) or `"setting"` (moonset).
|
|
7329
|
+
* @returns {string}
|
|
7330
|
+
*/
|
|
7331
|
+
get kind() {
|
|
7332
|
+
let deferred1_0;
|
|
7333
|
+
let deferred1_1;
|
|
7334
|
+
try {
|
|
7335
|
+
const ret = wasm.moonelevationcrossing_kind(this.__wbg_ptr);
|
|
7336
|
+
deferred1_0 = ret[0];
|
|
7337
|
+
deferred1_1 = ret[1];
|
|
7338
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
7339
|
+
} finally {
|
|
7340
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7341
|
+
}
|
|
7342
|
+
}
|
|
7343
|
+
/**
|
|
7344
|
+
* Refined crossing instant, unix microseconds.
|
|
7345
|
+
* @returns {bigint}
|
|
7346
|
+
*/
|
|
7347
|
+
get timeUnixUs() {
|
|
7348
|
+
const ret = wasm.moonelevationcrossing_timeUnixUs(this.__wbg_ptr);
|
|
7349
|
+
return ret;
|
|
7350
|
+
}
|
|
7351
|
+
}
|
|
7352
|
+
if (Symbol.dispose) MoonElevationCrossing.prototype[Symbol.dispose] = MoonElevationCrossing.prototype.free;
|
|
7353
|
+
|
|
7354
|
+
/**
|
|
7355
|
+
* One refined Moon meridian transit (culmination).
|
|
7356
|
+
*/
|
|
7357
|
+
export class MoonTransit {
|
|
7358
|
+
static __wrap(ptr) {
|
|
7359
|
+
const obj = Object.create(MoonTransit.prototype);
|
|
7360
|
+
obj.__wbg_ptr = ptr;
|
|
7361
|
+
MoonTransitFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
7362
|
+
return obj;
|
|
7363
|
+
}
|
|
7364
|
+
__destroy_into_raw() {
|
|
7365
|
+
const ptr = this.__wbg_ptr;
|
|
7366
|
+
this.__wbg_ptr = 0;
|
|
7367
|
+
MoonTransitFinalization.unregister(this);
|
|
7368
|
+
return ptr;
|
|
7369
|
+
}
|
|
7370
|
+
free() {
|
|
7371
|
+
const ptr = this.__destroy_into_raw();
|
|
7372
|
+
wasm.__wbg_moontransit_free(ptr, 0);
|
|
7373
|
+
}
|
|
7374
|
+
/**
|
|
7375
|
+
* Topocentric Moon elevation at the refined instant, degrees.
|
|
7376
|
+
* @returns {number}
|
|
7377
|
+
*/
|
|
7378
|
+
get elevationDeg() {
|
|
7379
|
+
const ret = wasm.moontransit_elevationDeg(this.__wbg_ptr);
|
|
7380
|
+
return ret;
|
|
7381
|
+
}
|
|
7382
|
+
/**
|
|
7383
|
+
* Culmination kind: `"upper"` (due south, highest) or `"lower"` (due north,
|
|
7384
|
+
* lowest).
|
|
7385
|
+
* @returns {string}
|
|
7386
|
+
*/
|
|
7387
|
+
get kind() {
|
|
7388
|
+
let deferred1_0;
|
|
7389
|
+
let deferred1_1;
|
|
7390
|
+
try {
|
|
7391
|
+
const ret = wasm.moontransit_kind(this.__wbg_ptr);
|
|
7392
|
+
deferred1_0 = ret[0];
|
|
7393
|
+
deferred1_1 = ret[1];
|
|
7394
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
7395
|
+
} finally {
|
|
7396
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
7397
|
+
}
|
|
7398
|
+
}
|
|
7399
|
+
/**
|
|
7400
|
+
* Refined culmination instant, unix microseconds.
|
|
7401
|
+
* @returns {bigint}
|
|
7402
|
+
*/
|
|
7403
|
+
get timeUnixUs() {
|
|
7404
|
+
const ret = wasm.moontransit_timeUnixUs(this.__wbg_ptr);
|
|
7405
|
+
return ret;
|
|
7406
|
+
}
|
|
7407
|
+
}
|
|
7408
|
+
if (Symbol.dispose) MoonTransit.prototype[Symbol.dispose] = MoonTransit.prototype.free;
|
|
7409
|
+
|
|
7410
|
+
/**
|
|
7411
|
+
* One solved moving-baseline epoch.
|
|
7412
|
+
*/
|
|
6947
7413
|
export class MovingBaselineSolution {
|
|
6948
7414
|
static __wrap(ptr) {
|
|
6949
7415
|
const obj = Object.create(MovingBaselineSolution.prototype);
|
|
@@ -9938,6 +10404,80 @@ export class OpmState {
|
|
|
9938
10404
|
}
|
|
9939
10405
|
if (Symbol.dispose) OpmState.prototype[Symbol.dispose] = OpmState.prototype.free;
|
|
9940
10406
|
|
|
10407
|
+
/**
|
|
10408
|
+
* Orthometric terrain height `H` in metres above the EGM96 mean sea level
|
|
10409
|
+
* geoid.
|
|
10410
|
+
*/
|
|
10411
|
+
export class OrthometricHeightM {
|
|
10412
|
+
static __wrap(ptr) {
|
|
10413
|
+
const obj = Object.create(OrthometricHeightM.prototype);
|
|
10414
|
+
obj.__wbg_ptr = ptr;
|
|
10415
|
+
OrthometricHeightMFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
10416
|
+
return obj;
|
|
10417
|
+
}
|
|
10418
|
+
__destroy_into_raw() {
|
|
10419
|
+
const ptr = this.__wbg_ptr;
|
|
10420
|
+
this.__wbg_ptr = 0;
|
|
10421
|
+
OrthometricHeightMFinalization.unregister(this);
|
|
10422
|
+
return ptr;
|
|
10423
|
+
}
|
|
10424
|
+
free() {
|
|
10425
|
+
const ptr = this.__destroy_into_raw();
|
|
10426
|
+
wasm.__wbg_orthometricheightm_free(ptr, 0);
|
|
10427
|
+
}
|
|
10428
|
+
/**
|
|
10429
|
+
* Build an orthometric height `H` in metres.
|
|
10430
|
+
* @param {number} value_m
|
|
10431
|
+
*/
|
|
10432
|
+
constructor(value_m) {
|
|
10433
|
+
const ret = wasm.orthometricheightm_new(value_m);
|
|
10434
|
+
this.__wbg_ptr = ret;
|
|
10435
|
+
OrthometricHeightMFinalization.register(this, this.__wbg_ptr, this);
|
|
10436
|
+
return this;
|
|
10437
|
+
}
|
|
10438
|
+
/**
|
|
10439
|
+
* Convert to ellipsoidal height `h = H + N` using degree inputs in geoid
|
|
10440
|
+
* order `(latitudeDeg, longitudeDeg)` and an explicit geoid model.
|
|
10441
|
+
* @param {number} latitude_deg
|
|
10442
|
+
* @param {number} longitude_deg
|
|
10443
|
+
* @param {TerrainGeoidModel} geoid
|
|
10444
|
+
* @returns {EllipsoidalHeightM}
|
|
10445
|
+
*/
|
|
10446
|
+
toEllipsoidalHeightDeg(latitude_deg, longitude_deg, geoid) {
|
|
10447
|
+
_assertClass(geoid, TerrainGeoidModel);
|
|
10448
|
+
const ret = wasm.orthometricheightm_toEllipsoidalHeightDeg(this.__wbg_ptr, latitude_deg, longitude_deg, geoid.__wbg_ptr);
|
|
10449
|
+
if (ret[2]) {
|
|
10450
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
10451
|
+
}
|
|
10452
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
10453
|
+
}
|
|
10454
|
+
/**
|
|
10455
|
+
* Convert to ellipsoidal height `h = H + N` using radian inputs in geoid
|
|
10456
|
+
* order `(latitudeRad, longitudeRad)` and an explicit geoid model.
|
|
10457
|
+
* @param {number} latitude_rad
|
|
10458
|
+
* @param {number} longitude_rad
|
|
10459
|
+
* @param {TerrainGeoidModel} geoid
|
|
10460
|
+
* @returns {EllipsoidalHeightM}
|
|
10461
|
+
*/
|
|
10462
|
+
toEllipsoidalHeightRad(latitude_rad, longitude_rad, geoid) {
|
|
10463
|
+
_assertClass(geoid, TerrainGeoidModel);
|
|
10464
|
+
const ret = wasm.orthometricheightm_toEllipsoidalHeightRad(this.__wbg_ptr, latitude_rad, longitude_rad, geoid.__wbg_ptr);
|
|
10465
|
+
if (ret[2]) {
|
|
10466
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
10467
|
+
}
|
|
10468
|
+
return EllipsoidalHeightM.__wrap(ret[0]);
|
|
10469
|
+
}
|
|
10470
|
+
/**
|
|
10471
|
+
* Orthometric height `H`, metres above the EGM96 mean sea level geoid.
|
|
10472
|
+
* @returns {number}
|
|
10473
|
+
*/
|
|
10474
|
+
get valueM() {
|
|
10475
|
+
const ret = wasm.orthometricheightm_valueM(this.__wbg_ptr);
|
|
10476
|
+
return ret;
|
|
10477
|
+
}
|
|
10478
|
+
}
|
|
10479
|
+
if (Symbol.dispose) OrthometricHeightM.prototype[Symbol.dispose] = OrthometricHeightM.prototype.free;
|
|
10480
|
+
|
|
9941
10481
|
/**
|
|
9942
10482
|
* The result of [`parseTleFile`]: the satellites that parsed, plus a count of
|
|
9943
10483
|
* complete records that were skipped because SGP4 initialization failed.
|
|
@@ -10427,52 +10967,243 @@ export class PppFloatSolution {
|
|
|
10427
10967
|
if (Symbol.dispose) PppFloatSolution.prototype[Symbol.dispose] = PppFloatSolution.prototype.free;
|
|
10428
10968
|
|
|
10429
10969
|
/**
|
|
10430
|
-
* A precise-ephemeris
|
|
10970
|
+
* A reusable precise-ephemeris interpolant with cached per-satellite nodes.
|
|
10431
10971
|
*
|
|
10432
|
-
*
|
|
10433
|
-
*
|
|
10434
|
-
*
|
|
10435
|
-
|
|
10436
|
-
|
|
10972
|
+
* Build this handle once from a parsed [`Sp3`] product, raw precise samples, or
|
|
10973
|
+
* a [`PreciseEphemerisSampleSource`], then reuse it for many state or range
|
|
10974
|
+
* queries. The handle delegates to
|
|
10975
|
+
* `sidereon_core::ephemeris::PreciseEphemerisInterpolant`; ECEF positions are
|
|
10976
|
+
* metres, clocks are seconds, and query epochs are seconds since J2000 in the
|
|
10977
|
+
* source time scale.
|
|
10978
|
+
*/
|
|
10979
|
+
export class PreciseEphemerisInterpolant {
|
|
10437
10980
|
static __wrap(ptr) {
|
|
10438
|
-
const obj = Object.create(
|
|
10981
|
+
const obj = Object.create(PreciseEphemerisInterpolant.prototype);
|
|
10439
10982
|
obj.__wbg_ptr = ptr;
|
|
10440
|
-
|
|
10983
|
+
PreciseEphemerisInterpolantFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
10441
10984
|
return obj;
|
|
10442
10985
|
}
|
|
10443
10986
|
__destroy_into_raw() {
|
|
10444
10987
|
const ptr = this.__wbg_ptr;
|
|
10445
10988
|
this.__wbg_ptr = 0;
|
|
10446
|
-
|
|
10989
|
+
PreciseEphemerisInterpolantFinalization.unregister(this);
|
|
10447
10990
|
return ptr;
|
|
10448
10991
|
}
|
|
10449
10992
|
free() {
|
|
10450
10993
|
const ptr = this.__destroy_into_raw();
|
|
10451
|
-
wasm.
|
|
10994
|
+
wasm.__wbg_preciseephemerisinterpolant_free(ptr, 0);
|
|
10452
10995
|
}
|
|
10453
10996
|
/**
|
|
10454
|
-
*
|
|
10455
|
-
*
|
|
10456
|
-
*
|
|
10457
|
-
|
|
10458
|
-
|
|
10997
|
+
* Build a cached interpolant from an existing sample-backed precise source.
|
|
10998
|
+
* @param {PreciseEphemerisSampleSource} source
|
|
10999
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
11000
|
+
*/
|
|
11001
|
+
static fromPreciseEphemerisSamples(source) {
|
|
11002
|
+
_assertClass(source, PreciseEphemerisSampleSource);
|
|
11003
|
+
const ret = wasm.preciseephemerisinterpolant_fromPreciseEphemerisSamples(source.__wbg_ptr);
|
|
11004
|
+
return PreciseEphemerisInterpolant.__wrap(ret);
|
|
11005
|
+
}
|
|
11006
|
+
/**
|
|
11007
|
+
* Build a cached interpolant directly from precise samples.
|
|
11008
|
+
*
|
|
11009
|
+
* `samples` is the same array accepted by
|
|
11010
|
+
* [`preciseEphemerisSamplesFromSamples`]: each item has `{ sat, epoch,
|
|
11011
|
+
* positionEcefM, clockS?, clockEvent? }`, with epochs in seconds since
|
|
11012
|
+
* J2000 and positions in ECEF metres. Throws a `TypeError` for malformed
|
|
11013
|
+
* JS input and a `RangeError` for sample validation failures.
|
|
11014
|
+
* @param {any} samples
|
|
11015
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
11016
|
+
*/
|
|
11017
|
+
static fromSamples(samples) {
|
|
11018
|
+
const ret = wasm.preciseephemerisinterpolant_fromSamples(samples);
|
|
11019
|
+
if (ret[2]) {
|
|
11020
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11021
|
+
}
|
|
11022
|
+
return PreciseEphemerisInterpolant.__wrap(ret[0]);
|
|
11023
|
+
}
|
|
11024
|
+
/**
|
|
11025
|
+
* Build a cached interpolant from a parsed SP3 precise product.
|
|
11026
|
+
*
|
|
11027
|
+
* Nodes are copied from the product's native SP3 records. Query epochs are
|
|
11028
|
+
* seconds since J2000 in the SP3 product time scale.
|
|
11029
|
+
* @param {Sp3} sp3
|
|
11030
|
+
* @returns {PreciseEphemerisInterpolant}
|
|
11031
|
+
*/
|
|
11032
|
+
static fromSp3(sp3) {
|
|
11033
|
+
_assertClass(sp3, Sp3);
|
|
11034
|
+
const ret = wasm.preciseephemerisinterpolant_fromSp3(sp3.__wbg_ptr);
|
|
11035
|
+
return PreciseEphemerisInterpolant.__wrap(ret);
|
|
11036
|
+
}
|
|
11037
|
+
/**
|
|
11038
|
+
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
11039
|
+
* arrays using this cached interpolant.
|
|
11040
|
+
*
|
|
11041
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
11042
|
+
* seconds since J2000 on this handle's time scale. The returned plain
|
|
11043
|
+
* object has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
11044
|
+
* `elementResults` arrays.
|
|
11045
|
+
* @param {any} satellites
|
|
11046
|
+
* @param {any} epochs_j2000_s
|
|
10459
11047
|
* @returns {any}
|
|
10460
11048
|
*/
|
|
10461
|
-
|
|
10462
|
-
const ret = wasm.
|
|
11049
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
11050
|
+
const ret = wasm.preciseephemerisinterpolant_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
10463
11051
|
if (ret[2]) {
|
|
10464
11052
|
throw takeFromExternrefTable0(ret[1]);
|
|
10465
11053
|
}
|
|
10466
11054
|
return takeFromExternrefTable0(ret[0]);
|
|
10467
11055
|
}
|
|
10468
11056
|
/**
|
|
10469
|
-
*
|
|
10470
|
-
*
|
|
11057
|
+
* Query ECEF position and optional clock for many satellites at one epoch
|
|
11058
|
+
* using this cached interpolant.
|
|
11059
|
+
*
|
|
11060
|
+
* `epochJ2000S` is seconds since J2000 on this handle's time scale. The
|
|
11061
|
+
* returned object follows the same contract as
|
|
11062
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
11063
|
+
* @param {any} satellites
|
|
11064
|
+
* @param {number} epoch_j2000_s
|
|
11065
|
+
* @returns {any}
|
|
10471
11066
|
*/
|
|
10472
|
-
|
|
10473
|
-
const ret = wasm.
|
|
10474
|
-
|
|
10475
|
-
|
|
11067
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
11068
|
+
const ret = wasm.preciseephemerisinterpolant_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
11069
|
+
if (ret[2]) {
|
|
11070
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11071
|
+
}
|
|
11072
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11073
|
+
}
|
|
11074
|
+
/**
|
|
11075
|
+
* Predict geometric ranges for many `(satellite, receiver, epoch)`
|
|
11076
|
+
* requests using this cached interpolant.
|
|
11077
|
+
*
|
|
11078
|
+
* `requests` is an array of `{ sat, receiverEcefM, tRxJ2000S }` objects.
|
|
11079
|
+
* Positions are ECEF metres and epochs are seconds since J2000 on this
|
|
11080
|
+
* handle's time scale. The output matches [`Sp3.predictRanges`].
|
|
11081
|
+
* @param {any} requests
|
|
11082
|
+
* @param {any} options
|
|
11083
|
+
* @returns {any}
|
|
11084
|
+
*/
|
|
11085
|
+
predictRanges(requests, options) {
|
|
11086
|
+
const ret = wasm.preciseephemerisinterpolant_predictRanges(this.__wbg_ptr, requests, options);
|
|
11087
|
+
if (ret[2]) {
|
|
11088
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11089
|
+
}
|
|
11090
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11091
|
+
}
|
|
11092
|
+
/**
|
|
11093
|
+
* Satellite tokens this handle can interpolate, ascending.
|
|
11094
|
+
* @returns {string[]}
|
|
11095
|
+
*/
|
|
11096
|
+
get satellites() {
|
|
11097
|
+
const ret = wasm.preciseephemerisinterpolant_satellites(this.__wbg_ptr);
|
|
11098
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
11099
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
11100
|
+
return v1;
|
|
11101
|
+
}
|
|
11102
|
+
/**
|
|
11103
|
+
* Source time-scale abbreviation used by this handle's J2000-second axis,
|
|
11104
|
+
* such as `"GPST"`.
|
|
11105
|
+
* @returns {string}
|
|
11106
|
+
*/
|
|
11107
|
+
get timeScale() {
|
|
11108
|
+
let deferred1_0;
|
|
11109
|
+
let deferred1_1;
|
|
11110
|
+
try {
|
|
11111
|
+
const ret = wasm.preciseephemerisinterpolant_timeScale(this.__wbg_ptr);
|
|
11112
|
+
deferred1_0 = ret[0];
|
|
11113
|
+
deferred1_1 = ret[1];
|
|
11114
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
11115
|
+
} finally {
|
|
11116
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
11117
|
+
}
|
|
11118
|
+
}
|
|
11119
|
+
}
|
|
11120
|
+
if (Symbol.dispose) PreciseEphemerisInterpolant.prototype[Symbol.dispose] = PreciseEphemerisInterpolant.prototype.free;
|
|
11121
|
+
|
|
11122
|
+
/**
|
|
11123
|
+
* A precise-ephemeris source built from samples rather than parsed SP3 text.
|
|
11124
|
+
*
|
|
11125
|
+
* Implements the same `ObservableEphemerisSource` contract as a parsed [`Sp3`]
|
|
11126
|
+
* product and shares its interpolation substrate, so [`predictRanges`] accepts
|
|
11127
|
+
* either handle. Build one with [`preciseEphemerisSamplesFromSamples`].
|
|
11128
|
+
*/
|
|
11129
|
+
export class PreciseEphemerisSampleSource {
|
|
11130
|
+
static __wrap(ptr) {
|
|
11131
|
+
const obj = Object.create(PreciseEphemerisSampleSource.prototype);
|
|
11132
|
+
obj.__wbg_ptr = ptr;
|
|
11133
|
+
PreciseEphemerisSampleSourceFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
11134
|
+
return obj;
|
|
11135
|
+
}
|
|
11136
|
+
__destroy_into_raw() {
|
|
11137
|
+
const ptr = this.__wbg_ptr;
|
|
11138
|
+
this.__wbg_ptr = 0;
|
|
11139
|
+
PreciseEphemerisSampleSourceFinalization.unregister(this);
|
|
11140
|
+
return ptr;
|
|
11141
|
+
}
|
|
11142
|
+
free() {
|
|
11143
|
+
const ptr = this.__destroy_into_raw();
|
|
11144
|
+
wasm.__wbg_preciseephemerissamplesource_free(ptr, 0);
|
|
11145
|
+
}
|
|
11146
|
+
/**
|
|
11147
|
+
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
11148
|
+
* arrays against this sample-backed precise source.
|
|
11149
|
+
*
|
|
11150
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
11151
|
+
* seconds since J2000 on the source time scale. The returned plain object
|
|
11152
|
+
* has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
11153
|
+
* `elementResults` arrays. Failed elements use the core missing-position
|
|
11154
|
+
* sentinel and carry the scalar engine error in `elementResults[i].error`.
|
|
11155
|
+
* @param {any} satellites
|
|
11156
|
+
* @param {any} epochs_j2000_s
|
|
11157
|
+
* @returns {any}
|
|
11158
|
+
*/
|
|
11159
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
11160
|
+
const ret = wasm.preciseephemerissamplesource_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
11161
|
+
if (ret[2]) {
|
|
11162
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11163
|
+
}
|
|
11164
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11165
|
+
}
|
|
11166
|
+
/**
|
|
11167
|
+
* Query ECEF position and optional clock for many satellites at one epoch
|
|
11168
|
+
* against this sample-backed precise source.
|
|
11169
|
+
*
|
|
11170
|
+
* `epochJ2000S` is seconds since J2000 on the source time scale. The
|
|
11171
|
+
* returned plain object follows the same contract as
|
|
11172
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
11173
|
+
* @param {any} satellites
|
|
11174
|
+
* @param {number} epoch_j2000_s
|
|
11175
|
+
* @returns {any}
|
|
11176
|
+
*/
|
|
11177
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
11178
|
+
const ret = wasm.preciseephemerissamplesource_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
11179
|
+
if (ret[2]) {
|
|
11180
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11181
|
+
}
|
|
11182
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11183
|
+
}
|
|
11184
|
+
/**
|
|
11185
|
+
* Predict geometric ranges for many requests in one call. See the shared
|
|
11186
|
+
* [`predictRanges`](crate::precise_samples::predict_ranges_over) contract;
|
|
11187
|
+
* this is the sample-source entry point.
|
|
11188
|
+
* @param {any} requests
|
|
11189
|
+
* @param {any} options
|
|
11190
|
+
* @returns {any}
|
|
11191
|
+
*/
|
|
11192
|
+
predictRanges(requests, options) {
|
|
11193
|
+
const ret = wasm.preciseephemerissamplesource_predictRanges(this.__wbg_ptr, requests, options);
|
|
11194
|
+
if (ret[2]) {
|
|
11195
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
11196
|
+
}
|
|
11197
|
+
return takeFromExternrefTable0(ret[0]);
|
|
11198
|
+
}
|
|
11199
|
+
/**
|
|
11200
|
+
* The satellites this source can interpolate (e.g. `"G01"`), ascending.
|
|
11201
|
+
* @returns {string[]}
|
|
11202
|
+
*/
|
|
11203
|
+
get satellites() {
|
|
11204
|
+
const ret = wasm.preciseephemerissamplesource_satellites(this.__wbg_ptr);
|
|
11205
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
11206
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
10476
11207
|
return v1;
|
|
10477
11208
|
}
|
|
10478
11209
|
}
|
|
@@ -11914,6 +12645,12 @@ export class SatelliteVector {
|
|
|
11914
12645
|
}
|
|
11915
12646
|
if (Symbol.dispose) SatelliteVector.prototype[Symbol.dispose] = SatelliteVector.prototype.free;
|
|
11916
12647
|
|
|
12648
|
+
/**
|
|
12649
|
+
* Mutable SBAS correction store.
|
|
12650
|
+
*
|
|
12651
|
+
* Ingest raw SBAS messages with a source GEO and GNSS time, then query decoded
|
|
12652
|
+
* fast, long-term, ionospheric, and GEO navigation correction records.
|
|
12653
|
+
*/
|
|
11917
12654
|
export class SbasCorrectionStore {
|
|
11918
12655
|
__destroy_into_raw() {
|
|
11919
12656
|
const ptr = this.__wbg_ptr;
|
|
@@ -11926,6 +12663,49 @@ export class SbasCorrectionStore {
|
|
|
11926
12663
|
wasm.__wbg_sbascorrectionstore_free(ptr, 0);
|
|
11927
12664
|
}
|
|
11928
12665
|
/**
|
|
12666
|
+
* Fast pseudorange correction for `(geo, sat)`, or `null`.
|
|
12667
|
+
*
|
|
12668
|
+
* `prcM` is meters, `rrcMS` is meters per second, and `tOfJ2000S` is
|
|
12669
|
+
* seconds since J2000.
|
|
12670
|
+
* @param {string} geo
|
|
12671
|
+
* @param {string} sat
|
|
12672
|
+
* @returns {any}
|
|
12673
|
+
*/
|
|
12674
|
+
fastCorrection(geo, sat) {
|
|
12675
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12676
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12677
|
+
const ptr1 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12678
|
+
const len1 = WASM_VECTOR_LEN;
|
|
12679
|
+
const ret = wasm.sbascorrectionstore_fastCorrection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
12680
|
+
if (ret[2]) {
|
|
12681
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12682
|
+
}
|
|
12683
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12684
|
+
}
|
|
12685
|
+
/**
|
|
12686
|
+
* SBAS GEO navigation state for `geo`, or `null`.
|
|
12687
|
+
*
|
|
12688
|
+
* Positions are ECEF meters, velocities are ECEF meters per second,
|
|
12689
|
+
* accelerations are ECEF meters per second squared, clock fields are
|
|
12690
|
+
* seconds and seconds per second, and `t0J2000S` is seconds since J2000.
|
|
12691
|
+
* @param {string} geo
|
|
12692
|
+
* @returns {any}
|
|
12693
|
+
*/
|
|
12694
|
+
geoNavState(geo) {
|
|
12695
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12696
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12697
|
+
const ret = wasm.sbascorrectionstore_geoNavState(this.__wbg_ptr, ptr0, len0);
|
|
12698
|
+
if (ret[2]) {
|
|
12699
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12700
|
+
}
|
|
12701
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12702
|
+
}
|
|
12703
|
+
/**
|
|
12704
|
+
* Ingest one decoded SBAS message into the correction store.
|
|
12705
|
+
*
|
|
12706
|
+
* `geo` is the SBAS source satellite token such as `"S29"`. `week` and
|
|
12707
|
+
* `towS` are in the selected GNSS time scale. `form` is `"framed250"` or
|
|
12708
|
+
* `"body226"`.
|
|
11929
12709
|
* @param {Uint8Array} bytes
|
|
11930
12710
|
* @param {string | null | undefined} form
|
|
11931
12711
|
* @param {string} geo
|
|
@@ -11948,6 +12728,27 @@ export class SbasCorrectionStore {
|
|
|
11948
12728
|
}
|
|
11949
12729
|
}
|
|
11950
12730
|
/**
|
|
12731
|
+
* SBAS ionospheric grid for `geo`, or `null`.
|
|
12732
|
+
*
|
|
12733
|
+
* Grid point latitudes and longitudes are degrees, vertical delays are
|
|
12734
|
+
* meters, and GIVE variances are square meters when present.
|
|
12735
|
+
* @param {string} geo
|
|
12736
|
+
* @returns {any}
|
|
12737
|
+
*/
|
|
12738
|
+
ionoGrid(geo) {
|
|
12739
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12740
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12741
|
+
const ret = wasm.sbascorrectionstore_ionoGrid(this.__wbg_ptr, ptr0, len0);
|
|
12742
|
+
if (ret[2]) {
|
|
12743
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12744
|
+
}
|
|
12745
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12746
|
+
}
|
|
12747
|
+
/**
|
|
12748
|
+
* SBAS ionospheric slant delay in meters, or `null`.
|
|
12749
|
+
*
|
|
12750
|
+
* Receiver latitude, longitude, elevation, and azimuth are radians.
|
|
12751
|
+
* `frequencyHz` is the carrier frequency for the reported group delay.
|
|
11951
12752
|
* @param {string} geo
|
|
11952
12753
|
* @param {number} receiver_lat_rad
|
|
11953
12754
|
* @param {number} receiver_lon_rad
|
|
@@ -11966,6 +12767,30 @@ export class SbasCorrectionStore {
|
|
|
11966
12767
|
}
|
|
11967
12768
|
return ret[0] === 0 ? undefined : ret[1];
|
|
11968
12769
|
}
|
|
12770
|
+
/**
|
|
12771
|
+
* Long-term orbit and clock correction for `(geo, sat)`, or `null`.
|
|
12772
|
+
*
|
|
12773
|
+
* Position deltas are ECEF meters, rates are ECEF meters per second, clock
|
|
12774
|
+
* deltas are seconds and seconds per second, and `t0J2000S` is seconds
|
|
12775
|
+
* since J2000.
|
|
12776
|
+
* @param {string} geo
|
|
12777
|
+
* @param {string} sat
|
|
12778
|
+
* @returns {any}
|
|
12779
|
+
*/
|
|
12780
|
+
longTermCorrection(geo, sat) {
|
|
12781
|
+
const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12782
|
+
const len0 = WASM_VECTOR_LEN;
|
|
12783
|
+
const ptr1 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
12784
|
+
const len1 = WASM_VECTOR_LEN;
|
|
12785
|
+
const ret = wasm.sbascorrectionstore_longTermCorrection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
12786
|
+
if (ret[2]) {
|
|
12787
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
12788
|
+
}
|
|
12789
|
+
return takeFromExternrefTable0(ret[0]);
|
|
12790
|
+
}
|
|
12791
|
+
/**
|
|
12792
|
+
* Create an empty SBAS correction store.
|
|
12793
|
+
*/
|
|
11969
12794
|
constructor() {
|
|
11970
12795
|
const ret = wasm.sbascorrectionstore_new();
|
|
11971
12796
|
this.__wbg_ptr = ret;
|
|
@@ -11973,6 +12798,10 @@ export class SbasCorrectionStore {
|
|
|
11973
12798
|
return this;
|
|
11974
12799
|
}
|
|
11975
12800
|
/**
|
|
12801
|
+
* Ready SBAS GEO source satellites at `tJ2000S`.
|
|
12802
|
+
*
|
|
12803
|
+
* The time is seconds since J2000. Returned tokens are strings such as
|
|
12804
|
+
* `"S29"`, sorted by most recent update first.
|
|
11976
12805
|
* @param {number} t_j2000_s
|
|
11977
12806
|
* @returns {string[]}
|
|
11978
12807
|
*/
|
|
@@ -11982,6 +12811,24 @@ export class SbasCorrectionStore {
|
|
|
11982
12811
|
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
11983
12812
|
return v1;
|
|
11984
12813
|
}
|
|
12814
|
+
/**
|
|
12815
|
+
* Allow or disallow partial SBAS corrections when building corrected
|
|
12816
|
+
* ephemeris states.
|
|
12817
|
+
* @param {boolean} yes
|
|
12818
|
+
*/
|
|
12819
|
+
setAllowPartial(yes) {
|
|
12820
|
+
wasm.sbascorrectionstore_setAllowPartial(this.__wbg_ptr, yes);
|
|
12821
|
+
}
|
|
12822
|
+
/**
|
|
12823
|
+
* Set the maximum staleness for fresh SBAS corrections, in seconds.
|
|
12824
|
+
* @param {number} seconds
|
|
12825
|
+
*/
|
|
12826
|
+
setStalenessSeconds(seconds) {
|
|
12827
|
+
const ret = wasm.sbascorrectionstore_setStalenessSeconds(this.__wbg_ptr, seconds);
|
|
12828
|
+
if (ret[1]) {
|
|
12829
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
12830
|
+
}
|
|
12831
|
+
}
|
|
11985
12832
|
}
|
|
11986
12833
|
if (Symbol.dispose) SbasCorrectionStore.prototype[Symbol.dispose] = SbasCorrectionStore.prototype.free;
|
|
11987
12834
|
|
|
@@ -12377,6 +13224,44 @@ export class Sp3 {
|
|
|
12377
13224
|
}
|
|
12378
13225
|
return Sp3Interpolation.__wrap(ret[0]);
|
|
12379
13226
|
}
|
|
13227
|
+
/**
|
|
13228
|
+
* Query ECEF position and optional clock for parallel satellite and epoch
|
|
13229
|
+
* arrays against this parsed SP3 product.
|
|
13230
|
+
*
|
|
13231
|
+
* `satellites[i]` is evaluated at `epochsJ2000S[i]`, where epochs are
|
|
13232
|
+
* seconds since J2000 in the product time scale. The returned plain object
|
|
13233
|
+
* has aligned `positionsEcefM`, `clocksS`, `statuses`, and
|
|
13234
|
+
* `elementResults` arrays. Failed elements use the core missing-position
|
|
13235
|
+
* sentinel and carry the scalar engine error in `elementResults[i].error`.
|
|
13236
|
+
* @param {any} satellites
|
|
13237
|
+
* @param {any} epochs_j2000_s
|
|
13238
|
+
* @returns {any}
|
|
13239
|
+
*/
|
|
13240
|
+
observableStatesAtJ2000S(satellites, epochs_j2000_s) {
|
|
13241
|
+
const ret = wasm.sp3_observableStatesAtJ2000S(this.__wbg_ptr, satellites, epochs_j2000_s);
|
|
13242
|
+
if (ret[2]) {
|
|
13243
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
13244
|
+
}
|
|
13245
|
+
return takeFromExternrefTable0(ret[0]);
|
|
13246
|
+
}
|
|
13247
|
+
/**
|
|
13248
|
+
* Query ECEF position and optional clock for many satellites at one epoch
|
|
13249
|
+
* against this parsed SP3 product.
|
|
13250
|
+
*
|
|
13251
|
+
* `epochJ2000S` is seconds since J2000 in the product time scale. The
|
|
13252
|
+
* returned object follows the same contract as
|
|
13253
|
+
* [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
|
|
13254
|
+
* @param {any} satellites
|
|
13255
|
+
* @param {number} epoch_j2000_s
|
|
13256
|
+
* @returns {any}
|
|
13257
|
+
*/
|
|
13258
|
+
observableStatesAtSharedJ2000S(satellites, epoch_j2000_s) {
|
|
13259
|
+
const ret = wasm.sp3_observableStatesAtSharedJ2000S(this.__wbg_ptr, satellites, epoch_j2000_s);
|
|
13260
|
+
if (ret[2]) {
|
|
13261
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
13262
|
+
}
|
|
13263
|
+
return takeFromExternrefTable0(ret[0]);
|
|
13264
|
+
}
|
|
12380
13265
|
/**
|
|
12381
13266
|
* Predict geometric ranges for many `(satellite, receiver, epoch)` requests
|
|
12382
13267
|
* against this ephemeris in one call. `requests` is an array of
|
|
@@ -13911,99 +14796,76 @@ export class SunMoon {
|
|
|
13911
14796
|
if (Symbol.dispose) SunMoon.prototype[Symbol.dispose] = SunMoon.prototype.free;
|
|
13912
14797
|
|
|
13913
14798
|
/**
|
|
13914
|
-
*
|
|
13915
|
-
* @enum {0 | 1 | 2 | 3
|
|
14799
|
+
* Terrain datum conversion and optional geoid-grid loading error variants.
|
|
14800
|
+
* @enum {0 | 1 | 2 | 3}
|
|
13916
14801
|
*/
|
|
13917
|
-
export const
|
|
13918
|
-
/**
|
|
13919
|
-
* Coordinated Universal Time.
|
|
13920
|
-
*/
|
|
13921
|
-
Utc: 0, "0": "Utc",
|
|
13922
|
-
/**
|
|
13923
|
-
* International Atomic Time.
|
|
13924
|
-
*/
|
|
13925
|
-
Tai: 1, "1": "Tai",
|
|
13926
|
-
/**
|
|
13927
|
-
* Terrestrial Time.
|
|
13928
|
-
*/
|
|
13929
|
-
Tt: 2, "2": "Tt",
|
|
13930
|
-
/**
|
|
13931
|
-
* Barycentric Dynamical Time.
|
|
13932
|
-
*/
|
|
13933
|
-
Tdb: 3, "3": "Tdb",
|
|
13934
|
-
/**
|
|
13935
|
-
* GPS time.
|
|
13936
|
-
*/
|
|
13937
|
-
Gpst: 4, "4": "Gpst",
|
|
14802
|
+
export const TerrainDatumError = Object.freeze({
|
|
13938
14803
|
/**
|
|
13939
|
-
*
|
|
14804
|
+
* Terrain lookup failed before datum conversion.
|
|
13940
14805
|
*/
|
|
13941
|
-
|
|
14806
|
+
Terrain: 0, "0": "Terrain",
|
|
13942
14807
|
/**
|
|
13943
|
-
*
|
|
14808
|
+
* A geoid grid could not be parsed.
|
|
13944
14809
|
*/
|
|
13945
|
-
|
|
14810
|
+
Geoid: 1, "1": "Geoid",
|
|
13946
14811
|
/**
|
|
13947
|
-
*
|
|
14812
|
+
* Reading a geoid grid failed for a reason other than absence.
|
|
13948
14813
|
*/
|
|
13949
|
-
|
|
14814
|
+
Io: 2, "2": "Io",
|
|
13950
14815
|
/**
|
|
13951
|
-
*
|
|
14816
|
+
* The EGM96 15-arcminute `WW15MGH.DAC` grid was requested but is absent.
|
|
13952
14817
|
*/
|
|
13953
|
-
|
|
14818
|
+
MissingEgm96Dac: 3, "3": "MissingEgm96Dac",
|
|
13954
14819
|
});
|
|
13955
14820
|
|
|
13956
14821
|
/**
|
|
13957
|
-
*
|
|
14822
|
+
* Geoid model used to convert terrain orthometric height `H` to ellipsoidal
|
|
14823
|
+
* height `h`.
|
|
13958
14824
|
*/
|
|
13959
|
-
export class
|
|
14825
|
+
export class TerrainGeoidModel {
|
|
13960
14826
|
static __wrap(ptr) {
|
|
13961
|
-
const obj = Object.create(
|
|
14827
|
+
const obj = Object.create(TerrainGeoidModel.prototype);
|
|
13962
14828
|
obj.__wbg_ptr = ptr;
|
|
13963
|
-
|
|
14829
|
+
TerrainGeoidModelFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
13964
14830
|
return obj;
|
|
13965
14831
|
}
|
|
13966
|
-
static __unwrap(jsValue) {
|
|
13967
|
-
if (!(jsValue instanceof Tle)) {
|
|
13968
|
-
return 0;
|
|
13969
|
-
}
|
|
13970
|
-
return jsValue.__destroy_into_raw();
|
|
13971
|
-
}
|
|
13972
14832
|
__destroy_into_raw() {
|
|
13973
14833
|
const ptr = this.__wbg_ptr;
|
|
13974
14834
|
this.__wbg_ptr = 0;
|
|
13975
|
-
|
|
14835
|
+
TerrainGeoidModelFinalization.unregister(this);
|
|
13976
14836
|
return ptr;
|
|
13977
14837
|
}
|
|
13978
14838
|
free() {
|
|
13979
14839
|
const ptr = this.__destroy_into_raw();
|
|
13980
|
-
wasm.
|
|
14840
|
+
wasm.__wbg_terraingeoidmodel_free(ptr, 0);
|
|
13981
14841
|
}
|
|
13982
14842
|
/**
|
|
13983
|
-
*
|
|
13984
|
-
* @
|
|
14843
|
+
* Use a caller-supplied EGM96 15-arcminute geoid grid for `h = H + N`.
|
|
14844
|
+
* @param {Egm96FifteenMinuteGeoid} geoid
|
|
14845
|
+
* @returns {TerrainGeoidModel}
|
|
13985
14846
|
*/
|
|
13986
|
-
|
|
13987
|
-
|
|
13988
|
-
|
|
14847
|
+
static egm96FifteenMinute(geoid) {
|
|
14848
|
+
_assertClass(geoid, Egm96FifteenMinuteGeoid);
|
|
14849
|
+
const ret = wasm.terraingeoidmodel_egm96FifteenMinute(geoid.__wbg_ptr);
|
|
14850
|
+
return TerrainGeoidModel.__wrap(ret);
|
|
13989
14851
|
}
|
|
13990
14852
|
/**
|
|
13991
|
-
*
|
|
13992
|
-
* @returns {
|
|
14853
|
+
* Use the embedded EGM96 1-degree geoid grid for `h = H + N`.
|
|
14854
|
+
* @returns {TerrainGeoidModel}
|
|
13993
14855
|
*/
|
|
13994
|
-
|
|
13995
|
-
const ret = wasm.
|
|
13996
|
-
return ret;
|
|
14856
|
+
static egm96OneDegree() {
|
|
14857
|
+
const ret = wasm.terraingeoidmodel_egm96OneDegree();
|
|
14858
|
+
return TerrainGeoidModel.__wrap(ret);
|
|
13997
14859
|
}
|
|
13998
14860
|
/**
|
|
13999
|
-
*
|
|
14861
|
+
* Model discriminator: `"egm96OneDegree"` or `"egm96FifteenMinute"`.
|
|
14000
14862
|
* @returns {string}
|
|
14001
14863
|
*/
|
|
14002
|
-
get
|
|
14864
|
+
get kind() {
|
|
14003
14865
|
let deferred1_0;
|
|
14004
14866
|
let deferred1_1;
|
|
14005
14867
|
try {
|
|
14006
|
-
const ret = wasm.
|
|
14868
|
+
const ret = wasm.terraingeoidmodel_kind(this.__wbg_ptr);
|
|
14007
14869
|
deferred1_0 = ret[0];
|
|
14008
14870
|
deferred1_1 = ret[1];
|
|
14009
14871
|
return getStringFromWasm0(ret[0], ret[1]);
|
|
@@ -14011,10 +14873,266 @@ export class Tle {
|
|
|
14011
14873
|
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
14012
14874
|
}
|
|
14013
14875
|
}
|
|
14014
|
-
|
|
14015
|
-
|
|
14016
|
-
|
|
14017
|
-
|
|
14876
|
+
}
|
|
14877
|
+
if (Symbol.dispose) TerrainGeoidModel.prototype[Symbol.dispose] = TerrainGeoidModel.prototype.free;
|
|
14878
|
+
|
|
14879
|
+
/**
|
|
14880
|
+
* Terrain store conversion, serialization, and parsing error variants.
|
|
14881
|
+
* @enum {0 | 1 | 2 | 3 | 4 | 5}
|
|
14882
|
+
*/
|
|
14883
|
+
export const TerrainStoreError = Object.freeze({
|
|
14884
|
+
/**
|
|
14885
|
+
* File or directory I/O failed.
|
|
14886
|
+
*/
|
|
14887
|
+
Io: 0, "0": "Io",
|
|
14888
|
+
/**
|
|
14889
|
+
* DTED or terrain store bytes could not be parsed.
|
|
14890
|
+
*/
|
|
14891
|
+
Parse: 1, "1": "Parse",
|
|
14892
|
+
/**
|
|
14893
|
+
* The terrain store version is not supported.
|
|
14894
|
+
*/
|
|
14895
|
+
UnsupportedVersion: 2, "2": "UnsupportedVersion",
|
|
14896
|
+
/**
|
|
14897
|
+
* The terrain store datum tag is not supported.
|
|
14898
|
+
*/
|
|
14899
|
+
UnsupportedDatum: 3, "3": "UnsupportedDatum",
|
|
14900
|
+
/**
|
|
14901
|
+
* Two input DTED files resolved to the same integer tile id.
|
|
14902
|
+
*/
|
|
14903
|
+
DuplicateTile: 4, "4": "DuplicateTile",
|
|
14904
|
+
/**
|
|
14905
|
+
* A tile payload checksum did not match its index record.
|
|
14906
|
+
*/
|
|
14907
|
+
Checksum: 5, "5": "Checksum",
|
|
14908
|
+
});
|
|
14909
|
+
|
|
14910
|
+
/**
|
|
14911
|
+
* Metadata for one tile index record in a memory-mappable terrain store.
|
|
14912
|
+
*/
|
|
14913
|
+
export class TerrainStoreTileIndex {
|
|
14914
|
+
static __wrap(ptr) {
|
|
14915
|
+
const obj = Object.create(TerrainStoreTileIndex.prototype);
|
|
14916
|
+
obj.__wbg_ptr = ptr;
|
|
14917
|
+
TerrainStoreTileIndexFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
14918
|
+
return obj;
|
|
14919
|
+
}
|
|
14920
|
+
__destroy_into_raw() {
|
|
14921
|
+
const ptr = this.__wbg_ptr;
|
|
14922
|
+
this.__wbg_ptr = 0;
|
|
14923
|
+
TerrainStoreTileIndexFinalization.unregister(this);
|
|
14924
|
+
return ptr;
|
|
14925
|
+
}
|
|
14926
|
+
free() {
|
|
14927
|
+
const ptr = this.__destroy_into_raw();
|
|
14928
|
+
wasm.__wbg_terrainstoretileindex_free(ptr, 0);
|
|
14929
|
+
}
|
|
14930
|
+
/**
|
|
14931
|
+
* FNV-1a checksum of this tile's posting payload bytes.
|
|
14932
|
+
* @returns {bigint}
|
|
14933
|
+
*/
|
|
14934
|
+
get checksum64() {
|
|
14935
|
+
const ret = wasm.terrainstoretileindex_checksum64(this.__wbg_ptr);
|
|
14936
|
+
return BigInt.asUintN(64, ret);
|
|
14937
|
+
}
|
|
14938
|
+
/**
|
|
14939
|
+
* Byte length of this tile's posting payload in the store.
|
|
14940
|
+
* @returns {bigint}
|
|
14941
|
+
*/
|
|
14942
|
+
get dataLen() {
|
|
14943
|
+
const ret = wasm.terrainstoretileindex_dataLen(this.__wbg_ptr);
|
|
14944
|
+
return BigInt.asUintN(64, ret);
|
|
14945
|
+
}
|
|
14946
|
+
/**
|
|
14947
|
+
* Byte offset of this tile's posting payload in the store.
|
|
14948
|
+
* @returns {bigint}
|
|
14949
|
+
*/
|
|
14950
|
+
get dataOffset() {
|
|
14951
|
+
const ret = wasm.terrainstoretileindex_dataOffset(this.__wbg_ptr);
|
|
14952
|
+
return BigInt.asUintN(64, ret);
|
|
14953
|
+
}
|
|
14954
|
+
/**
|
|
14955
|
+
* Number of latitude postings.
|
|
14956
|
+
* @returns {number}
|
|
14957
|
+
*/
|
|
14958
|
+
get latCount() {
|
|
14959
|
+
const ret = wasm.terrainstoretileindex_latCount(this.__wbg_ptr);
|
|
14960
|
+
return ret >>> 0;
|
|
14961
|
+
}
|
|
14962
|
+
/**
|
|
14963
|
+
* Integer latitude tile id, for example `36` for a tile covering
|
|
14964
|
+
* `36..37` degrees.
|
|
14965
|
+
* @returns {number}
|
|
14966
|
+
*/
|
|
14967
|
+
get latIndex() {
|
|
14968
|
+
const ret = wasm.terrainstoretileindex_latIndex(this.__wbg_ptr);
|
|
14969
|
+
return ret;
|
|
14970
|
+
}
|
|
14971
|
+
/**
|
|
14972
|
+
* Number of longitude postings.
|
|
14973
|
+
* @returns {number}
|
|
14974
|
+
*/
|
|
14975
|
+
get lonCount() {
|
|
14976
|
+
const ret = wasm.terrainstoretileindex_lonCount(this.__wbg_ptr);
|
|
14977
|
+
return ret >>> 0;
|
|
14978
|
+
}
|
|
14979
|
+
/**
|
|
14980
|
+
* Integer longitude tile id, for example `-107` for a tile covering
|
|
14981
|
+
* `-107..-106` degrees.
|
|
14982
|
+
* @returns {number}
|
|
14983
|
+
*/
|
|
14984
|
+
get lonIndex() {
|
|
14985
|
+
const ret = wasm.terrainstoretileindex_lonIndex(this.__wbg_ptr);
|
|
14986
|
+
return ret;
|
|
14987
|
+
}
|
|
14988
|
+
/**
|
|
14989
|
+
* Northern edge latitude, degrees.
|
|
14990
|
+
* @returns {number}
|
|
14991
|
+
*/
|
|
14992
|
+
get maxLatitudeDeg() {
|
|
14993
|
+
const ret = wasm.terrainstoretileindex_maxLatitudeDeg(this.__wbg_ptr);
|
|
14994
|
+
return ret;
|
|
14995
|
+
}
|
|
14996
|
+
/**
|
|
14997
|
+
* Eastern edge longitude, degrees.
|
|
14998
|
+
* @returns {number}
|
|
14999
|
+
*/
|
|
15000
|
+
get maxLongitudeDeg() {
|
|
15001
|
+
const ret = wasm.terrainstoretileindex_maxLongitudeDeg(this.__wbg_ptr);
|
|
15002
|
+
return ret;
|
|
15003
|
+
}
|
|
15004
|
+
/**
|
|
15005
|
+
* Southern edge latitude, degrees.
|
|
15006
|
+
* @returns {number}
|
|
15007
|
+
*/
|
|
15008
|
+
get minLatitudeDeg() {
|
|
15009
|
+
const ret = wasm.terrainstoretileindex_minLatitudeDeg(this.__wbg_ptr);
|
|
15010
|
+
return ret;
|
|
15011
|
+
}
|
|
15012
|
+
/**
|
|
15013
|
+
* Western edge longitude, degrees.
|
|
15014
|
+
* @returns {number}
|
|
15015
|
+
*/
|
|
15016
|
+
get minLongitudeDeg() {
|
|
15017
|
+
const ret = wasm.terrainstoretileindex_minLongitudeDeg(this.__wbg_ptr);
|
|
15018
|
+
return ret;
|
|
15019
|
+
}
|
|
15020
|
+
/**
|
|
15021
|
+
* Vertical datum for this tile's orthometric posting payload.
|
|
15022
|
+
* @returns {VerticalDatum}
|
|
15023
|
+
*/
|
|
15024
|
+
get verticalDatum() {
|
|
15025
|
+
const ret = wasm.terrainstoretileindex_verticalDatum(this.__wbg_ptr);
|
|
15026
|
+
return ret;
|
|
15027
|
+
}
|
|
15028
|
+
}
|
|
15029
|
+
if (Symbol.dispose) TerrainStoreTileIndex.prototype[Symbol.dispose] = TerrainStoreTileIndex.prototype.free;
|
|
15030
|
+
|
|
15031
|
+
/**
|
|
15032
|
+
* A named time scale. The JS value matches the variant order below.
|
|
15033
|
+
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8}
|
|
15034
|
+
*/
|
|
15035
|
+
export const TimeScale = Object.freeze({
|
|
15036
|
+
/**
|
|
15037
|
+
* Coordinated Universal Time.
|
|
15038
|
+
*/
|
|
15039
|
+
Utc: 0, "0": "Utc",
|
|
15040
|
+
/**
|
|
15041
|
+
* International Atomic Time.
|
|
15042
|
+
*/
|
|
15043
|
+
Tai: 1, "1": "Tai",
|
|
15044
|
+
/**
|
|
15045
|
+
* Terrestrial Time.
|
|
15046
|
+
*/
|
|
15047
|
+
Tt: 2, "2": "Tt",
|
|
15048
|
+
/**
|
|
15049
|
+
* Barycentric Dynamical Time.
|
|
15050
|
+
*/
|
|
15051
|
+
Tdb: 3, "3": "Tdb",
|
|
15052
|
+
/**
|
|
15053
|
+
* GPS time.
|
|
15054
|
+
*/
|
|
15055
|
+
Gpst: 4, "4": "Gpst",
|
|
15056
|
+
/**
|
|
15057
|
+
* Galileo System Time.
|
|
15058
|
+
*/
|
|
15059
|
+
Gst: 5, "5": "Gst",
|
|
15060
|
+
/**
|
|
15061
|
+
* BeiDou Time.
|
|
15062
|
+
*/
|
|
15063
|
+
Bdt: 6, "6": "Bdt",
|
|
15064
|
+
/**
|
|
15065
|
+
* GLONASS system time (UTC(SU)-based, leap-second carrying).
|
|
15066
|
+
*/
|
|
15067
|
+
Glonasst: 7, "7": "Glonasst",
|
|
15068
|
+
/**
|
|
15069
|
+
* QZSS system time (steered to GPST).
|
|
15070
|
+
*/
|
|
15071
|
+
Qzsst: 8, "8": "Qzsst",
|
|
15072
|
+
});
|
|
15073
|
+
|
|
15074
|
+
/**
|
|
15075
|
+
* A parsed two-line element set with an initialized SGP4 satellite.
|
|
15076
|
+
*/
|
|
15077
|
+
export class Tle {
|
|
15078
|
+
static __wrap(ptr) {
|
|
15079
|
+
const obj = Object.create(Tle.prototype);
|
|
15080
|
+
obj.__wbg_ptr = ptr;
|
|
15081
|
+
TleFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
15082
|
+
return obj;
|
|
15083
|
+
}
|
|
15084
|
+
static __unwrap(jsValue) {
|
|
15085
|
+
if (!(jsValue instanceof Tle)) {
|
|
15086
|
+
return 0;
|
|
15087
|
+
}
|
|
15088
|
+
return jsValue.__destroy_into_raw();
|
|
15089
|
+
}
|
|
15090
|
+
__destroy_into_raw() {
|
|
15091
|
+
const ptr = this.__wbg_ptr;
|
|
15092
|
+
this.__wbg_ptr = 0;
|
|
15093
|
+
TleFinalization.unregister(this);
|
|
15094
|
+
return ptr;
|
|
15095
|
+
}
|
|
15096
|
+
free() {
|
|
15097
|
+
const ptr = this.__destroy_into_raw();
|
|
15098
|
+
wasm.__wbg_tle_free(ptr, 0);
|
|
15099
|
+
}
|
|
15100
|
+
/**
|
|
15101
|
+
* Argument of perigee, degrees.
|
|
15102
|
+
* @returns {number}
|
|
15103
|
+
*/
|
|
15104
|
+
get argPerigeeDeg() {
|
|
15105
|
+
const ret = wasm.tle_argPerigeeDeg(this.__wbg_ptr);
|
|
15106
|
+
return ret;
|
|
15107
|
+
}
|
|
15108
|
+
/**
|
|
15109
|
+
* B* drag term (TLE dimensionless convention).
|
|
15110
|
+
* @returns {number}
|
|
15111
|
+
*/
|
|
15112
|
+
get bstar() {
|
|
15113
|
+
const ret = wasm.tle_bstar(this.__wbg_ptr);
|
|
15114
|
+
return ret;
|
|
15115
|
+
}
|
|
15116
|
+
/**
|
|
15117
|
+
* NORAD catalog number (as recorded in the TLE).
|
|
15118
|
+
* @returns {string}
|
|
15119
|
+
*/
|
|
15120
|
+
get catalogNumber() {
|
|
15121
|
+
let deferred1_0;
|
|
15122
|
+
let deferred1_1;
|
|
15123
|
+
try {
|
|
15124
|
+
const ret = wasm.tle_catalogNumber(this.__wbg_ptr);
|
|
15125
|
+
deferred1_0 = ret[0];
|
|
15126
|
+
deferred1_1 = ret[1];
|
|
15127
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
15128
|
+
} finally {
|
|
15129
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
15130
|
+
}
|
|
15131
|
+
}
|
|
15132
|
+
/**
|
|
15133
|
+
* Advisory checksum discrepancies found while parsing. Empty when both
|
|
15134
|
+
* lines' checksums are valid.
|
|
15135
|
+
* @returns {ChecksumWarning[]}
|
|
14018
15136
|
*/
|
|
14019
15137
|
get checksumWarnings() {
|
|
14020
15138
|
const ret = wasm.tle_checksumWarnings(this.__wbg_ptr);
|
|
@@ -14557,6 +15675,17 @@ export class VelocitySolution {
|
|
|
14557
15675
|
}
|
|
14558
15676
|
if (Symbol.dispose) VelocitySolution.prototype[Symbol.dispose] = VelocitySolution.prototype.free;
|
|
14559
15677
|
|
|
15678
|
+
/**
|
|
15679
|
+
* Vertical datum carried by a terrain store.
|
|
15680
|
+
* @enum {0}
|
|
15681
|
+
*/
|
|
15682
|
+
export const VerticalDatum = Object.freeze({
|
|
15683
|
+
/**
|
|
15684
|
+
* Orthometric height `H` in metres above the EGM96 mean sea level geoid.
|
|
15685
|
+
*/
|
|
15686
|
+
Egm96MslOrthometric: 0, "0": "Egm96MslOrthometric",
|
|
15687
|
+
});
|
|
15688
|
+
|
|
14560
15689
|
/**
|
|
14561
15690
|
* Per-epoch topocentric visibility plus the dense pass list over the grid
|
|
14562
15691
|
* window.
|
|
@@ -14848,6 +15977,99 @@ export function acquire(samples, prn, options) {
|
|
|
14848
15977
|
return AcquisitionResult.__wrap(ret[0]);
|
|
14849
15978
|
}
|
|
14850
15979
|
|
|
15980
|
+
/**
|
|
15981
|
+
* Plain non-overlapping Allan deviation for explicit averaging factors.
|
|
15982
|
+
*
|
|
15983
|
+
* `series` is `{ kind, values }`, where `kind` is `"phaseSeconds"` or
|
|
15984
|
+
* `"fractionalFrequency"` and `values` are phase seconds or dimensionless
|
|
15985
|
+
* fractional-frequency samples. `tau0S` is the sample interval in seconds.
|
|
15986
|
+
* `averagingFactors` is an array of positive integer `m` values. Returns
|
|
15987
|
+
* `{ tauS, deviation, n }`.
|
|
15988
|
+
* @param {any} series
|
|
15989
|
+
* @param {number} tau0_s
|
|
15990
|
+
* @param {any} averaging_factors
|
|
15991
|
+
* @returns {any}
|
|
15992
|
+
*/
|
|
15993
|
+
export function allanDeviation(series, tau0_s, averaging_factors) {
|
|
15994
|
+
const ret = wasm.allanDeviation(series, tau0_s, averaging_factors);
|
|
15995
|
+
if (ret[2]) {
|
|
15996
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
15997
|
+
}
|
|
15998
|
+
return takeFromExternrefTable0(ret[0]);
|
|
15999
|
+
}
|
|
16000
|
+
|
|
16001
|
+
/**
|
|
16002
|
+
* Alpha-beta measurement update applied to a predicted scalar state.
|
|
16003
|
+
*
|
|
16004
|
+
* `predicted` is `{ level, rate }`, `measurement` has the same unit as
|
|
16005
|
+
* `level`, `dt` is seconds, and `gains` is `{ alpha, beta }`.
|
|
16006
|
+
* @param {any} predicted
|
|
16007
|
+
* @param {number} measurement
|
|
16008
|
+
* @param {number} dt
|
|
16009
|
+
* @param {any} gains
|
|
16010
|
+
* @returns {any}
|
|
16011
|
+
*/
|
|
16012
|
+
export function alphaBetaApplyMeasurement(predicted, measurement, dt, gains) {
|
|
16013
|
+
const ret = wasm.alphaBetaApplyMeasurement(predicted, measurement, dt, gains);
|
|
16014
|
+
if (ret[2]) {
|
|
16015
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16016
|
+
}
|
|
16017
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16018
|
+
}
|
|
16019
|
+
|
|
16020
|
+
/**
|
|
16021
|
+
* Run one alpha-beta predict and measurement update.
|
|
16022
|
+
*
|
|
16023
|
+
* `state` is `{ level, rate }`, `measurement` has the same unit as `level`,
|
|
16024
|
+
* `dt` is seconds, and `gains` is `{ alpha, beta }`. Returns `{ predicted,
|
|
16025
|
+
* updated, innovation }`.
|
|
16026
|
+
* @param {any} state
|
|
16027
|
+
* @param {number} measurement
|
|
16028
|
+
* @param {number} dt
|
|
16029
|
+
* @param {any} gains
|
|
16030
|
+
* @returns {any}
|
|
16031
|
+
*/
|
|
16032
|
+
export function alphaBetaFilterStep(state, measurement, dt, gains) {
|
|
16033
|
+
const ret = wasm.alphaBetaFilterStep(state, measurement, dt, gains);
|
|
16034
|
+
if (ret[2]) {
|
|
16035
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16036
|
+
}
|
|
16037
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16038
|
+
}
|
|
16039
|
+
|
|
16040
|
+
/**
|
|
16041
|
+
* Alpha-beta constant-rate prediction.
|
|
16042
|
+
*
|
|
16043
|
+
* `state` is `{ level, rate }` and `dt` is the positive propagation interval in
|
|
16044
|
+
* seconds. Returns the predicted `{ level, rate }`.
|
|
16045
|
+
* @param {any} state
|
|
16046
|
+
* @param {number} dt
|
|
16047
|
+
* @returns {any}
|
|
16048
|
+
*/
|
|
16049
|
+
export function alphaBetaPredict(state, dt) {
|
|
16050
|
+
const ret = wasm.alphaBetaPredict(state, dt);
|
|
16051
|
+
if (ret[2]) {
|
|
16052
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16053
|
+
}
|
|
16054
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16055
|
+
}
|
|
16056
|
+
|
|
16057
|
+
/**
|
|
16058
|
+
* Steady-state alpha-beta gains from a positive tracking index.
|
|
16059
|
+
*
|
|
16060
|
+
* Returns `{ alpha, beta }`, where `alpha` is the level gain and `beta` maps
|
|
16061
|
+
* innovation to rate through `beta * innovation / dt`.
|
|
16062
|
+
* @param {number} tracking_index
|
|
16063
|
+
* @returns {any}
|
|
16064
|
+
*/
|
|
16065
|
+
export function alphaBetaSteadyStateGains(tracking_index) {
|
|
16066
|
+
const ret = wasm.alphaBetaSteadyStateGains(tracking_index);
|
|
16067
|
+
if (ret[2]) {
|
|
16068
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16069
|
+
}
|
|
16070
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16071
|
+
}
|
|
16072
|
+
|
|
14851
16073
|
/**
|
|
14852
16074
|
* On-sky angle in degrees between two direction vectors.
|
|
14853
16075
|
* @param {Float64Array} a
|
|
@@ -14882,6 +16104,65 @@ export function angularSeparationCoords(a_lon_deg, a_lat_deg, b_lon_deg, b_lat_d
|
|
|
14882
16104
|
return ret[0];
|
|
14883
16105
|
}
|
|
14884
16106
|
|
|
16107
|
+
/**
|
|
16108
|
+
* Run ARAIM MHSS protection-level computation.
|
|
16109
|
+
*
|
|
16110
|
+
* `geometry.rows` contains satellite IDs, ECEF line-of-sight unit vectors,
|
|
16111
|
+
* optional constellation labels, and elevations in radians. `receiver` is WGS84
|
|
16112
|
+
* geodetic radians plus ellipsoidal height meters. `ism` contains
|
|
16113
|
+
* constellation defaults and optional satellite overrides. Satellite models may
|
|
16114
|
+
* provide paired `effectiveSigmaIntM` and `effectiveSigmaAccM` fields; omit both
|
|
16115
|
+
* to let the core derive them from elevation. `allocation` may be omitted to use
|
|
16116
|
+
* `araimLpv200Allocation()`. Returned `hplM`, `vplM`, `sigmaAccHM`,
|
|
16117
|
+
* `sigmaAccVM`, `emtM`, and per-mode ENU arrays are meters.
|
|
16118
|
+
* @param {any} geometry
|
|
16119
|
+
* @param {any} ism
|
|
16120
|
+
* @param {any} allocation
|
|
16121
|
+
* @returns {any}
|
|
16122
|
+
*/
|
|
16123
|
+
export function araim(geometry, ism, allocation) {
|
|
16124
|
+
const ret = wasm.araim(geometry, ism, allocation);
|
|
16125
|
+
if (ret[2]) {
|
|
16126
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16127
|
+
}
|
|
16128
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16129
|
+
}
|
|
16130
|
+
|
|
16131
|
+
/**
|
|
16132
|
+
* Enumerate ARAIM fault hypotheses for the given geometry, ISM, and allocation.
|
|
16133
|
+
*
|
|
16134
|
+
* Inputs mirror `araim`. The returned priors are probabilities. Excluded
|
|
16135
|
+
* satellites are string tokens such as `"G01"`, and excluded constellations are
|
|
16136
|
+
* labels such as `"GPS"`.
|
|
16137
|
+
* @param {any} geometry
|
|
16138
|
+
* @param {any} ism
|
|
16139
|
+
* @param {any} allocation
|
|
16140
|
+
* @returns {any}
|
|
16141
|
+
*/
|
|
16142
|
+
export function araimFaultModes(geometry, ism, allocation) {
|
|
16143
|
+
const ret = wasm.araimFaultModes(geometry, ism, allocation);
|
|
16144
|
+
if (ret[2]) {
|
|
16145
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16146
|
+
}
|
|
16147
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16148
|
+
}
|
|
16149
|
+
|
|
16150
|
+
/**
|
|
16151
|
+
* LPV-200 ARAIM integrity and continuity allocation.
|
|
16152
|
+
*
|
|
16153
|
+
* The returned object can be passed to `araim`. Probability fields are
|
|
16154
|
+
* dimensionless, `pEmt` defaults to `1e-5`, and `maxFaultOrder` is an integer
|
|
16155
|
+
* fault order.
|
|
16156
|
+
* @returns {any}
|
|
16157
|
+
*/
|
|
16158
|
+
export function araimLpv200Allocation() {
|
|
16159
|
+
const ret = wasm.araimLpv200Allocation();
|
|
16160
|
+
if (ret[2]) {
|
|
16161
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16162
|
+
}
|
|
16163
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16164
|
+
}
|
|
16165
|
+
|
|
14885
16166
|
/**
|
|
14886
16167
|
* Evaluate NRLMSISE-00 neutral-atmosphere density and temperature.
|
|
14887
16168
|
*
|
|
@@ -15047,6 +16328,87 @@ export function carrierFrequencyHz(system, band) {
|
|
|
15047
16328
|
return ret[0] === 0 ? undefined : ret[1];
|
|
15048
16329
|
}
|
|
15049
16330
|
|
|
16331
|
+
/**
|
|
16332
|
+
* CA-CFAR false alarm probability from searched-cell count, absolute
|
|
16333
|
+
* threshold, and mean noise level.
|
|
16334
|
+
* @param {number} searched_cells
|
|
16335
|
+
* @param {number} threshold
|
|
16336
|
+
* @param {number} noise_level
|
|
16337
|
+
* @returns {number}
|
|
16338
|
+
*/
|
|
16339
|
+
export function cfarCaFalseAlarmProbability(searched_cells, threshold, noise_level) {
|
|
16340
|
+
const ret = wasm.cfarCaFalseAlarmProbability(searched_cells, threshold, noise_level);
|
|
16341
|
+
if (ret[2]) {
|
|
16342
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16343
|
+
}
|
|
16344
|
+
return ret[0];
|
|
16345
|
+
}
|
|
16346
|
+
|
|
16347
|
+
/**
|
|
16348
|
+
* CA-CFAR threshold multiplier from searched-cell count and target false alarm
|
|
16349
|
+
* probability.
|
|
16350
|
+
* @param {number} searched_cells
|
|
16351
|
+
* @param {number} false_alarm_probability
|
|
16352
|
+
* @returns {number}
|
|
16353
|
+
*/
|
|
16354
|
+
export function cfarCaMultiplierFromPfa(searched_cells, false_alarm_probability) {
|
|
16355
|
+
const ret = wasm.cfarCaMultiplierFromPfa(searched_cells, false_alarm_probability);
|
|
16356
|
+
if (ret[2]) {
|
|
16357
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16358
|
+
}
|
|
16359
|
+
return ret[0];
|
|
16360
|
+
}
|
|
16361
|
+
|
|
16362
|
+
/**
|
|
16363
|
+
* CA-CFAR false alarm probability from searched-cell count and multiplier.
|
|
16364
|
+
* @param {number} searched_cells
|
|
16365
|
+
* @param {number} multiplier
|
|
16366
|
+
* @returns {number}
|
|
16367
|
+
*/
|
|
16368
|
+
export function cfarCaPfaFromMultiplier(searched_cells, multiplier) {
|
|
16369
|
+
const ret = wasm.cfarCaPfaFromMultiplier(searched_cells, multiplier);
|
|
16370
|
+
if (ret[2]) {
|
|
16371
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16372
|
+
}
|
|
16373
|
+
return ret[0];
|
|
16374
|
+
}
|
|
16375
|
+
|
|
16376
|
+
/**
|
|
16377
|
+
* CA-CFAR absolute threshold from searched-cell count, target false alarm
|
|
16378
|
+
* probability, and mean noise level.
|
|
16379
|
+
* @param {number} searched_cells
|
|
16380
|
+
* @param {number} false_alarm_probability
|
|
16381
|
+
* @param {number} noise_level
|
|
16382
|
+
* @returns {number}
|
|
16383
|
+
*/
|
|
16384
|
+
export function cfarCaThreshold(searched_cells, false_alarm_probability, noise_level) {
|
|
16385
|
+
const ret = wasm.cfarCaThreshold(searched_cells, false_alarm_probability, noise_level);
|
|
16386
|
+
if (ret[2]) {
|
|
16387
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16388
|
+
}
|
|
16389
|
+
return ret[0];
|
|
16390
|
+
}
|
|
16391
|
+
|
|
16392
|
+
/**
|
|
16393
|
+
* Compute the closed-form Chan-Ho seed used by [`locateSource`].
|
|
16394
|
+
*
|
|
16395
|
+
* `mode` is `"toa"`, `"tdoa"`, or `{ mode: "tdoa", referenceSensor }`.
|
|
16396
|
+
* Per-sensor speed overrides are not used by the closed-form equations, but
|
|
16397
|
+
* they are used by [`locateSource`] during iterative refinement.
|
|
16398
|
+
* @param {any} sensors
|
|
16399
|
+
* @param {any} arrival_times_s
|
|
16400
|
+
* @param {number} propagation_speed_m_s
|
|
16401
|
+
* @param {any} mode
|
|
16402
|
+
* @returns {any}
|
|
16403
|
+
*/
|
|
16404
|
+
export function chanHoInitialGuess(sensors, arrival_times_s, propagation_speed_m_s, mode) {
|
|
16405
|
+
const ret = wasm.chanHoInitialGuess(sensors, arrival_times_s, propagation_speed_m_s, mode);
|
|
16406
|
+
if (ret[2]) {
|
|
16407
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16408
|
+
}
|
|
16409
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16410
|
+
}
|
|
16411
|
+
|
|
15050
16412
|
/**
|
|
15051
16413
|
* Returns `true` when a diff has any findings.
|
|
15052
16414
|
* @param {any} diff
|
|
@@ -15198,6 +16560,28 @@ export function collisionProbability(object1, object2, hard_body_radius_km, meth
|
|
|
15198
16560
|
return CollisionProbability.__wrap(ret[0]);
|
|
15199
16561
|
}
|
|
15200
16562
|
|
|
16563
|
+
/**
|
|
16564
|
+
* Compute one or more Allan-family curves with a selected tau grid and gap
|
|
16565
|
+
* policy.
|
|
16566
|
+
*
|
|
16567
|
+
* `input` is `{ series, tau0S, options? }`. `series.kind` may be
|
|
16568
|
+
* `"phaseSeconds"`, `"fractionalFrequency"`, `"phaseSecondsWithGaps"`, or
|
|
16569
|
+
* `"fractionalFrequencyWithGaps"`; gap series use `null` for missing samples.
|
|
16570
|
+
* `options.estimators` is `"standard"`, `"all"`, `"none"`, or a boolean flag
|
|
16571
|
+
* object. `options.tauGrid` is `"octave"`, `"all"`, or
|
|
16572
|
+
* `{ kind: "explicit", averagingFactors }`. `tau0S` and all returned `tauS`
|
|
16573
|
+
* values are seconds.
|
|
16574
|
+
* @param {any} input
|
|
16575
|
+
* @returns {any}
|
|
16576
|
+
*/
|
|
16577
|
+
export function computeAllanDeviations(input) {
|
|
16578
|
+
const ret = wasm.computeAllanDeviations(input);
|
|
16579
|
+
if (ret[2]) {
|
|
16580
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
16581
|
+
}
|
|
16582
|
+
return takeFromExternrefTable0(ret[0]);
|
|
16583
|
+
}
|
|
16584
|
+
|
|
15201
16585
|
/**
|
|
15202
16586
|
* Coherently correlate interleaved IQ samples against a GPS C/A PRN replica.
|
|
15203
16587
|
* `iq` is `[i0, q0, i1, q1, ...]`.
|
|
@@ -15455,6 +16839,12 @@ export function decodeRtcmStream(bytes) {
|
|
|
15455
16839
|
}
|
|
15456
16840
|
|
|
15457
16841
|
/**
|
|
16842
|
+
* Decode a raw SBAS message.
|
|
16843
|
+
*
|
|
16844
|
+
* `form` is `"framed250"` for a 32-byte message with CRC or `"body226"` for a
|
|
16845
|
+
* 29-byte body. The result contains `messageType`, `form`, legacy debug
|
|
16846
|
+
* `kind`, and `message`, a structured decoded payload. Parse failures are
|
|
16847
|
+
* thrown as `Error`.
|
|
15458
16848
|
* @param {Uint8Array} bytes
|
|
15459
16849
|
* @param {string | null} [form]
|
|
15460
16850
|
* @returns {any}
|
|
@@ -15688,6 +17078,26 @@ export function dopplerToRangeRate(doppler_hz, carrier_hz) {
|
|
|
15688
17078
|
return ret[0];
|
|
15689
17079
|
}
|
|
15690
17080
|
|
|
17081
|
+
/**
|
|
17082
|
+
* Convert a DTED tile tree into canonical memory-mappable terrain store bytes.
|
|
17083
|
+
*
|
|
17084
|
+
* The returned `Uint8Array` can be passed to [`MmapTerrain.fromBytes`] or
|
|
17085
|
+
* [`MmapTerrain.fromVec`]. Posting payloads are decoded orthometric metres.
|
|
17086
|
+
* @param {string} root
|
|
17087
|
+
* @returns {Uint8Array}
|
|
17088
|
+
*/
|
|
17089
|
+
export function dtedTreeToMmapStore(root) {
|
|
17090
|
+
const ptr0 = passStringToWasm0(root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
17091
|
+
const len0 = WASM_VECTOR_LEN;
|
|
17092
|
+
const ret = wasm.dtedTreeToMmapStore(ptr0, len0);
|
|
17093
|
+
if (ret[3]) {
|
|
17094
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
17095
|
+
}
|
|
17096
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
17097
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
17098
|
+
return v2;
|
|
17099
|
+
}
|
|
17100
|
+
|
|
15691
17101
|
/**
|
|
15692
17102
|
* Angular radius in degrees of Earth as seen from each satellite position.
|
|
15693
17103
|
* @param {Float64Array} satellite_position_km
|
|
@@ -16067,20 +17477,53 @@ export function estimateDecay(drag, request) {
|
|
|
16067
17477
|
}
|
|
16068
17478
|
|
|
16069
17479
|
/**
|
|
16070
|
-
* Estimate decay using per-epoch values from a parsed space-weather table.
|
|
16071
|
-
* @param {DragForce} drag
|
|
16072
|
-
* @param {SpaceWeatherTable} table
|
|
16073
|
-
* @param {any} request
|
|
16074
|
-
* @returns {any}
|
|
17480
|
+
* Estimate decay using per-epoch values from a parsed space-weather table.
|
|
17481
|
+
* @param {DragForce} drag
|
|
17482
|
+
* @param {SpaceWeatherTable} table
|
|
17483
|
+
* @param {any} request
|
|
17484
|
+
* @returns {any}
|
|
17485
|
+
*/
|
|
17486
|
+
export function estimateDecayWithSpaceWeather(drag, table, request) {
|
|
17487
|
+
_assertClass(drag, DragForce);
|
|
17488
|
+
_assertClass(table, SpaceWeatherTable);
|
|
17489
|
+
const ret = wasm.estimateDecayWithSpaceWeather(drag.__wbg_ptr, table.__wbg_ptr, request);
|
|
17490
|
+
if (ret[2]) {
|
|
17491
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
17492
|
+
}
|
|
17493
|
+
return takeFromExternrefTable0(ret[0]);
|
|
17494
|
+
}
|
|
17495
|
+
|
|
17496
|
+
/**
|
|
17497
|
+
* Exponentially weighted moving-average update.
|
|
17498
|
+
*
|
|
17499
|
+
* `alpha` must be in `[0, 1]`; the returned value is
|
|
17500
|
+
* `previous + alpha * (sample - previous)`.
|
|
17501
|
+
* @param {number} previous
|
|
17502
|
+
* @param {number} sample
|
|
17503
|
+
* @param {number} alpha
|
|
17504
|
+
* @returns {number}
|
|
17505
|
+
*/
|
|
17506
|
+
export function ewmaUpdate(previous, sample, alpha) {
|
|
17507
|
+
const ret = wasm.ewmaUpdate(previous, sample, alpha);
|
|
17508
|
+
if (ret[2]) {
|
|
17509
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
17510
|
+
}
|
|
17511
|
+
return ret[0];
|
|
17512
|
+
}
|
|
17513
|
+
|
|
17514
|
+
/**
|
|
17515
|
+
* EWMA update with `alpha = 1 / 2^shift`.
|
|
17516
|
+
* @param {number} previous
|
|
17517
|
+
* @param {number} sample
|
|
17518
|
+
* @param {number} shift
|
|
17519
|
+
* @returns {number}
|
|
16075
17520
|
*/
|
|
16076
|
-
export function
|
|
16077
|
-
|
|
16078
|
-
_assertClass(table, SpaceWeatherTable);
|
|
16079
|
-
const ret = wasm.estimateDecayWithSpaceWeather(drag.__wbg_ptr, table.__wbg_ptr, request);
|
|
17521
|
+
export function ewmaUpdatePowerOfTwo(previous, sample, shift) {
|
|
17522
|
+
const ret = wasm.ewmaUpdatePowerOfTwo(previous, sample, shift);
|
|
16080
17523
|
if (ret[2]) {
|
|
16081
17524
|
throw takeFromExternrefTable0(ret[1]);
|
|
16082
17525
|
}
|
|
16083
|
-
return
|
|
17526
|
+
return ret[0];
|
|
16084
17527
|
}
|
|
16085
17528
|
|
|
16086
17529
|
/**
|
|
@@ -16913,6 +18356,25 @@ export function gpsUtcOffsetS(year, month, day) {
|
|
|
16913
18356
|
return ret;
|
|
16914
18357
|
}
|
|
16915
18358
|
|
|
18359
|
+
/**
|
|
18360
|
+
* Overlapping Hadamard deviation for explicit averaging factors.
|
|
18361
|
+
*
|
|
18362
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
18363
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
18364
|
+
* `{ tauS, deviation, n }`.
|
|
18365
|
+
* @param {any} series
|
|
18366
|
+
* @param {number} tau0_s
|
|
18367
|
+
* @param {any} averaging_factors
|
|
18368
|
+
* @returns {any}
|
|
18369
|
+
*/
|
|
18370
|
+
export function hadamardDeviation(series, tau0_s, averaging_factors) {
|
|
18371
|
+
const ret = wasm.hadamardDeviation(series, tau0_s, averaging_factors);
|
|
18372
|
+
if (ret[2]) {
|
|
18373
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18374
|
+
}
|
|
18375
|
+
return takeFromExternrefTable0(ret[0]);
|
|
18376
|
+
}
|
|
18377
|
+
|
|
16916
18378
|
/**
|
|
16917
18379
|
* Trace of the Gauss-Newton Hessian approximation `J^T J`: the sum of the
|
|
16918
18380
|
* squared column norms of the Jacobian, with no inverse formed.
|
|
@@ -17022,6 +18484,47 @@ export function iodHerrickGibbs(r1, r2, r3, jd1, jd2, jd3) {
|
|
|
17022
18484
|
return IodVelocity.__wrap(ret[0]);
|
|
17023
18485
|
}
|
|
17024
18486
|
|
|
18487
|
+
/**
|
|
18488
|
+
* Build an IONEX vertical-TEC product from flat node samples.
|
|
18489
|
+
*
|
|
18490
|
+
* `samples` is an array of `{ epochJ2000S, latDeg, lonDeg, vtecTecu,
|
|
18491
|
+
* rmsTecu? }` objects. Epochs are integer seconds since J2000, coordinates are
|
|
18492
|
+
* degrees, and TEC/RMS values are TECU. `shellHeightKm` and `baseRadiusKm` are
|
|
18493
|
+
* kilometers. Validation errors from the core sample builder are thrown as
|
|
18494
|
+
* `RangeError`.
|
|
18495
|
+
* @param {any} samples
|
|
18496
|
+
* @param {number} shell_height_km
|
|
18497
|
+
* @param {number} base_radius_km
|
|
18498
|
+
* @param {number} exponent
|
|
18499
|
+
* @returns {Ionex}
|
|
18500
|
+
*/
|
|
18501
|
+
export function ionexFromNodeSamples(samples, shell_height_km, base_radius_km, exponent) {
|
|
18502
|
+
const ret = wasm.ionexFromNodeSamples(samples, shell_height_km, base_radius_km, exponent);
|
|
18503
|
+
if (ret[2]) {
|
|
18504
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18505
|
+
}
|
|
18506
|
+
return Ionex.__wrap(ret[0]);
|
|
18507
|
+
}
|
|
18508
|
+
|
|
18509
|
+
/**
|
|
18510
|
+
* Build an IONEX vertical-TEC product from full-grid samples.
|
|
18511
|
+
*
|
|
18512
|
+
* `samples.mapEpochsJ2000S` are integer seconds since J2000. Latitude and
|
|
18513
|
+
* longitude nodes and `dlatDeg` / `dlonDeg` are degrees. `tecMaps` and
|
|
18514
|
+
* `rmsMaps` are TECU and indexed `[map][iLat][iLon]`. The shell height and
|
|
18515
|
+
* base radius are kilometers. Validation errors from the core sample builder
|
|
18516
|
+
* are thrown as `RangeError`.
|
|
18517
|
+
* @param {any} samples
|
|
18518
|
+
* @returns {Ionex}
|
|
18519
|
+
*/
|
|
18520
|
+
export function ionexFromSamples(samples) {
|
|
18521
|
+
const ret = wasm.ionexFromSamples(samples);
|
|
18522
|
+
if (ret[2]) {
|
|
18523
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18524
|
+
}
|
|
18525
|
+
return Ionex.__wrap(ret[0]);
|
|
18526
|
+
}
|
|
18527
|
+
|
|
17025
18528
|
/**
|
|
17026
18529
|
* Ionosphere-free code or meter-valued phase combination, metres.
|
|
17027
18530
|
* @param {number} obs1_m
|
|
@@ -17152,6 +18655,25 @@ export function jarqueBera(x) {
|
|
|
17152
18655
|
return takeFromExternrefTable0(ret[0]);
|
|
17153
18656
|
}
|
|
17154
18657
|
|
|
18658
|
+
/**
|
|
18659
|
+
* Steady-state gains for a scalar constant-velocity Kalman filter.
|
|
18660
|
+
*
|
|
18661
|
+
* `trackingIndex`, `dt`, and `measurementVariance` must be positive. Returns
|
|
18662
|
+
* `{ positionGain, rateGain }`; `rateGain * dt` equals the alpha-beta `beta`
|
|
18663
|
+
* gain for the same tracking index.
|
|
18664
|
+
* @param {number} tracking_index
|
|
18665
|
+
* @param {number} dt
|
|
18666
|
+
* @param {number} measurement_variance
|
|
18667
|
+
* @returns {any}
|
|
18668
|
+
*/
|
|
18669
|
+
export function kalmanCvSteadyStateGains(tracking_index, dt, measurement_variance) {
|
|
18670
|
+
const ret = wasm.kalmanCvSteadyStateGains(tracking_index, dt, measurement_variance);
|
|
18671
|
+
if (ret[2]) {
|
|
18672
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
18673
|
+
}
|
|
18674
|
+
return takeFromExternrefTable0(ret[0]);
|
|
18675
|
+
}
|
|
18676
|
+
|
|
17155
18677
|
/**
|
|
17156
18678
|
* GPS broadcast Klobuchar ionospheric group delay in the model's native units
|
|
17157
18679
|
* (positive metres).
|
|
@@ -17693,6 +19215,29 @@ export function loadSp3(bytes) {
|
|
|
17693
19215
|
return Sp3.__wrap(ret[0]);
|
|
17694
19216
|
}
|
|
17695
19217
|
|
|
19218
|
+
/**
|
|
19219
|
+
* Locate a source from sensor arrival times.
|
|
19220
|
+
*
|
|
19221
|
+
* `sensors` is an array of `{ positionM, propagationSpeedMS? }`; each
|
|
19222
|
+
* `positionM` is a 2D or 3D Cartesian metre vector and all sensors must share
|
|
19223
|
+
* the same dimension. `arrivalTimesS` is an aligned seconds array,
|
|
19224
|
+
* `propagationSpeedMS` is the call-level speed in metres per second, and
|
|
19225
|
+
* `options` may include `mode`, `referenceSensor`, `timingSigmaS`, `loss`,
|
|
19226
|
+
* `fScaleS`, `ftol`, `xtol`, `gtol`, and `maxNfev`.
|
|
19227
|
+
* @param {any} sensors
|
|
19228
|
+
* @param {any} arrival_times_s
|
|
19229
|
+
* @param {number} propagation_speed_m_s
|
|
19230
|
+
* @param {any} options
|
|
19231
|
+
* @returns {any}
|
|
19232
|
+
*/
|
|
19233
|
+
export function locateSource(sensors, arrival_times_s, propagation_speed_m_s, options) {
|
|
19234
|
+
const ret = wasm.locateSource(sensors, arrival_times_s, propagation_speed_m_s, options);
|
|
19235
|
+
if (ret[2]) {
|
|
19236
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19237
|
+
}
|
|
19238
|
+
return takeFromExternrefTable0(ret[0]);
|
|
19239
|
+
}
|
|
19240
|
+
|
|
17696
19241
|
/**
|
|
17697
19242
|
* @param {bigint} start_unix_us
|
|
17698
19243
|
* @param {bigint} end_unix_us
|
|
@@ -17744,6 +19289,33 @@ export function lvlhRotation(position_km, velocity_km_s) {
|
|
|
17744
19289
|
return v3;
|
|
17745
19290
|
}
|
|
17746
19291
|
|
|
19292
|
+
/**
|
|
19293
|
+
* Gaussian consistency factor applied by [`madSpread`].
|
|
19294
|
+
* @returns {number}
|
|
19295
|
+
*/
|
|
19296
|
+
export function madGaussianConsistency() {
|
|
19297
|
+
const ret = wasm.madGaussianConsistency();
|
|
19298
|
+
return ret;
|
|
19299
|
+
}
|
|
19300
|
+
|
|
19301
|
+
/**
|
|
19302
|
+
* Median absolute deviation spread estimate.
|
|
19303
|
+
*
|
|
19304
|
+
* `values` is a JS number array. The returned spread is
|
|
19305
|
+
* `MAD_GAUSSIAN_CONSISTENCY * median(abs(value - median(values)))`, floored by
|
|
19306
|
+
* `scaleFloor`.
|
|
19307
|
+
* @param {any} values
|
|
19308
|
+
* @param {number} scale_floor
|
|
19309
|
+
* @returns {number}
|
|
19310
|
+
*/
|
|
19311
|
+
export function madSpread(values, scale_floor) {
|
|
19312
|
+
const ret = wasm.madSpread(values, scale_floor);
|
|
19313
|
+
if (ret[2]) {
|
|
19314
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19315
|
+
}
|
|
19316
|
+
return ret[0];
|
|
19317
|
+
}
|
|
19318
|
+
|
|
17747
19319
|
/**
|
|
17748
19320
|
* @param {number} radius_km
|
|
17749
19321
|
* @returns {number}
|
|
@@ -17923,6 +19495,25 @@ export function meridianTransitsSpk(spk, body, station, start_unix_us, end_unix_
|
|
|
17923
19495
|
return takeFromExternrefTable0(ret[0]);
|
|
17924
19496
|
}
|
|
17925
19497
|
|
|
19498
|
+
/**
|
|
19499
|
+
* Modified Allan deviation for explicit averaging factors.
|
|
19500
|
+
*
|
|
19501
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
19502
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
19503
|
+
* `{ tauS, deviation, n }`.
|
|
19504
|
+
* @param {any} series
|
|
19505
|
+
* @param {number} tau0_s
|
|
19506
|
+
* @param {any} averaging_factors
|
|
19507
|
+
* @returns {any}
|
|
19508
|
+
*/
|
|
19509
|
+
export function modifiedAdev(series, tau0_s, averaging_factors) {
|
|
19510
|
+
const ret = wasm.modifiedAdev(series, tau0_s, averaging_factors);
|
|
19511
|
+
if (ret[2]) {
|
|
19512
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19513
|
+
}
|
|
19514
|
+
return takeFromExternrefTable0(ret[0]);
|
|
19515
|
+
}
|
|
19516
|
+
|
|
17926
19517
|
/**
|
|
17927
19518
|
* Mean, variance, skewness, and excess kurtosis of a residual set in one pass.
|
|
17928
19519
|
*
|
|
@@ -18134,6 +19725,65 @@ export function nequickGStecTecu(_eval) {
|
|
|
18134
19725
|
return ret[0];
|
|
18135
19726
|
}
|
|
18136
19727
|
|
|
19728
|
+
/**
|
|
19729
|
+
* Scalar normalized innovation squared statistic.
|
|
19730
|
+
* @param {number} innovation
|
|
19731
|
+
* @param {number} innovation_variance
|
|
19732
|
+
* @returns {number}
|
|
19733
|
+
*/
|
|
19734
|
+
export function nis(innovation, innovation_variance) {
|
|
19735
|
+
const ret = wasm.nis(innovation, innovation_variance);
|
|
19736
|
+
if (ret[2]) {
|
|
19737
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19738
|
+
}
|
|
19739
|
+
return ret[0];
|
|
19740
|
+
}
|
|
19741
|
+
|
|
19742
|
+
/**
|
|
19743
|
+
* Bar-Shalom expected NIS value for `dof` measurement degrees of freedom.
|
|
19744
|
+
* @param {number} dof
|
|
19745
|
+
* @returns {number}
|
|
19746
|
+
*/
|
|
19747
|
+
export function nisExpectedValue(dof) {
|
|
19748
|
+
const ret = wasm.nisExpectedValue(dof);
|
|
19749
|
+
if (ret[2]) {
|
|
19750
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19751
|
+
}
|
|
19752
|
+
return ret[0];
|
|
19753
|
+
}
|
|
19754
|
+
|
|
19755
|
+
/**
|
|
19756
|
+
* Test a scalar innovation against a chi-square NIS gate.
|
|
19757
|
+
*
|
|
19758
|
+
* Returns `{ nis, threshold, inGate, dof }`, with `confidence` in `(0, 1)`.
|
|
19759
|
+
* @param {number} innovation
|
|
19760
|
+
* @param {number} innovation_variance
|
|
19761
|
+
* @param {number} dof
|
|
19762
|
+
* @param {number} confidence
|
|
19763
|
+
* @returns {any}
|
|
19764
|
+
*/
|
|
19765
|
+
export function nisGate(innovation, innovation_variance, dof, confidence) {
|
|
19766
|
+
const ret = wasm.nisGate(innovation, innovation_variance, dof, confidence);
|
|
19767
|
+
if (ret[2]) {
|
|
19768
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19769
|
+
}
|
|
19770
|
+
return takeFromExternrefTable0(ret[0]);
|
|
19771
|
+
}
|
|
19772
|
+
|
|
19773
|
+
/**
|
|
19774
|
+
* Chi-square NIS gate threshold for `dof` and confidence probability.
|
|
19775
|
+
* @param {number} dof
|
|
19776
|
+
* @param {number} confidence
|
|
19777
|
+
* @returns {number}
|
|
19778
|
+
*/
|
|
19779
|
+
export function nisGateThreshold(dof, confidence) {
|
|
19780
|
+
const ret = wasm.nisGateThreshold(dof, confidence);
|
|
19781
|
+
if (ret[2]) {
|
|
19782
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19783
|
+
}
|
|
19784
|
+
return ret[0];
|
|
19785
|
+
}
|
|
19786
|
+
|
|
18137
19787
|
/**
|
|
18138
19788
|
* Parse bytes and return grouped epoch snapshots directly.
|
|
18139
19789
|
* @param {Uint8Array} bytes
|
|
@@ -18217,6 +19867,20 @@ export function normalCovariance(jacobian, m, n, variance_scale) {
|
|
|
18217
19867
|
return v2;
|
|
18218
19868
|
}
|
|
18219
19869
|
|
|
19870
|
+
/**
|
|
19871
|
+
* Scalar normalized innovation `innovation / sqrt(innovationVariance)`.
|
|
19872
|
+
* @param {number} innovation
|
|
19873
|
+
* @param {number} innovation_variance
|
|
19874
|
+
* @returns {number}
|
|
19875
|
+
*/
|
|
19876
|
+
export function normalizedInnovation(innovation, innovation_variance) {
|
|
19877
|
+
const ret = wasm.normalizedInnovation(innovation, innovation_variance);
|
|
19878
|
+
if (ret[2]) {
|
|
19879
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19880
|
+
}
|
|
19881
|
+
return ret[0];
|
|
19882
|
+
}
|
|
19883
|
+
|
|
18220
19884
|
/**
|
|
18221
19885
|
* Build the NTRIP connection request bytes for a config object.
|
|
18222
19886
|
* @param {any} config
|
|
@@ -18232,6 +19896,23 @@ export function ntripRequestBytes(config) {
|
|
|
18232
19896
|
return v1;
|
|
18233
19897
|
}
|
|
18234
19898
|
|
|
19899
|
+
/**
|
|
19900
|
+
* Missing-position sentinel used in failed observable-state batch elements.
|
|
19901
|
+
*
|
|
19902
|
+
* The returned JS value is `[NaN, NaN, NaN]`, matching
|
|
19903
|
+
* `sidereon_core::ephemeris::OBSERVABLE_STATE_MISSING_POSITION_ECEF_M`. Always
|
|
19904
|
+
* check `elementResults[i].ok` or `statuses[i]` before using
|
|
19905
|
+
* `positionsEcefM[i]`.
|
|
19906
|
+
* @returns {any}
|
|
19907
|
+
*/
|
|
19908
|
+
export function observableStateMissingPositionEcefM() {
|
|
19909
|
+
const ret = wasm.observableStateMissingPositionEcefM();
|
|
19910
|
+
if (ret[2]) {
|
|
19911
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
19912
|
+
}
|
|
19913
|
+
return takeFromExternrefTable0(ret[0]);
|
|
19914
|
+
}
|
|
19915
|
+
|
|
18235
19916
|
/**
|
|
18236
19917
|
* Predict observables for one satellite from a broadcast ephemeris store.
|
|
18237
19918
|
* Delegates to `sidereon_core::observables::predict`.
|
|
@@ -18419,6 +20100,25 @@ export function orthometricHeightM(ellipsoidal_height_m, lat_rad, lon_rad) {
|
|
|
18419
20100
|
return ret;
|
|
18420
20101
|
}
|
|
18421
20102
|
|
|
20103
|
+
/**
|
|
20104
|
+
* Fully overlapping Allan deviation for explicit averaging factors.
|
|
20105
|
+
*
|
|
20106
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
20107
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
20108
|
+
* `{ tauS, deviation, n }`.
|
|
20109
|
+
* @param {any} series
|
|
20110
|
+
* @param {number} tau0_s
|
|
20111
|
+
* @param {any} averaging_factors
|
|
20112
|
+
* @returns {any}
|
|
20113
|
+
*/
|
|
20114
|
+
export function overlappingAdev(series, tau0_s, averaging_factors) {
|
|
20115
|
+
const ret = wasm.overlappingAdev(series, tau0_s, averaging_factors);
|
|
20116
|
+
if (ret[2]) {
|
|
20117
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
20118
|
+
}
|
|
20119
|
+
return takeFromExternrefTable0(ret[0]);
|
|
20120
|
+
}
|
|
20121
|
+
|
|
18422
20122
|
/**
|
|
18423
20123
|
* Parallactic angle (degrees) of a target at a station.
|
|
18424
20124
|
*
|
|
@@ -19573,6 +21273,22 @@ export function sampleSp3Ephemeris(sp3, satellites, start_j2000_s, stop_j2000_s,
|
|
|
19573
21273
|
return takeFromExternrefTable0(ret[0]);
|
|
19574
21274
|
}
|
|
19575
21275
|
|
|
21276
|
+
/**
|
|
21277
|
+
* Convert an SBAS satellite token such as `"S29"` to broadcast PRN number
|
|
21278
|
+
* such as `129`. Returns `null` for non-SBAS satellites.
|
|
21279
|
+
* @param {string} sat
|
|
21280
|
+
* @returns {any}
|
|
21281
|
+
*/
|
|
21282
|
+
export function satToSbasPrn(sat) {
|
|
21283
|
+
const ptr0 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
21284
|
+
const len0 = WASM_VECTOR_LEN;
|
|
21285
|
+
const ret = wasm.satToSbasPrn(ptr0, len0);
|
|
21286
|
+
if (ret[2]) {
|
|
21287
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
21288
|
+
}
|
|
21289
|
+
return takeFromExternrefTable0(ret[0]);
|
|
21290
|
+
}
|
|
21291
|
+
|
|
19576
21292
|
/**
|
|
19577
21293
|
* Apparent visual magnitude of a sunlit body from a diffuse-sphere phase law.
|
|
19578
21294
|
*
|
|
@@ -19596,6 +21312,10 @@ export function satelliteVisualMagnitude(range_km, phase_angle_deg, standard_mag
|
|
|
19596
21312
|
}
|
|
19597
21313
|
|
|
19598
21314
|
/**
|
|
21315
|
+
* SBAS-corrected broadcast satellite position and clock.
|
|
21316
|
+
*
|
|
21317
|
+
* Position is ECEF meters and clock is seconds at `tJ2000S`, seconds since
|
|
21318
|
+
* J2000. Returns `null` when the selected SBAS mode cannot provide a state.
|
|
19599
21319
|
* @param {BroadcastEphemeris} broadcast
|
|
19600
21320
|
* @param {SbasCorrectionStore} store
|
|
19601
21321
|
* @param {string} geo
|
|
@@ -19620,6 +21340,17 @@ export function sbasCorrectedState(broadcast, store, geo, sat, t_j2000_s, mode)
|
|
|
19620
21340
|
return takeFromExternrefTable0(ret[0]);
|
|
19621
21341
|
}
|
|
19622
21342
|
|
|
21343
|
+
/**
|
|
21344
|
+
* Convert an SBAS broadcast PRN number such as `129` to an SBAS satellite
|
|
21345
|
+
* token such as `"S29"`. Returns `null` when the PRN is outside the SBAS range.
|
|
21346
|
+
* @param {number} broadcast_prn
|
|
21347
|
+
* @returns {any}
|
|
21348
|
+
*/
|
|
21349
|
+
export function sbasPrnToSat(broadcast_prn) {
|
|
21350
|
+
const ret = wasm.sbasPrnToSat(broadcast_prn);
|
|
21351
|
+
return ret;
|
|
21352
|
+
}
|
|
21353
|
+
|
|
19623
21354
|
/**
|
|
19624
21355
|
* Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
|
|
19625
21356
|
*
|
|
@@ -20177,6 +21908,11 @@ export function solveRtkFloat(config) {
|
|
|
20177
21908
|
}
|
|
20178
21909
|
|
|
20179
21910
|
/**
|
|
21911
|
+
* Solve SPP using an SBAS-corrected broadcast source and optional SBAS iono.
|
|
21912
|
+
*
|
|
21913
|
+
* The returned solution uses the same units as `solveSpp`: ECEF meters,
|
|
21914
|
+
* receiver clock seconds, residual meters, and optional geodetic radians plus
|
|
21915
|
+
* ellipsoidal height meters.
|
|
20180
21916
|
* @param {BroadcastEphemeris} broadcast
|
|
20181
21917
|
* @param {SbasCorrectionStore} store
|
|
20182
21918
|
* @param {string} geo
|
|
@@ -20288,6 +22024,74 @@ export function solveWithFallback(precise, broadcast, request, policy) {
|
|
|
20288
22024
|
return SourcedSolution.__wrap(ret[0]);
|
|
20289
22025
|
}
|
|
20290
22026
|
|
|
22027
|
+
/**
|
|
22028
|
+
* Compute the timing Cramer-Rao lower bound for a proposed source position.
|
|
22029
|
+
*
|
|
22030
|
+
* The covariance is `(H^T H)^-1 * timingSigmaS^2`; position blocks are square
|
|
22031
|
+
* metres and origin-time variance is square seconds.
|
|
22032
|
+
* @param {any} sensors
|
|
22033
|
+
* @param {any} source_position_m
|
|
22034
|
+
* @param {number} propagation_speed_m_s
|
|
22035
|
+
* @param {number} timing_sigma_s
|
|
22036
|
+
* @returns {any}
|
|
22037
|
+
*/
|
|
22038
|
+
export function sourceCrlb(sensors, source_position_m, propagation_speed_m_s, timing_sigma_s) {
|
|
22039
|
+
const ret = wasm.sourceCrlb(sensors, source_position_m, propagation_speed_m_s, timing_sigma_s);
|
|
22040
|
+
if (ret[2]) {
|
|
22041
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22042
|
+
}
|
|
22043
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22044
|
+
}
|
|
22045
|
+
|
|
22046
|
+
/**
|
|
22047
|
+
* Compute timing DOP for a proposed source position.
|
|
22048
|
+
*
|
|
22049
|
+
* `sourcePositionM` is a 2D or 3D Cartesian metre vector in the same frame as
|
|
22050
|
+
* the sensors. The returned DOP values multiply timing sigma in seconds to
|
|
22051
|
+
* produce metres in the caller's Cartesian axes.
|
|
22052
|
+
* @param {any} sensors
|
|
22053
|
+
* @param {any} source_position_m
|
|
22054
|
+
* @param {number} propagation_speed_m_s
|
|
22055
|
+
* @returns {any}
|
|
22056
|
+
*/
|
|
22057
|
+
export function sourceDop(sensors, source_position_m, propagation_speed_m_s) {
|
|
22058
|
+
const ret = wasm.sourceDop(sensors, source_position_m, propagation_speed_m_s);
|
|
22059
|
+
if (ret[2]) {
|
|
22060
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22061
|
+
}
|
|
22062
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22063
|
+
}
|
|
22064
|
+
|
|
22065
|
+
/**
|
|
22066
|
+
* Return the plain mode object for TDOA solves against `referenceSensor`.
|
|
22067
|
+
* @param {number} reference_sensor
|
|
22068
|
+
* @returns {any}
|
|
22069
|
+
*/
|
|
22070
|
+
export function sourceSolveModeTdoa(reference_sensor) {
|
|
22071
|
+
const ret = wasm.sourceSolveModeTdoa(reference_sensor);
|
|
22072
|
+
if (ret[2]) {
|
|
22073
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22074
|
+
}
|
|
22075
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22076
|
+
}
|
|
22077
|
+
|
|
22078
|
+
/**
|
|
22079
|
+
* Return the plain mode value for absolute time-of-arrival solves.
|
|
22080
|
+
* @returns {string}
|
|
22081
|
+
*/
|
|
22082
|
+
export function sourceSolveModeToa() {
|
|
22083
|
+
let deferred1_0;
|
|
22084
|
+
let deferred1_1;
|
|
22085
|
+
try {
|
|
22086
|
+
const ret = wasm.sourceSolveModeToa();
|
|
22087
|
+
deferred1_0 = ret[0];
|
|
22088
|
+
deferred1_1 = ret[1];
|
|
22089
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
22090
|
+
} finally {
|
|
22091
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
22092
|
+
}
|
|
22093
|
+
}
|
|
22094
|
+
|
|
20291
22095
|
/**
|
|
20292
22096
|
* Extract a parsed SP3 product as the canonical precise-ephemeris samples, one
|
|
20293
22097
|
* per real position record in ascending epoch order.
|
|
@@ -20560,6 +22364,37 @@ export function terminatorLatitudeDeg(sub_solar_latitude_deg, sub_solar_longitud
|
|
|
20560
22364
|
return ret[0];
|
|
20561
22365
|
}
|
|
20562
22366
|
|
|
22367
|
+
/**
|
|
22368
|
+
* Return an FNV-1a checksum for terrain store bytes.
|
|
22369
|
+
* @param {Uint8Array} bytes
|
|
22370
|
+
* @returns {bigint}
|
|
22371
|
+
*/
|
|
22372
|
+
export function terrainStoreChecksum64(bytes) {
|
|
22373
|
+
const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
22374
|
+
const len0 = WASM_VECTOR_LEN;
|
|
22375
|
+
const ret = wasm.terrainStoreChecksum64(ptr0, len0);
|
|
22376
|
+
return BigInt.asUintN(64, ret);
|
|
22377
|
+
}
|
|
22378
|
+
|
|
22379
|
+
/**
|
|
22380
|
+
* Time deviation for explicit averaging factors.
|
|
22381
|
+
*
|
|
22382
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
22383
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
22384
|
+
* `{ tauS, deviation, n }`.
|
|
22385
|
+
* @param {any} series
|
|
22386
|
+
* @param {number} tau0_s
|
|
22387
|
+
* @param {any} averaging_factors
|
|
22388
|
+
* @returns {any}
|
|
22389
|
+
*/
|
|
22390
|
+
export function timeDeviation(series, tau0_s, averaging_factors) {
|
|
22391
|
+
const ret = wasm.timeDeviation(series, tau0_s, averaging_factors);
|
|
22392
|
+
if (ret[2]) {
|
|
22393
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
22394
|
+
}
|
|
22395
|
+
return takeFromExternrefTable0(ret[0]);
|
|
22396
|
+
}
|
|
22397
|
+
|
|
20563
22398
|
/**
|
|
20564
22399
|
* Short uppercase identifier for a time scale, e.g. `"GPST"`.
|
|
20565
22400
|
* @param {TimeScale} scale
|
|
@@ -20910,6 +22745,22 @@ export function wideLaneWavelength(f1_hz, f2_hz) {
|
|
|
20910
22745
|
}
|
|
20911
22746
|
return ret[0];
|
|
20912
22747
|
}
|
|
22748
|
+
|
|
22749
|
+
/**
|
|
22750
|
+
* Convert a DTED tile tree and write canonical terrain store bytes to a path.
|
|
22751
|
+
* @param {string} root
|
|
22752
|
+
* @param {string} out_path
|
|
22753
|
+
*/
|
|
22754
|
+
export function writeDtedTreeToMmapStore(root, out_path) {
|
|
22755
|
+
const ptr0 = passStringToWasm0(root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
22756
|
+
const len0 = WASM_VECTOR_LEN;
|
|
22757
|
+
const ptr1 = passStringToWasm0(out_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
22758
|
+
const len1 = WASM_VECTOR_LEN;
|
|
22759
|
+
const ret = wasm.writeDtedTreeToMmapStore(ptr0, len0, ptr1, len1);
|
|
22760
|
+
if (ret[1]) {
|
|
22761
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
22762
|
+
}
|
|
22763
|
+
}
|
|
20913
22764
|
function __wbg_get_imports() {
|
|
20914
22765
|
const import0 = {
|
|
20915
22766
|
__proto__: null,
|
|
@@ -21290,6 +23141,10 @@ function __wbg_get_imports() {
|
|
|
21290
23141
|
const ret = SpkSegment.__wrap(arg0);
|
|
21291
23142
|
return ret;
|
|
21292
23143
|
},
|
|
23144
|
+
__wbg_terrainstoretileindex_new: function(arg0) {
|
|
23145
|
+
const ret = TerrainStoreTileIndex.__wrap(arg0);
|
|
23146
|
+
return ret;
|
|
23147
|
+
},
|
|
21293
23148
|
__wbg_tle_unwrap: function(arg0) {
|
|
21294
23149
|
const ret = Tle.__unwrap(arg0);
|
|
21295
23150
|
return ret;
|
|
@@ -21452,6 +23307,12 @@ const DragForceFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
21452
23307
|
const DtedTerrainFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21453
23308
|
? { register: () => {}, unregister: () => {} }
|
|
21454
23309
|
: new FinalizationRegistry(ptr => wasm.__wbg_dtedterrain_free(ptr, 1));
|
|
23310
|
+
const Egm96FifteenMinuteGeoidFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23311
|
+
? { register: () => {}, unregister: () => {} }
|
|
23312
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_egm96fifteenminutegeoid_free(ptr, 1));
|
|
23313
|
+
const EllipsoidalHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23314
|
+
? { register: () => {}, unregister: () => {} }
|
|
23315
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_ellipsoidalheightm_free(ptr, 1));
|
|
21455
23316
|
const EncounterFrameFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21456
23317
|
? { register: () => {}, unregister: () => {} }
|
|
21457
23318
|
: new FinalizationRegistry(ptr => wasm.__wbg_encounterframe_free(ptr, 1));
|
|
@@ -21560,6 +23421,9 @@ const LookAnglesFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
21560
23421
|
const MappingFactorsFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21561
23422
|
? { register: () => {}, unregister: () => {} }
|
|
21562
23423
|
: new FinalizationRegistry(ptr => wasm.__wbg_mappingfactors_free(ptr, 1));
|
|
23424
|
+
const MmapTerrainFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23425
|
+
? { register: () => {}, unregister: () => {} }
|
|
23426
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_mmapterrain_free(ptr, 1));
|
|
21563
23427
|
const MoonElevationCrossingFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21564
23428
|
? { register: () => {}, unregister: () => {} }
|
|
21565
23429
|
: new FinalizationRegistry(ptr => wasm.__wbg_moonelevationcrossing_free(ptr, 1));
|
|
@@ -21644,6 +23508,9 @@ const OpmSpacecraftFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
|
21644
23508
|
const OpmStateFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21645
23509
|
? { register: () => {}, unregister: () => {} }
|
|
21646
23510
|
: new FinalizationRegistry(ptr => wasm.__wbg_opmstate_free(ptr, 1));
|
|
23511
|
+
const OrthometricHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23512
|
+
? { register: () => {}, unregister: () => {} }
|
|
23513
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_orthometricheightm_free(ptr, 1));
|
|
21647
23514
|
const ParsedTleFileFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21648
23515
|
? { register: () => {}, unregister: () => {} }
|
|
21649
23516
|
: new FinalizationRegistry(ptr => wasm.__wbg_parsedtlefile_free(ptr, 1));
|
|
@@ -21659,6 +23526,9 @@ const PppFixedSolutionFinalization = (typeof FinalizationRegistry === 'undefined
|
|
|
21659
23526
|
const PppFloatSolutionFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21660
23527
|
? { register: () => {}, unregister: () => {} }
|
|
21661
23528
|
: new FinalizationRegistry(ptr => wasm.__wbg_pppfloatsolution_free(ptr, 1));
|
|
23529
|
+
const PreciseEphemerisInterpolantFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23530
|
+
? { register: () => {}, unregister: () => {} }
|
|
23531
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_preciseephemerisinterpolant_free(ptr, 1));
|
|
21662
23532
|
const PreciseEphemerisSampleSourceFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21663
23533
|
? { register: () => {}, unregister: () => {} }
|
|
21664
23534
|
: new FinalizationRegistry(ptr => wasm.__wbg_preciseephemerissamplesource_free(ptr, 1));
|
|
@@ -21785,6 +23655,12 @@ const SsrCorrectionStoreFinalization = (typeof FinalizationRegistry === 'undefin
|
|
|
21785
23655
|
const SunMoonFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21786
23656
|
? { register: () => {}, unregister: () => {} }
|
|
21787
23657
|
: new FinalizationRegistry(ptr => wasm.__wbg_sunmoon_free(ptr, 1));
|
|
23658
|
+
const TerrainGeoidModelFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23659
|
+
? { register: () => {}, unregister: () => {} }
|
|
23660
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_terraingeoidmodel_free(ptr, 1));
|
|
23661
|
+
const TerrainStoreTileIndexFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
23662
|
+
? { register: () => {}, unregister: () => {} }
|
|
23663
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_terrainstoretileindex_free(ptr, 1));
|
|
21788
23664
|
const TleFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
21789
23665
|
? { register: () => {}, unregister: () => {} }
|
|
21790
23666
|
: new FinalizationRegistry(ptr => wasm.__wbg_tle_free(ptr, 1));
|