@neilberkman/sidereon 0.11.1 → 0.12.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/pkg/sidereon.js CHANGED
@@ -3791,6 +3791,12 @@ export class DragForce {
3791
3791
  }
3792
3792
  if (Symbol.dispose) DragForce.prototype[Symbol.dispose] = DragForce.prototype.free;
3793
3793
 
3794
+ /**
3795
+ * A DTED terrain tile cache rooted at a directory of DTED Level 2 files.
3796
+ *
3797
+ * Heights are ORTHOMETRIC terrain elevations in meters. Point order is always
3798
+ * longitude first, then latitude, both in degrees.
3799
+ */
3794
3800
  export class DtedTerrain {
3795
3801
  __destroy_into_raw() {
3796
3802
  const ptr = this.__wbg_ptr;
@@ -3803,6 +3809,30 @@ export class DtedTerrain {
3803
3809
  wasm.__wbg_dtedterrain_free(ptr, 0);
3804
3810
  }
3805
3811
  /**
3812
+ * Batch terrain heights in ORTHOMETRIC meters for longitude-first points.
3813
+ *
3814
+ * `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
3815
+ * `{ longitudeDeg, latitudeDeg }` objects. `options.interpolation` is
3816
+ * `"bilinear"`, `"nearest"`, or `"nearestPosting"`. The return value is
3817
+ * index-aligned to `points`; each entry is `{ ok: true, heightM }` or
3818
+ * `{ ok: false, error }`. Missing tiles evaluate to `0.0`.
3819
+ * @param {any} points
3820
+ * @param {any} options
3821
+ * @returns {any}
3822
+ */
3823
+ heightBatch(points, options) {
3824
+ const ret = wasm.dtedterrain_heightBatch(this.__wbg_ptr, points, options);
3825
+ if (ret[2]) {
3826
+ throw takeFromExternrefTable0(ret[1]);
3827
+ }
3828
+ return takeFromExternrefTable0(ret[0]);
3829
+ }
3830
+ /**
3831
+ * Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
3832
+ *
3833
+ * Longitude and latitude are degrees. The lookup uses bilinear
3834
+ * interpolation. Missing tiles evaluate to `0.0`, matching the core DTED
3835
+ * fallback.
3806
3836
  * @param {number} longitude_deg
3807
3837
  * @param {number} latitude_deg
3808
3838
  * @returns {number}
@@ -3815,6 +3845,11 @@ export class DtedTerrain {
3815
3845
  return ret[0];
3816
3846
  }
3817
3847
  /**
3848
+ * Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
3849
+ *
3850
+ * Longitude and latitude are degrees. `options.interpolation` is
3851
+ * `"bilinear"`, `"nearest"`, or `"nearestPosting"`. Missing tiles evaluate
3852
+ * to `0.0`, matching the core DTED fallback.
3818
3853
  * @param {number} longitude_deg
3819
3854
  * @param {number} latitude_deg
3820
3855
  * @param {any} options
@@ -3828,6 +3863,10 @@ export class DtedTerrain {
3828
3863
  return ret[0];
3829
3864
  }
3830
3865
  /**
3866
+ * Create a DTED terrain reader rooted at `root`.
3867
+ *
3868
+ * The root may contain tile files directly or the nested block layout the
3869
+ * core reader recognizes. Height results are ORTHOMETRIC meters.
3831
3870
  * @param {string} root
3832
3871
  */
3833
3872
  constructor(root) {
@@ -3841,6 +3880,99 @@ export class DtedTerrain {
3841
3880
  }
3842
3881
  if (Symbol.dispose) DtedTerrain.prototype[Symbol.dispose] = DtedTerrain.prototype.free;
3843
3882
 
3883
+ /**
3884
+ * Loaded EGM96 15-arcminute geoid grid for explicit terrain datum conversion.
3885
+ */
3886
+ export class Egm96FifteenMinuteGeoid {
3887
+ static __wrap(ptr) {
3888
+ const obj = Object.create(Egm96FifteenMinuteGeoid.prototype);
3889
+ obj.__wbg_ptr = ptr;
3890
+ Egm96FifteenMinuteGeoidFinalization.register(obj, obj.__wbg_ptr, obj);
3891
+ return obj;
3892
+ }
3893
+ __destroy_into_raw() {
3894
+ const ptr = this.__wbg_ptr;
3895
+ this.__wbg_ptr = 0;
3896
+ Egm96FifteenMinuteGeoidFinalization.unregister(this);
3897
+ return ptr;
3898
+ }
3899
+ free() {
3900
+ const ptr = this.__destroy_into_raw();
3901
+ wasm.__wbg_egm96fifteenminutegeoid_free(ptr, 0);
3902
+ }
3903
+ /**
3904
+ * Load `WW15MGH.DAC` bytes as an EGM96 15-arcminute geoid grid.
3905
+ * @param {Uint8Array} bytes
3906
+ * @returns {Egm96FifteenMinuteGeoid}
3907
+ */
3908
+ static fromWw15mghDacBytes(bytes) {
3909
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
3910
+ const len0 = WASM_VECTOR_LEN;
3911
+ const ret = wasm.egm96fifteenminutegeoid_fromWw15mghDacBytes(ptr0, len0);
3912
+ if (ret[2]) {
3913
+ throw takeFromExternrefTable0(ret[1]);
3914
+ }
3915
+ return Egm96FifteenMinuteGeoid.__wrap(ret[0]);
3916
+ }
3917
+ /**
3918
+ * Read and load `WW15MGH.DAC` from disk. A missing file throws a typed
3919
+ * `MissingEgm96Dac` error with `path` and `remediation` fields.
3920
+ * @param {string} path
3921
+ * @returns {Egm96FifteenMinuteGeoid}
3922
+ */
3923
+ static fromWw15mghDacPath(path) {
3924
+ const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
3925
+ const len0 = WASM_VECTOR_LEN;
3926
+ const ret = wasm.egm96fifteenminutegeoid_fromWw15mghDacPath(ptr0, len0);
3927
+ if (ret[2]) {
3928
+ throw takeFromExternrefTable0(ret[1]);
3929
+ }
3930
+ return Egm96FifteenMinuteGeoid.__wrap(ret[0]);
3931
+ }
3932
+ }
3933
+ if (Symbol.dispose) Egm96FifteenMinuteGeoid.prototype[Symbol.dispose] = Egm96FifteenMinuteGeoid.prototype.free;
3934
+
3935
+ /**
3936
+ * Ellipsoidal height `h` in metres above the WGS84 reference ellipsoid.
3937
+ */
3938
+ export class EllipsoidalHeightM {
3939
+ static __wrap(ptr) {
3940
+ const obj = Object.create(EllipsoidalHeightM.prototype);
3941
+ obj.__wbg_ptr = ptr;
3942
+ EllipsoidalHeightMFinalization.register(obj, obj.__wbg_ptr, obj);
3943
+ return obj;
3944
+ }
3945
+ __destroy_into_raw() {
3946
+ const ptr = this.__wbg_ptr;
3947
+ this.__wbg_ptr = 0;
3948
+ EllipsoidalHeightMFinalization.unregister(this);
3949
+ return ptr;
3950
+ }
3951
+ free() {
3952
+ const ptr = this.__destroy_into_raw();
3953
+ wasm.__wbg_ellipsoidalheightm_free(ptr, 0);
3954
+ }
3955
+ /**
3956
+ * Build an ellipsoidal height `h` in metres.
3957
+ * @param {number} value_m
3958
+ */
3959
+ constructor(value_m) {
3960
+ const ret = wasm.ellipsoidalheightm_new(value_m);
3961
+ this.__wbg_ptr = ret;
3962
+ EllipsoidalHeightMFinalization.register(this, this.__wbg_ptr, this);
3963
+ return this;
3964
+ }
3965
+ /**
3966
+ * Ellipsoidal height `h`, metres above the WGS84 reference ellipsoid.
3967
+ * @returns {number}
3968
+ */
3969
+ get valueM() {
3970
+ const ret = wasm.ellipsoidalheightm_valueM(this.__wbg_ptr);
3971
+ return ret;
3972
+ }
3973
+ }
3974
+ if (Symbol.dispose) EllipsoidalHeightM.prototype[Symbol.dispose] = EllipsoidalHeightM.prototype.free;
3975
+
3844
3976
  /**
3845
3977
  * Orthonormal encounter frame built from two relative states.
3846
3978
  */
@@ -5456,6 +5588,24 @@ export class Ionex {
5456
5588
  const ret = wasm.ionex_baseRadiusKm(this.__wbg_ptr);
5457
5589
  return ret;
5458
5590
  }
5591
+ /**
5592
+ * Signed latitude grid step, degrees. Standard IONEX grids are
5593
+ * north-to-south, so this value is usually negative.
5594
+ * @returns {number}
5595
+ */
5596
+ get dlatDeg() {
5597
+ const ret = wasm.ionex_dlatDeg(this.__wbg_ptr);
5598
+ return ret;
5599
+ }
5600
+ /**
5601
+ * Signed longitude grid step, degrees. Standard IONEX grids are
5602
+ * west-to-east, so this value is usually positive.
5603
+ * @returns {number}
5604
+ */
5605
+ get dlonDeg() {
5606
+ const ret = wasm.ionex_dlonDeg(this.__wbg_ptr);
5607
+ return ret;
5608
+ }
5459
5609
  /**
5460
5610
  * The IONEX `EXPONENT` header field; the TEC scale is `10^exponent`.
5461
5611
  * @returns {number}
@@ -5529,6 +5679,36 @@ export class Ionex {
5529
5679
  }
5530
5680
  return ret[0];
5531
5681
  }
5682
+ /**
5683
+ * Extract the full IONEX vertical-TEC grids as plain sample data.
5684
+ *
5685
+ * Epochs are integer seconds since J2000. Latitude and longitude nodes and
5686
+ * grid steps are degrees. TEC and RMS maps are TECU and indexed
5687
+ * `[map][iLat][iLon]`. The shell height and base radius are kilometers.
5688
+ * @returns {any}
5689
+ */
5690
+ tecGridSamples() {
5691
+ const ret = wasm.ionex_tecGridSamples(this.__wbg_ptr);
5692
+ if (ret[2]) {
5693
+ throw takeFromExternrefTable0(ret[1]);
5694
+ }
5695
+ return takeFromExternrefTable0(ret[0]);
5696
+ }
5697
+ /**
5698
+ * Extract one IONEX vertical-TEC sample per grid node.
5699
+ *
5700
+ * Each sample is `{ epochJ2000S, latDeg, lonDeg, vtecTecu, rmsTecu }`.
5701
+ * Epochs are integer seconds since J2000, coordinates are degrees, and TEC
5702
+ * and RMS values are TECU.
5703
+ * @returns {any}
5704
+ */
5705
+ tecSamples() {
5706
+ const ret = wasm.ionex_tecSamples(this.__wbg_ptr);
5707
+ if (ret[2]) {
5708
+ throw takeFromExternrefTable0(ret[1]);
5709
+ }
5710
+ return takeFromExternrefTable0(ret[0]);
5711
+ }
5532
5712
  /**
5533
5713
  * Serialize to standard IONEX text. Deterministic: the same product always
5534
5714
  * produces byte-identical text, and re-parsing the output yields an equal
@@ -6830,6 +7010,255 @@ export class MappingFactors {
6830
7010
  }
6831
7011
  if (Symbol.dispose) MappingFactors.prototype[Symbol.dispose] = MappingFactors.prototype.free;
6832
7012
 
7013
+ /**
7014
+ * In-memory reader for memory-mappable terrain store bytes.
7015
+ *
7016
+ * Query results are orthometric terrain heights `H` in metres. Use the
7017
+ * ellipsoidal methods only when a geoid model is deliberately selected.
7018
+ */
7019
+ export class MmapTerrain {
7020
+ static __wrap(ptr) {
7021
+ const obj = Object.create(MmapTerrain.prototype);
7022
+ obj.__wbg_ptr = ptr;
7023
+ MmapTerrainFinalization.register(obj, obj.__wbg_ptr, obj);
7024
+ return obj;
7025
+ }
7026
+ __destroy_into_raw() {
7027
+ const ptr = this.__wbg_ptr;
7028
+ this.__wbg_ptr = 0;
7029
+ MmapTerrainFinalization.unregister(this);
7030
+ return ptr;
7031
+ }
7032
+ free() {
7033
+ const ptr = this.__destroy_into_raw();
7034
+ wasm.__wbg_mmapterrain_free(ptr, 0);
7035
+ }
7036
+ /**
7037
+ * FNV-1a checksum of the full terrain store byte span.
7038
+ * @returns {bigint}
7039
+ */
7040
+ checksum64() {
7041
+ const ret = wasm.mmapterrain_checksum64(this.__wbg_ptr);
7042
+ return BigInt.asUintN(64, ret);
7043
+ }
7044
+ /**
7045
+ * Ellipsoidal height `h = H + N` in metres at `(longitudeDeg, latitudeDeg)`
7046
+ * using the embedded EGM96 1-degree geoid grid.
7047
+ * @param {number} longitude_deg
7048
+ * @param {number} latitude_deg
7049
+ * @returns {EllipsoidalHeightM}
7050
+ */
7051
+ ellipsoidalHeightM(longitude_deg, latitude_deg) {
7052
+ const ret = wasm.mmapterrain_ellipsoidalHeightM(this.__wbg_ptr, longitude_deg, latitude_deg);
7053
+ if (ret[2]) {
7054
+ throw takeFromExternrefTable0(ret[1]);
7055
+ }
7056
+ return EllipsoidalHeightM.__wrap(ret[0]);
7057
+ }
7058
+ /**
7059
+ * Ellipsoidal height `h = H + N` in metres using an explicit geoid model.
7060
+ *
7061
+ * The terrain lookup input order is `(longitudeDeg, latitudeDeg)`. Choosing
7062
+ * the EGM96 15-arcminute model requires a loaded `WW15MGH.DAC` grid and
7063
+ * does not fall back to the embedded 1-degree grid.
7064
+ * @param {number} longitude_deg
7065
+ * @param {number} latitude_deg
7066
+ * @param {any} options
7067
+ * @param {TerrainGeoidModel} geoid
7068
+ * @returns {EllipsoidalHeightM}
7069
+ */
7070
+ ellipsoidalHeightMWithModel(longitude_deg, latitude_deg, options, geoid) {
7071
+ _assertClass(geoid, TerrainGeoidModel);
7072
+ const ret = wasm.mmapterrain_ellipsoidalHeightMWithModel(this.__wbg_ptr, longitude_deg, latitude_deg, options, geoid.__wbg_ptr);
7073
+ if (ret[2]) {
7074
+ throw takeFromExternrefTable0(ret[1]);
7075
+ }
7076
+ return EllipsoidalHeightM.__wrap(ret[0]);
7077
+ }
7078
+ /**
7079
+ * Ellipsoidal height `h = H + N` in metres using embedded EGM96 1-degree
7080
+ * geoid conversion and explicit terrain lookup options.
7081
+ * @param {number} longitude_deg
7082
+ * @param {number} latitude_deg
7083
+ * @param {any} options
7084
+ * @returns {EllipsoidalHeightM}
7085
+ */
7086
+ ellipsoidalHeightMWithOptions(longitude_deg, latitude_deg, options) {
7087
+ const ret = wasm.mmapterrain_ellipsoidalHeightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
7088
+ if (ret[2]) {
7089
+ throw takeFromExternrefTable0(ret[1]);
7090
+ }
7091
+ return EllipsoidalHeightM.__wrap(ret[0]);
7092
+ }
7093
+ /**
7094
+ * Parse terrain store bytes from a `Uint8Array`.
7095
+ * @param {Uint8Array} bytes
7096
+ * @returns {MmapTerrain}
7097
+ */
7098
+ static fromBytes(bytes) {
7099
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
7100
+ const len0 = WASM_VECTOR_LEN;
7101
+ const ret = wasm.mmapterrain_fromBytes(ptr0, len0);
7102
+ if (ret[2]) {
7103
+ throw takeFromExternrefTable0(ret[1]);
7104
+ }
7105
+ return MmapTerrain.__wrap(ret[0]);
7106
+ }
7107
+ /**
7108
+ * Read a terrain store file from host I/O and parse it into memory.
7109
+ *
7110
+ * Browser runtimes should use [`MmapTerrain.fromBytes`] with fetched bytes.
7111
+ * @param {string} path
7112
+ * @returns {MmapTerrain}
7113
+ */
7114
+ static fromPath(path) {
7115
+ const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7116
+ const len0 = WASM_VECTOR_LEN;
7117
+ const ret = wasm.mmapterrain_fromPath(ptr0, len0);
7118
+ if (ret[2]) {
7119
+ throw takeFromExternrefTable0(ret[1]);
7120
+ }
7121
+ return MmapTerrain.__wrap(ret[0]);
7122
+ }
7123
+ /**
7124
+ * Parse terrain store bytes from an owned `Uint8Array` copy.
7125
+ * @param {Uint8Array} bytes
7126
+ * @returns {MmapTerrain}
7127
+ */
7128
+ static fromVec(bytes) {
7129
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
7130
+ const len0 = WASM_VECTOR_LEN;
7131
+ const ret = wasm.mmapterrain_fromVec(ptr0, len0);
7132
+ if (ret[2]) {
7133
+ throw takeFromExternrefTable0(ret[1]);
7134
+ }
7135
+ return MmapTerrain.__wrap(ret[0]);
7136
+ }
7137
+ /**
7138
+ * Batch ORTHOMETRIC terrain heights for longitude-first points.
7139
+ *
7140
+ * `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
7141
+ * `{ longitudeDeg, latitudeDeg }` objects. Each entry is
7142
+ * `{ ok: true, heightM }` or `{ ok: false, error }`.
7143
+ * @param {any} points
7144
+ * @param {any} options
7145
+ * @returns {any}
7146
+ */
7147
+ heightBatch(points, options) {
7148
+ const ret = wasm.mmapterrain_heightBatch(this.__wbg_ptr, points, options);
7149
+ if (ret[2]) {
7150
+ throw takeFromExternrefTable0(ret[1]);
7151
+ }
7152
+ return takeFromExternrefTable0(ret[0]);
7153
+ }
7154
+ /**
7155
+ * Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
7156
+ *
7157
+ * Longitude and latitude are degrees. The lookup uses bilinear
7158
+ * interpolation. Missing tiles evaluate to `0.0`.
7159
+ * @param {number} longitude_deg
7160
+ * @param {number} latitude_deg
7161
+ * @returns {number}
7162
+ */
7163
+ heightM(longitude_deg, latitude_deg) {
7164
+ const ret = wasm.mmapterrain_heightM(this.__wbg_ptr, longitude_deg, latitude_deg);
7165
+ if (ret[2]) {
7166
+ throw takeFromExternrefTable0(ret[1]);
7167
+ }
7168
+ return ret[0];
7169
+ }
7170
+ /**
7171
+ * Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
7172
+ *
7173
+ * `options.interpolation` is `"bilinear"`, `"nearest"`, or
7174
+ * `"nearestPosting"`.
7175
+ * @param {number} longitude_deg
7176
+ * @param {number} latitude_deg
7177
+ * @param {any} options
7178
+ * @returns {number}
7179
+ */
7180
+ heightMWithOptions(longitude_deg, latitude_deg, options) {
7181
+ const ret = wasm.mmapterrain_heightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
7182
+ if (ret[2]) {
7183
+ throw takeFromExternrefTable0(ret[1]);
7184
+ }
7185
+ return ret[0];
7186
+ }
7187
+ /**
7188
+ * Batch typed ORTHOMETRIC terrain heights for longitude-first points.
7189
+ *
7190
+ * Each entry is `{ ok: true, orthometricHeightM: { valueM } }` or
7191
+ * `{ ok: false, error }`.
7192
+ * @param {any} points
7193
+ * @param {any} options
7194
+ * @returns {any}
7195
+ */
7196
+ orthometricHeightBatch(points, options) {
7197
+ const ret = wasm.mmapterrain_orthometricHeightBatch(this.__wbg_ptr, points, options);
7198
+ if (ret[2]) {
7199
+ throw takeFromExternrefTable0(ret[1]);
7200
+ }
7201
+ return takeFromExternrefTable0(ret[0]);
7202
+ }
7203
+ /**
7204
+ * Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`.
7205
+ * @param {number} longitude_deg
7206
+ * @param {number} latitude_deg
7207
+ * @returns {OrthometricHeightM}
7208
+ */
7209
+ orthometricHeightM(longitude_deg, latitude_deg) {
7210
+ const ret = wasm.mmapterrain_orthometricHeightM(this.__wbg_ptr, longitude_deg, latitude_deg);
7211
+ if (ret[2]) {
7212
+ throw takeFromExternrefTable0(ret[1]);
7213
+ }
7214
+ return OrthometricHeightM.__wrap(ret[0]);
7215
+ }
7216
+ /**
7217
+ * Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`
7218
+ * with explicit lookup options.
7219
+ * @param {number} longitude_deg
7220
+ * @param {number} latitude_deg
7221
+ * @param {any} options
7222
+ * @returns {OrthometricHeightM}
7223
+ */
7224
+ orthometricHeightMWithOptions(longitude_deg, latitude_deg, options) {
7225
+ const ret = wasm.mmapterrain_orthometricHeightMWithOptions(this.__wbg_ptr, longitude_deg, latitude_deg, options);
7226
+ if (ret[2]) {
7227
+ throw takeFromExternrefTable0(ret[1]);
7228
+ }
7229
+ return OrthometricHeightM.__wrap(ret[0]);
7230
+ }
7231
+ /**
7232
+ * Parsed tile index records in store order.
7233
+ * @returns {TerrainStoreTileIndex[]}
7234
+ */
7235
+ tileIndex() {
7236
+ const ret = wasm.mmapterrain_tileIndex(this.__wbg_ptr);
7237
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
7238
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
7239
+ return v1;
7240
+ }
7241
+ /**
7242
+ * Canonical store bytes for this parsed terrain store.
7243
+ * @returns {Uint8Array}
7244
+ */
7245
+ toBytes() {
7246
+ const ret = wasm.mmapterrain_toBytes(this.__wbg_ptr);
7247
+ var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
7248
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
7249
+ return v1;
7250
+ }
7251
+ /**
7252
+ * File-level vertical datum for the store's orthometric posting payloads.
7253
+ * @returns {VerticalDatum}
7254
+ */
7255
+ get verticalDatum() {
7256
+ const ret = wasm.mmapterrain_verticalDatum(this.__wbg_ptr);
7257
+ return ret;
7258
+ }
7259
+ }
7260
+ if (Symbol.dispose) MmapTerrain.prototype[Symbol.dispose] = MmapTerrain.prototype.free;
7261
+
6833
7262
  /**
6834
7263
  * One refined Moon elevation threshold crossing (moonrise / moonset).
6835
7264
  */
@@ -9938,6 +10367,80 @@ export class OpmState {
9938
10367
  }
9939
10368
  if (Symbol.dispose) OpmState.prototype[Symbol.dispose] = OpmState.prototype.free;
9940
10369
 
10370
+ /**
10371
+ * Orthometric terrain height `H` in metres above the EGM96 mean sea level
10372
+ * geoid.
10373
+ */
10374
+ export class OrthometricHeightM {
10375
+ static __wrap(ptr) {
10376
+ const obj = Object.create(OrthometricHeightM.prototype);
10377
+ obj.__wbg_ptr = ptr;
10378
+ OrthometricHeightMFinalization.register(obj, obj.__wbg_ptr, obj);
10379
+ return obj;
10380
+ }
10381
+ __destroy_into_raw() {
10382
+ const ptr = this.__wbg_ptr;
10383
+ this.__wbg_ptr = 0;
10384
+ OrthometricHeightMFinalization.unregister(this);
10385
+ return ptr;
10386
+ }
10387
+ free() {
10388
+ const ptr = this.__destroy_into_raw();
10389
+ wasm.__wbg_orthometricheightm_free(ptr, 0);
10390
+ }
10391
+ /**
10392
+ * Build an orthometric height `H` in metres.
10393
+ * @param {number} value_m
10394
+ */
10395
+ constructor(value_m) {
10396
+ const ret = wasm.orthometricheightm_new(value_m);
10397
+ this.__wbg_ptr = ret;
10398
+ OrthometricHeightMFinalization.register(this, this.__wbg_ptr, this);
10399
+ return this;
10400
+ }
10401
+ /**
10402
+ * Convert to ellipsoidal height `h = H + N` using degree inputs in geoid
10403
+ * order `(latitudeDeg, longitudeDeg)` and an explicit geoid model.
10404
+ * @param {number} latitude_deg
10405
+ * @param {number} longitude_deg
10406
+ * @param {TerrainGeoidModel} geoid
10407
+ * @returns {EllipsoidalHeightM}
10408
+ */
10409
+ toEllipsoidalHeightDeg(latitude_deg, longitude_deg, geoid) {
10410
+ _assertClass(geoid, TerrainGeoidModel);
10411
+ const ret = wasm.orthometricheightm_toEllipsoidalHeightDeg(this.__wbg_ptr, latitude_deg, longitude_deg, geoid.__wbg_ptr);
10412
+ if (ret[2]) {
10413
+ throw takeFromExternrefTable0(ret[1]);
10414
+ }
10415
+ return EllipsoidalHeightM.__wrap(ret[0]);
10416
+ }
10417
+ /**
10418
+ * Convert to ellipsoidal height `h = H + N` using radian inputs in geoid
10419
+ * order `(latitudeRad, longitudeRad)` and an explicit geoid model.
10420
+ * @param {number} latitude_rad
10421
+ * @param {number} longitude_rad
10422
+ * @param {TerrainGeoidModel} geoid
10423
+ * @returns {EllipsoidalHeightM}
10424
+ */
10425
+ toEllipsoidalHeightRad(latitude_rad, longitude_rad, geoid) {
10426
+ _assertClass(geoid, TerrainGeoidModel);
10427
+ const ret = wasm.orthometricheightm_toEllipsoidalHeightRad(this.__wbg_ptr, latitude_rad, longitude_rad, geoid.__wbg_ptr);
10428
+ if (ret[2]) {
10429
+ throw takeFromExternrefTable0(ret[1]);
10430
+ }
10431
+ return EllipsoidalHeightM.__wrap(ret[0]);
10432
+ }
10433
+ /**
10434
+ * Orthometric height `H`, metres above the EGM96 mean sea level geoid.
10435
+ * @returns {number}
10436
+ */
10437
+ get valueM() {
10438
+ const ret = wasm.orthometricheightm_valueM(this.__wbg_ptr);
10439
+ return ret;
10440
+ }
10441
+ }
10442
+ if (Symbol.dispose) OrthometricHeightM.prototype[Symbol.dispose] = OrthometricHeightM.prototype.free;
10443
+
9941
10444
  /**
9942
10445
  * The result of [`parseTleFile`]: the satellites that parsed, plus a count of
9943
10446
  * complete records that were skipped because SGP4 initialization failed.
@@ -11914,6 +12417,12 @@ export class SatelliteVector {
11914
12417
  }
11915
12418
  if (Symbol.dispose) SatelliteVector.prototype[Symbol.dispose] = SatelliteVector.prototype.free;
11916
12419
 
12420
+ /**
12421
+ * Mutable SBAS correction store.
12422
+ *
12423
+ * Ingest raw SBAS messages with a source GEO and GNSS time, then query decoded
12424
+ * fast, long-term, ionospheric, and GEO navigation correction records.
12425
+ */
11917
12426
  export class SbasCorrectionStore {
11918
12427
  __destroy_into_raw() {
11919
12428
  const ptr = this.__wbg_ptr;
@@ -11926,6 +12435,49 @@ export class SbasCorrectionStore {
11926
12435
  wasm.__wbg_sbascorrectionstore_free(ptr, 0);
11927
12436
  }
11928
12437
  /**
12438
+ * Fast pseudorange correction for `(geo, sat)`, or `null`.
12439
+ *
12440
+ * `prcM` is meters, `rrcMS` is meters per second, and `tOfJ2000S` is
12441
+ * seconds since J2000.
12442
+ * @param {string} geo
12443
+ * @param {string} sat
12444
+ * @returns {any}
12445
+ */
12446
+ fastCorrection(geo, sat) {
12447
+ const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12448
+ const len0 = WASM_VECTOR_LEN;
12449
+ const ptr1 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12450
+ const len1 = WASM_VECTOR_LEN;
12451
+ const ret = wasm.sbascorrectionstore_fastCorrection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
12452
+ if (ret[2]) {
12453
+ throw takeFromExternrefTable0(ret[1]);
12454
+ }
12455
+ return takeFromExternrefTable0(ret[0]);
12456
+ }
12457
+ /**
12458
+ * SBAS GEO navigation state for `geo`, or `null`.
12459
+ *
12460
+ * Positions are ECEF meters, velocities are ECEF meters per second,
12461
+ * accelerations are ECEF meters per second squared, clock fields are
12462
+ * seconds and seconds per second, and `t0J2000S` is seconds since J2000.
12463
+ * @param {string} geo
12464
+ * @returns {any}
12465
+ */
12466
+ geoNavState(geo) {
12467
+ const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12468
+ const len0 = WASM_VECTOR_LEN;
12469
+ const ret = wasm.sbascorrectionstore_geoNavState(this.__wbg_ptr, ptr0, len0);
12470
+ if (ret[2]) {
12471
+ throw takeFromExternrefTable0(ret[1]);
12472
+ }
12473
+ return takeFromExternrefTable0(ret[0]);
12474
+ }
12475
+ /**
12476
+ * Ingest one decoded SBAS message into the correction store.
12477
+ *
12478
+ * `geo` is the SBAS source satellite token such as `"S29"`. `week` and
12479
+ * `towS` are in the selected GNSS time scale. `form` is `"framed250"` or
12480
+ * `"body226"`.
11929
12481
  * @param {Uint8Array} bytes
11930
12482
  * @param {string | null | undefined} form
11931
12483
  * @param {string} geo
@@ -11948,6 +12500,27 @@ export class SbasCorrectionStore {
11948
12500
  }
11949
12501
  }
11950
12502
  /**
12503
+ * SBAS ionospheric grid for `geo`, or `null`.
12504
+ *
12505
+ * Grid point latitudes and longitudes are degrees, vertical delays are
12506
+ * meters, and GIVE variances are square meters when present.
12507
+ * @param {string} geo
12508
+ * @returns {any}
12509
+ */
12510
+ ionoGrid(geo) {
12511
+ const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12512
+ const len0 = WASM_VECTOR_LEN;
12513
+ const ret = wasm.sbascorrectionstore_ionoGrid(this.__wbg_ptr, ptr0, len0);
12514
+ if (ret[2]) {
12515
+ throw takeFromExternrefTable0(ret[1]);
12516
+ }
12517
+ return takeFromExternrefTable0(ret[0]);
12518
+ }
12519
+ /**
12520
+ * SBAS ionospheric slant delay in meters, or `null`.
12521
+ *
12522
+ * Receiver latitude, longitude, elevation, and azimuth are radians.
12523
+ * `frequencyHz` is the carrier frequency for the reported group delay.
11951
12524
  * @param {string} geo
11952
12525
  * @param {number} receiver_lat_rad
11953
12526
  * @param {number} receiver_lon_rad
@@ -11966,6 +12539,30 @@ export class SbasCorrectionStore {
11966
12539
  }
11967
12540
  return ret[0] === 0 ? undefined : ret[1];
11968
12541
  }
12542
+ /**
12543
+ * Long-term orbit and clock correction for `(geo, sat)`, or `null`.
12544
+ *
12545
+ * Position deltas are ECEF meters, rates are ECEF meters per second, clock
12546
+ * deltas are seconds and seconds per second, and `t0J2000S` is seconds
12547
+ * since J2000.
12548
+ * @param {string} geo
12549
+ * @param {string} sat
12550
+ * @returns {any}
12551
+ */
12552
+ longTermCorrection(geo, sat) {
12553
+ const ptr0 = passStringToWasm0(geo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12554
+ const len0 = WASM_VECTOR_LEN;
12555
+ const ptr1 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
12556
+ const len1 = WASM_VECTOR_LEN;
12557
+ const ret = wasm.sbascorrectionstore_longTermCorrection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
12558
+ if (ret[2]) {
12559
+ throw takeFromExternrefTable0(ret[1]);
12560
+ }
12561
+ return takeFromExternrefTable0(ret[0]);
12562
+ }
12563
+ /**
12564
+ * Create an empty SBAS correction store.
12565
+ */
11969
12566
  constructor() {
11970
12567
  const ret = wasm.sbascorrectionstore_new();
11971
12568
  this.__wbg_ptr = ret;
@@ -11973,6 +12570,10 @@ export class SbasCorrectionStore {
11973
12570
  return this;
11974
12571
  }
11975
12572
  /**
12573
+ * Ready SBAS GEO source satellites at `tJ2000S`.
12574
+ *
12575
+ * The time is seconds since J2000. Returned tokens are strings such as
12576
+ * `"S29"`, sorted by most recent update first.
11976
12577
  * @param {number} t_j2000_s
11977
12578
  * @returns {string[]}
11978
12579
  */
@@ -11982,6 +12583,24 @@ export class SbasCorrectionStore {
11982
12583
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
11983
12584
  return v1;
11984
12585
  }
12586
+ /**
12587
+ * Allow or disallow partial SBAS corrections when building corrected
12588
+ * ephemeris states.
12589
+ * @param {boolean} yes
12590
+ */
12591
+ setAllowPartial(yes) {
12592
+ wasm.sbascorrectionstore_setAllowPartial(this.__wbg_ptr, yes);
12593
+ }
12594
+ /**
12595
+ * Set the maximum staleness for fresh SBAS corrections, in seconds.
12596
+ * @param {number} seconds
12597
+ */
12598
+ setStalenessSeconds(seconds) {
12599
+ const ret = wasm.sbascorrectionstore_setStalenessSeconds(this.__wbg_ptr, seconds);
12600
+ if (ret[1]) {
12601
+ throw takeFromExternrefTable0(ret[0]);
12602
+ }
12603
+ }
11985
12604
  }
11986
12605
  if (Symbol.dispose) SbasCorrectionStore.prototype[Symbol.dispose] = SbasCorrectionStore.prototype.free;
11987
12606
 
@@ -13846,69 +14465,302 @@ export const SsrSource = Object.freeze({
13846
14465
  * The frame (geocentric ECI of date vs Earth-fixed ITRS/ECEF) is fixed by which
13847
14466
  * function produced this object: [`sunMoonEci`] or [`sunMoonEcef`].
13848
14467
  */
13849
- export class SunMoon {
14468
+ export class SunMoon {
14469
+ static __wrap(ptr) {
14470
+ const obj = Object.create(SunMoon.prototype);
14471
+ obj.__wbg_ptr = ptr;
14472
+ SunMoonFinalization.register(obj, obj.__wbg_ptr, obj);
14473
+ return obj;
14474
+ }
14475
+ __destroy_into_raw() {
14476
+ const ptr = this.__wbg_ptr;
14477
+ this.__wbg_ptr = 0;
14478
+ SunMoonFinalization.unregister(this);
14479
+ return ptr;
14480
+ }
14481
+ free() {
14482
+ const ptr = this.__destroy_into_raw();
14483
+ wasm.__wbg_sunmoon_free(ptr, 0);
14484
+ }
14485
+ /**
14486
+ * Number of epochs in the batch.
14487
+ * @returns {number}
14488
+ */
14489
+ get epochCount() {
14490
+ const ret = wasm.sunmoon_epochCount(this.__wbg_ptr);
14491
+ return ret >>> 0;
14492
+ }
14493
+ /**
14494
+ * The frame these positions are in: `"eci"` or `"ecef"`.
14495
+ * @returns {string}
14496
+ */
14497
+ get frame() {
14498
+ let deferred1_0;
14499
+ let deferred1_1;
14500
+ try {
14501
+ const ret = wasm.sunmoon_frame(this.__wbg_ptr);
14502
+ deferred1_0 = ret[0];
14503
+ deferred1_1 = ret[1];
14504
+ return getStringFromWasm0(ret[0], ret[1]);
14505
+ } finally {
14506
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
14507
+ }
14508
+ }
14509
+ /**
14510
+ * Moon positions, metres, flat row-major `(n, 3)`.
14511
+ * @returns {Float64Array}
14512
+ */
14513
+ get moon() {
14514
+ const ret = wasm.sunmoon_moon(this.__wbg_ptr);
14515
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
14516
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
14517
+ return v1;
14518
+ }
14519
+ /**
14520
+ * Sun positions, metres, flat row-major `(n, 3)`.
14521
+ * @returns {Float64Array}
14522
+ */
14523
+ get sun() {
14524
+ const ret = wasm.sunmoon_sun(this.__wbg_ptr);
14525
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
14526
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
14527
+ return v1;
14528
+ }
14529
+ }
14530
+ if (Symbol.dispose) SunMoon.prototype[Symbol.dispose] = SunMoon.prototype.free;
14531
+
14532
+ /**
14533
+ * Terrain datum conversion and optional geoid-grid loading error variants.
14534
+ * @enum {0 | 1 | 2 | 3}
14535
+ */
14536
+ export const TerrainDatumError = Object.freeze({
14537
+ /**
14538
+ * Terrain lookup failed before datum conversion.
14539
+ */
14540
+ Terrain: 0, "0": "Terrain",
14541
+ /**
14542
+ * A geoid grid could not be parsed.
14543
+ */
14544
+ Geoid: 1, "1": "Geoid",
14545
+ /**
14546
+ * Reading a geoid grid failed for a reason other than absence.
14547
+ */
14548
+ Io: 2, "2": "Io",
14549
+ /**
14550
+ * The EGM96 15-arcminute `WW15MGH.DAC` grid was requested but is absent.
14551
+ */
14552
+ MissingEgm96Dac: 3, "3": "MissingEgm96Dac",
14553
+ });
14554
+
14555
+ /**
14556
+ * Geoid model used to convert terrain orthometric height `H` to ellipsoidal
14557
+ * height `h`.
14558
+ */
14559
+ export class TerrainGeoidModel {
14560
+ static __wrap(ptr) {
14561
+ const obj = Object.create(TerrainGeoidModel.prototype);
14562
+ obj.__wbg_ptr = ptr;
14563
+ TerrainGeoidModelFinalization.register(obj, obj.__wbg_ptr, obj);
14564
+ return obj;
14565
+ }
14566
+ __destroy_into_raw() {
14567
+ const ptr = this.__wbg_ptr;
14568
+ this.__wbg_ptr = 0;
14569
+ TerrainGeoidModelFinalization.unregister(this);
14570
+ return ptr;
14571
+ }
14572
+ free() {
14573
+ const ptr = this.__destroy_into_raw();
14574
+ wasm.__wbg_terraingeoidmodel_free(ptr, 0);
14575
+ }
14576
+ /**
14577
+ * Use a caller-supplied EGM96 15-arcminute geoid grid for `h = H + N`.
14578
+ * @param {Egm96FifteenMinuteGeoid} geoid
14579
+ * @returns {TerrainGeoidModel}
14580
+ */
14581
+ static egm96FifteenMinute(geoid) {
14582
+ _assertClass(geoid, Egm96FifteenMinuteGeoid);
14583
+ const ret = wasm.terraingeoidmodel_egm96FifteenMinute(geoid.__wbg_ptr);
14584
+ return TerrainGeoidModel.__wrap(ret);
14585
+ }
14586
+ /**
14587
+ * Use the embedded EGM96 1-degree geoid grid for `h = H + N`.
14588
+ * @returns {TerrainGeoidModel}
14589
+ */
14590
+ static egm96OneDegree() {
14591
+ const ret = wasm.terraingeoidmodel_egm96OneDegree();
14592
+ return TerrainGeoidModel.__wrap(ret);
14593
+ }
14594
+ /**
14595
+ * Model discriminator: `"egm96OneDegree"` or `"egm96FifteenMinute"`.
14596
+ * @returns {string}
14597
+ */
14598
+ get kind() {
14599
+ let deferred1_0;
14600
+ let deferred1_1;
14601
+ try {
14602
+ const ret = wasm.terraingeoidmodel_kind(this.__wbg_ptr);
14603
+ deferred1_0 = ret[0];
14604
+ deferred1_1 = ret[1];
14605
+ return getStringFromWasm0(ret[0], ret[1]);
14606
+ } finally {
14607
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
14608
+ }
14609
+ }
14610
+ }
14611
+ if (Symbol.dispose) TerrainGeoidModel.prototype[Symbol.dispose] = TerrainGeoidModel.prototype.free;
14612
+
14613
+ /**
14614
+ * Terrain store conversion, serialization, and parsing error variants.
14615
+ * @enum {0 | 1 | 2 | 3 | 4 | 5}
14616
+ */
14617
+ export const TerrainStoreError = Object.freeze({
14618
+ /**
14619
+ * File or directory I/O failed.
14620
+ */
14621
+ Io: 0, "0": "Io",
14622
+ /**
14623
+ * DTED or terrain store bytes could not be parsed.
14624
+ */
14625
+ Parse: 1, "1": "Parse",
14626
+ /**
14627
+ * The terrain store version is not supported.
14628
+ */
14629
+ UnsupportedVersion: 2, "2": "UnsupportedVersion",
14630
+ /**
14631
+ * The terrain store datum tag is not supported.
14632
+ */
14633
+ UnsupportedDatum: 3, "3": "UnsupportedDatum",
14634
+ /**
14635
+ * Two input DTED files resolved to the same integer tile id.
14636
+ */
14637
+ DuplicateTile: 4, "4": "DuplicateTile",
14638
+ /**
14639
+ * A tile payload checksum did not match its index record.
14640
+ */
14641
+ Checksum: 5, "5": "Checksum",
14642
+ });
14643
+
14644
+ /**
14645
+ * Metadata for one tile index record in a memory-mappable terrain store.
14646
+ */
14647
+ export class TerrainStoreTileIndex {
13850
14648
  static __wrap(ptr) {
13851
- const obj = Object.create(SunMoon.prototype);
14649
+ const obj = Object.create(TerrainStoreTileIndex.prototype);
13852
14650
  obj.__wbg_ptr = ptr;
13853
- SunMoonFinalization.register(obj, obj.__wbg_ptr, obj);
14651
+ TerrainStoreTileIndexFinalization.register(obj, obj.__wbg_ptr, obj);
13854
14652
  return obj;
13855
14653
  }
13856
14654
  __destroy_into_raw() {
13857
14655
  const ptr = this.__wbg_ptr;
13858
14656
  this.__wbg_ptr = 0;
13859
- SunMoonFinalization.unregister(this);
14657
+ TerrainStoreTileIndexFinalization.unregister(this);
13860
14658
  return ptr;
13861
14659
  }
13862
14660
  free() {
13863
14661
  const ptr = this.__destroy_into_raw();
13864
- wasm.__wbg_sunmoon_free(ptr, 0);
14662
+ wasm.__wbg_terrainstoretileindex_free(ptr, 0);
13865
14663
  }
13866
14664
  /**
13867
- * Number of epochs in the batch.
14665
+ * FNV-1a checksum of this tile's posting payload bytes.
14666
+ * @returns {bigint}
14667
+ */
14668
+ get checksum64() {
14669
+ const ret = wasm.terrainstoretileindex_checksum64(this.__wbg_ptr);
14670
+ return BigInt.asUintN(64, ret);
14671
+ }
14672
+ /**
14673
+ * Byte length of this tile's posting payload in the store.
14674
+ * @returns {bigint}
14675
+ */
14676
+ get dataLen() {
14677
+ const ret = wasm.terrainstoretileindex_dataLen(this.__wbg_ptr);
14678
+ return BigInt.asUintN(64, ret);
14679
+ }
14680
+ /**
14681
+ * Byte offset of this tile's posting payload in the store.
14682
+ * @returns {bigint}
14683
+ */
14684
+ get dataOffset() {
14685
+ const ret = wasm.terrainstoretileindex_dataOffset(this.__wbg_ptr);
14686
+ return BigInt.asUintN(64, ret);
14687
+ }
14688
+ /**
14689
+ * Number of latitude postings.
13868
14690
  * @returns {number}
13869
14691
  */
13870
- get epochCount() {
13871
- const ret = wasm.sunmoon_epochCount(this.__wbg_ptr);
14692
+ get latCount() {
14693
+ const ret = wasm.terrainstoretileindex_latCount(this.__wbg_ptr);
13872
14694
  return ret >>> 0;
13873
14695
  }
13874
14696
  /**
13875
- * The frame these positions are in: `"eci"` or `"ecef"`.
13876
- * @returns {string}
14697
+ * Integer latitude tile id, for example `36` for a tile covering
14698
+ * `36..37` degrees.
14699
+ * @returns {number}
13877
14700
  */
13878
- get frame() {
13879
- let deferred1_0;
13880
- let deferred1_1;
13881
- try {
13882
- const ret = wasm.sunmoon_frame(this.__wbg_ptr);
13883
- deferred1_0 = ret[0];
13884
- deferred1_1 = ret[1];
13885
- return getStringFromWasm0(ret[0], ret[1]);
13886
- } finally {
13887
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
13888
- }
14701
+ get latIndex() {
14702
+ const ret = wasm.terrainstoretileindex_latIndex(this.__wbg_ptr);
14703
+ return ret;
13889
14704
  }
13890
14705
  /**
13891
- * Moon positions, metres, flat row-major `(n, 3)`.
13892
- * @returns {Float64Array}
14706
+ * Number of longitude postings.
14707
+ * @returns {number}
13893
14708
  */
13894
- get moon() {
13895
- const ret = wasm.sunmoon_moon(this.__wbg_ptr);
13896
- var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
13897
- wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
13898
- return v1;
14709
+ get lonCount() {
14710
+ const ret = wasm.terrainstoretileindex_lonCount(this.__wbg_ptr);
14711
+ return ret >>> 0;
13899
14712
  }
13900
14713
  /**
13901
- * Sun positions, metres, flat row-major `(n, 3)`.
13902
- * @returns {Float64Array}
14714
+ * Integer longitude tile id, for example `-107` for a tile covering
14715
+ * `-107..-106` degrees.
14716
+ * @returns {number}
13903
14717
  */
13904
- get sun() {
13905
- const ret = wasm.sunmoon_sun(this.__wbg_ptr);
13906
- var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
13907
- wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
13908
- return v1;
14718
+ get lonIndex() {
14719
+ const ret = wasm.terrainstoretileindex_lonIndex(this.__wbg_ptr);
14720
+ return ret;
14721
+ }
14722
+ /**
14723
+ * Northern edge latitude, degrees.
14724
+ * @returns {number}
14725
+ */
14726
+ get maxLatitudeDeg() {
14727
+ const ret = wasm.terrainstoretileindex_maxLatitudeDeg(this.__wbg_ptr);
14728
+ return ret;
14729
+ }
14730
+ /**
14731
+ * Eastern edge longitude, degrees.
14732
+ * @returns {number}
14733
+ */
14734
+ get maxLongitudeDeg() {
14735
+ const ret = wasm.terrainstoretileindex_maxLongitudeDeg(this.__wbg_ptr);
14736
+ return ret;
14737
+ }
14738
+ /**
14739
+ * Southern edge latitude, degrees.
14740
+ * @returns {number}
14741
+ */
14742
+ get minLatitudeDeg() {
14743
+ const ret = wasm.terrainstoretileindex_minLatitudeDeg(this.__wbg_ptr);
14744
+ return ret;
14745
+ }
14746
+ /**
14747
+ * Western edge longitude, degrees.
14748
+ * @returns {number}
14749
+ */
14750
+ get minLongitudeDeg() {
14751
+ const ret = wasm.terrainstoretileindex_minLongitudeDeg(this.__wbg_ptr);
14752
+ return ret;
14753
+ }
14754
+ /**
14755
+ * Vertical datum for this tile's orthometric posting payload.
14756
+ * @returns {VerticalDatum}
14757
+ */
14758
+ get verticalDatum() {
14759
+ const ret = wasm.terrainstoretileindex_verticalDatum(this.__wbg_ptr);
14760
+ return ret;
13909
14761
  }
13910
14762
  }
13911
- if (Symbol.dispose) SunMoon.prototype[Symbol.dispose] = SunMoon.prototype.free;
14763
+ if (Symbol.dispose) TerrainStoreTileIndex.prototype[Symbol.dispose] = TerrainStoreTileIndex.prototype.free;
13912
14764
 
13913
14765
  /**
13914
14766
  * A named time scale. The JS value matches the variant order below.
@@ -14557,6 +15409,17 @@ export class VelocitySolution {
14557
15409
  }
14558
15410
  if (Symbol.dispose) VelocitySolution.prototype[Symbol.dispose] = VelocitySolution.prototype.free;
14559
15411
 
15412
+ /**
15413
+ * Vertical datum carried by a terrain store.
15414
+ * @enum {0}
15415
+ */
15416
+ export const VerticalDatum = Object.freeze({
15417
+ /**
15418
+ * Orthometric height `H` in metres above the EGM96 mean sea level geoid.
15419
+ */
15420
+ Egm96MslOrthometric: 0, "0": "Egm96MslOrthometric",
15421
+ });
15422
+
14560
15423
  /**
14561
15424
  * Per-epoch topocentric visibility plus the dense pass list over the grid
14562
15425
  * window.
@@ -14848,6 +15711,27 @@ export function acquire(samples, prn, options) {
14848
15711
  return AcquisitionResult.__wrap(ret[0]);
14849
15712
  }
14850
15713
 
15714
+ /**
15715
+ * Plain non-overlapping Allan deviation for explicit averaging factors.
15716
+ *
15717
+ * `series` is `{ kind, values }`, where `kind` is `"phaseSeconds"` or
15718
+ * `"fractionalFrequency"` and `values` are phase seconds or dimensionless
15719
+ * fractional-frequency samples. `tau0S` is the sample interval in seconds.
15720
+ * `averagingFactors` is an array of positive integer `m` values. Returns
15721
+ * `{ tauS, deviation, n }`.
15722
+ * @param {any} series
15723
+ * @param {number} tau0_s
15724
+ * @param {any} averaging_factors
15725
+ * @returns {any}
15726
+ */
15727
+ export function allanDeviation(series, tau0_s, averaging_factors) {
15728
+ const ret = wasm.allanDeviation(series, tau0_s, averaging_factors);
15729
+ if (ret[2]) {
15730
+ throw takeFromExternrefTable0(ret[1]);
15731
+ }
15732
+ return takeFromExternrefTable0(ret[0]);
15733
+ }
15734
+
14851
15735
  /**
14852
15736
  * On-sky angle in degrees between two direction vectors.
14853
15737
  * @param {Float64Array} a
@@ -14882,6 +15766,65 @@ export function angularSeparationCoords(a_lon_deg, a_lat_deg, b_lon_deg, b_lat_d
14882
15766
  return ret[0];
14883
15767
  }
14884
15768
 
15769
+ /**
15770
+ * Run ARAIM MHSS protection-level computation.
15771
+ *
15772
+ * `geometry.rows` contains satellite IDs, ECEF line-of-sight unit vectors,
15773
+ * optional constellation labels, and elevations in radians. `receiver` is WGS84
15774
+ * geodetic radians plus ellipsoidal height meters. `ism` contains
15775
+ * constellation defaults and optional satellite overrides. Satellite models may
15776
+ * provide paired `effectiveSigmaIntM` and `effectiveSigmaAccM` fields; omit both
15777
+ * to let the core derive them from elevation. `allocation` may be omitted to use
15778
+ * `araimLpv200Allocation()`. Returned `hplM`, `vplM`, `sigmaAccHM`,
15779
+ * `sigmaAccVM`, `emtM`, and per-mode ENU arrays are meters.
15780
+ * @param {any} geometry
15781
+ * @param {any} ism
15782
+ * @param {any} allocation
15783
+ * @returns {any}
15784
+ */
15785
+ export function araim(geometry, ism, allocation) {
15786
+ const ret = wasm.araim(geometry, ism, allocation);
15787
+ if (ret[2]) {
15788
+ throw takeFromExternrefTable0(ret[1]);
15789
+ }
15790
+ return takeFromExternrefTable0(ret[0]);
15791
+ }
15792
+
15793
+ /**
15794
+ * Enumerate ARAIM fault hypotheses for the given geometry, ISM, and allocation.
15795
+ *
15796
+ * Inputs mirror `araim`. The returned priors are probabilities. Excluded
15797
+ * satellites are string tokens such as `"G01"`, and excluded constellations are
15798
+ * labels such as `"GPS"`.
15799
+ * @param {any} geometry
15800
+ * @param {any} ism
15801
+ * @param {any} allocation
15802
+ * @returns {any}
15803
+ */
15804
+ export function araimFaultModes(geometry, ism, allocation) {
15805
+ const ret = wasm.araimFaultModes(geometry, ism, allocation);
15806
+ if (ret[2]) {
15807
+ throw takeFromExternrefTable0(ret[1]);
15808
+ }
15809
+ return takeFromExternrefTable0(ret[0]);
15810
+ }
15811
+
15812
+ /**
15813
+ * LPV-200 ARAIM integrity and continuity allocation.
15814
+ *
15815
+ * The returned object can be passed to `araim`. Probability fields are
15816
+ * dimensionless, `pEmt` defaults to `1e-5`, and `maxFaultOrder` is an integer
15817
+ * fault order.
15818
+ * @returns {any}
15819
+ */
15820
+ export function araimLpv200Allocation() {
15821
+ const ret = wasm.araimLpv200Allocation();
15822
+ if (ret[2]) {
15823
+ throw takeFromExternrefTable0(ret[1]);
15824
+ }
15825
+ return takeFromExternrefTable0(ret[0]);
15826
+ }
15827
+
14885
15828
  /**
14886
15829
  * Evaluate NRLMSISE-00 neutral-atmosphere density and temperature.
14887
15830
  *
@@ -15198,6 +16141,28 @@ export function collisionProbability(object1, object2, hard_body_radius_km, meth
15198
16141
  return CollisionProbability.__wrap(ret[0]);
15199
16142
  }
15200
16143
 
16144
+ /**
16145
+ * Compute one or more Allan-family curves with a selected tau grid and gap
16146
+ * policy.
16147
+ *
16148
+ * `input` is `{ series, tau0S, options? }`. `series.kind` may be
16149
+ * `"phaseSeconds"`, `"fractionalFrequency"`, `"phaseSecondsWithGaps"`, or
16150
+ * `"fractionalFrequencyWithGaps"`; gap series use `null` for missing samples.
16151
+ * `options.estimators` is `"standard"`, `"all"`, `"none"`, or a boolean flag
16152
+ * object. `options.tauGrid` is `"octave"`, `"all"`, or
16153
+ * `{ kind: "explicit", averagingFactors }`. `tau0S` and all returned `tauS`
16154
+ * values are seconds.
16155
+ * @param {any} input
16156
+ * @returns {any}
16157
+ */
16158
+ export function computeAllanDeviations(input) {
16159
+ const ret = wasm.computeAllanDeviations(input);
16160
+ if (ret[2]) {
16161
+ throw takeFromExternrefTable0(ret[1]);
16162
+ }
16163
+ return takeFromExternrefTable0(ret[0]);
16164
+ }
16165
+
15201
16166
  /**
15202
16167
  * Coherently correlate interleaved IQ samples against a GPS C/A PRN replica.
15203
16168
  * `iq` is `[i0, q0, i1, q1, ...]`.
@@ -15455,6 +16420,12 @@ export function decodeRtcmStream(bytes) {
15455
16420
  }
15456
16421
 
15457
16422
  /**
16423
+ * Decode a raw SBAS message.
16424
+ *
16425
+ * `form` is `"framed250"` for a 32-byte message with CRC or `"body226"` for a
16426
+ * 29-byte body. The result contains `messageType`, `form`, legacy debug
16427
+ * `kind`, and `message`, a structured decoded payload. Parse failures are
16428
+ * thrown as `Error`.
15458
16429
  * @param {Uint8Array} bytes
15459
16430
  * @param {string | null} [form]
15460
16431
  * @returns {any}
@@ -15688,6 +16659,26 @@ export function dopplerToRangeRate(doppler_hz, carrier_hz) {
15688
16659
  return ret[0];
15689
16660
  }
15690
16661
 
16662
+ /**
16663
+ * Convert a DTED tile tree into canonical memory-mappable terrain store bytes.
16664
+ *
16665
+ * The returned `Uint8Array` can be passed to [`MmapTerrain.fromBytes`] or
16666
+ * [`MmapTerrain.fromVec`]. Posting payloads are decoded orthometric metres.
16667
+ * @param {string} root
16668
+ * @returns {Uint8Array}
16669
+ */
16670
+ export function dtedTreeToMmapStore(root) {
16671
+ const ptr0 = passStringToWasm0(root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
16672
+ const len0 = WASM_VECTOR_LEN;
16673
+ const ret = wasm.dtedTreeToMmapStore(ptr0, len0);
16674
+ if (ret[3]) {
16675
+ throw takeFromExternrefTable0(ret[2]);
16676
+ }
16677
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
16678
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
16679
+ return v2;
16680
+ }
16681
+
15691
16682
  /**
15692
16683
  * Angular radius in degrees of Earth as seen from each satellite position.
15693
16684
  * @param {Float64Array} satellite_position_km
@@ -16913,6 +17904,25 @@ export function gpsUtcOffsetS(year, month, day) {
16913
17904
  return ret;
16914
17905
  }
16915
17906
 
17907
+ /**
17908
+ * Overlapping Hadamard deviation for explicit averaging factors.
17909
+ *
17910
+ * `series` is `{ kind, values }`, `tau0S` is seconds, and
17911
+ * `averagingFactors` contains positive integer `m` values. Returns
17912
+ * `{ tauS, deviation, n }`.
17913
+ * @param {any} series
17914
+ * @param {number} tau0_s
17915
+ * @param {any} averaging_factors
17916
+ * @returns {any}
17917
+ */
17918
+ export function hadamardDeviation(series, tau0_s, averaging_factors) {
17919
+ const ret = wasm.hadamardDeviation(series, tau0_s, averaging_factors);
17920
+ if (ret[2]) {
17921
+ throw takeFromExternrefTable0(ret[1]);
17922
+ }
17923
+ return takeFromExternrefTable0(ret[0]);
17924
+ }
17925
+
16916
17926
  /**
16917
17927
  * Trace of the Gauss-Newton Hessian approximation `J^T J`: the sum of the
16918
17928
  * squared column norms of the Jacobian, with no inverse formed.
@@ -17022,6 +18032,47 @@ export function iodHerrickGibbs(r1, r2, r3, jd1, jd2, jd3) {
17022
18032
  return IodVelocity.__wrap(ret[0]);
17023
18033
  }
17024
18034
 
18035
+ /**
18036
+ * Build an IONEX vertical-TEC product from flat node samples.
18037
+ *
18038
+ * `samples` is an array of `{ epochJ2000S, latDeg, lonDeg, vtecTecu,
18039
+ * rmsTecu? }` objects. Epochs are integer seconds since J2000, coordinates are
18040
+ * degrees, and TEC/RMS values are TECU. `shellHeightKm` and `baseRadiusKm` are
18041
+ * kilometers. Validation errors from the core sample builder are thrown as
18042
+ * `RangeError`.
18043
+ * @param {any} samples
18044
+ * @param {number} shell_height_km
18045
+ * @param {number} base_radius_km
18046
+ * @param {number} exponent
18047
+ * @returns {Ionex}
18048
+ */
18049
+ export function ionexFromNodeSamples(samples, shell_height_km, base_radius_km, exponent) {
18050
+ const ret = wasm.ionexFromNodeSamples(samples, shell_height_km, base_radius_km, exponent);
18051
+ if (ret[2]) {
18052
+ throw takeFromExternrefTable0(ret[1]);
18053
+ }
18054
+ return Ionex.__wrap(ret[0]);
18055
+ }
18056
+
18057
+ /**
18058
+ * Build an IONEX vertical-TEC product from full-grid samples.
18059
+ *
18060
+ * `samples.mapEpochsJ2000S` are integer seconds since J2000. Latitude and
18061
+ * longitude nodes and `dlatDeg` / `dlonDeg` are degrees. `tecMaps` and
18062
+ * `rmsMaps` are TECU and indexed `[map][iLat][iLon]`. The shell height and
18063
+ * base radius are kilometers. Validation errors from the core sample builder
18064
+ * are thrown as `RangeError`.
18065
+ * @param {any} samples
18066
+ * @returns {Ionex}
18067
+ */
18068
+ export function ionexFromSamples(samples) {
18069
+ const ret = wasm.ionexFromSamples(samples);
18070
+ if (ret[2]) {
18071
+ throw takeFromExternrefTable0(ret[1]);
18072
+ }
18073
+ return Ionex.__wrap(ret[0]);
18074
+ }
18075
+
17025
18076
  /**
17026
18077
  * Ionosphere-free code or meter-valued phase combination, metres.
17027
18078
  * @param {number} obs1_m
@@ -17923,6 +18974,25 @@ export function meridianTransitsSpk(spk, body, station, start_unix_us, end_unix_
17923
18974
  return takeFromExternrefTable0(ret[0]);
17924
18975
  }
17925
18976
 
18977
+ /**
18978
+ * Modified Allan deviation for explicit averaging factors.
18979
+ *
18980
+ * `series` is `{ kind, values }`, `tau0S` is seconds, and
18981
+ * `averagingFactors` contains positive integer `m` values. Returns
18982
+ * `{ tauS, deviation, n }`.
18983
+ * @param {any} series
18984
+ * @param {number} tau0_s
18985
+ * @param {any} averaging_factors
18986
+ * @returns {any}
18987
+ */
18988
+ export function modifiedAdev(series, tau0_s, averaging_factors) {
18989
+ const ret = wasm.modifiedAdev(series, tau0_s, averaging_factors);
18990
+ if (ret[2]) {
18991
+ throw takeFromExternrefTable0(ret[1]);
18992
+ }
18993
+ return takeFromExternrefTable0(ret[0]);
18994
+ }
18995
+
17926
18996
  /**
17927
18997
  * Mean, variance, skewness, and excess kurtosis of a residual set in one pass.
17928
18998
  *
@@ -18419,6 +19489,25 @@ export function orthometricHeightM(ellipsoidal_height_m, lat_rad, lon_rad) {
18419
19489
  return ret;
18420
19490
  }
18421
19491
 
19492
+ /**
19493
+ * Fully overlapping Allan deviation for explicit averaging factors.
19494
+ *
19495
+ * `series` is `{ kind, values }`, `tau0S` is seconds, and
19496
+ * `averagingFactors` contains positive integer `m` values. Returns
19497
+ * `{ tauS, deviation, n }`.
19498
+ * @param {any} series
19499
+ * @param {number} tau0_s
19500
+ * @param {any} averaging_factors
19501
+ * @returns {any}
19502
+ */
19503
+ export function overlappingAdev(series, tau0_s, averaging_factors) {
19504
+ const ret = wasm.overlappingAdev(series, tau0_s, averaging_factors);
19505
+ if (ret[2]) {
19506
+ throw takeFromExternrefTable0(ret[1]);
19507
+ }
19508
+ return takeFromExternrefTable0(ret[0]);
19509
+ }
19510
+
18422
19511
  /**
18423
19512
  * Parallactic angle (degrees) of a target at a station.
18424
19513
  *
@@ -19573,6 +20662,22 @@ export function sampleSp3Ephemeris(sp3, satellites, start_j2000_s, stop_j2000_s,
19573
20662
  return takeFromExternrefTable0(ret[0]);
19574
20663
  }
19575
20664
 
20665
+ /**
20666
+ * Convert an SBAS satellite token such as `"S29"` to broadcast PRN number
20667
+ * such as `129`. Returns `null` for non-SBAS satellites.
20668
+ * @param {string} sat
20669
+ * @returns {any}
20670
+ */
20671
+ export function satToSbasPrn(sat) {
20672
+ const ptr0 = passStringToWasm0(sat, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
20673
+ const len0 = WASM_VECTOR_LEN;
20674
+ const ret = wasm.satToSbasPrn(ptr0, len0);
20675
+ if (ret[2]) {
20676
+ throw takeFromExternrefTable0(ret[1]);
20677
+ }
20678
+ return takeFromExternrefTable0(ret[0]);
20679
+ }
20680
+
19576
20681
  /**
19577
20682
  * Apparent visual magnitude of a sunlit body from a diffuse-sphere phase law.
19578
20683
  *
@@ -19596,6 +20701,10 @@ export function satelliteVisualMagnitude(range_km, phase_angle_deg, standard_mag
19596
20701
  }
19597
20702
 
19598
20703
  /**
20704
+ * SBAS-corrected broadcast satellite position and clock.
20705
+ *
20706
+ * Position is ECEF meters and clock is seconds at `tJ2000S`, seconds since
20707
+ * J2000. Returns `null` when the selected SBAS mode cannot provide a state.
19599
20708
  * @param {BroadcastEphemeris} broadcast
19600
20709
  * @param {SbasCorrectionStore} store
19601
20710
  * @param {string} geo
@@ -19620,6 +20729,17 @@ export function sbasCorrectedState(broadcast, store, geo, sat, t_j2000_s, mode)
19620
20729
  return takeFromExternrefTable0(ret[0]);
19621
20730
  }
19622
20731
 
20732
+ /**
20733
+ * Convert an SBAS broadcast PRN number such as `129` to an SBAS satellite
20734
+ * token such as `"S29"`. Returns `null` when the PRN is outside the SBAS range.
20735
+ * @param {number} broadcast_prn
20736
+ * @returns {any}
20737
+ */
20738
+ export function sbasPrnToSat(broadcast_prn) {
20739
+ const ret = wasm.sbasPrnToSat(broadcast_prn);
20740
+ return ret;
20741
+ }
20742
+
19623
20743
  /**
19624
20744
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
19625
20745
  *
@@ -20177,6 +21297,11 @@ export function solveRtkFloat(config) {
20177
21297
  }
20178
21298
 
20179
21299
  /**
21300
+ * Solve SPP using an SBAS-corrected broadcast source and optional SBAS iono.
21301
+ *
21302
+ * The returned solution uses the same units as `solveSpp`: ECEF meters,
21303
+ * receiver clock seconds, residual meters, and optional geodetic radians plus
21304
+ * ellipsoidal height meters.
20180
21305
  * @param {BroadcastEphemeris} broadcast
20181
21306
  * @param {SbasCorrectionStore} store
20182
21307
  * @param {string} geo
@@ -20560,6 +21685,37 @@ export function terminatorLatitudeDeg(sub_solar_latitude_deg, sub_solar_longitud
20560
21685
  return ret[0];
20561
21686
  }
20562
21687
 
21688
+ /**
21689
+ * Return an FNV-1a checksum for terrain store bytes.
21690
+ * @param {Uint8Array} bytes
21691
+ * @returns {bigint}
21692
+ */
21693
+ export function terrainStoreChecksum64(bytes) {
21694
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
21695
+ const len0 = WASM_VECTOR_LEN;
21696
+ const ret = wasm.terrainStoreChecksum64(ptr0, len0);
21697
+ return BigInt.asUintN(64, ret);
21698
+ }
21699
+
21700
+ /**
21701
+ * Time deviation for explicit averaging factors.
21702
+ *
21703
+ * `series` is `{ kind, values }`, `tau0S` is seconds, and
21704
+ * `averagingFactors` contains positive integer `m` values. Returns
21705
+ * `{ tauS, deviation, n }`.
21706
+ * @param {any} series
21707
+ * @param {number} tau0_s
21708
+ * @param {any} averaging_factors
21709
+ * @returns {any}
21710
+ */
21711
+ export function timeDeviation(series, tau0_s, averaging_factors) {
21712
+ const ret = wasm.timeDeviation(series, tau0_s, averaging_factors);
21713
+ if (ret[2]) {
21714
+ throw takeFromExternrefTable0(ret[1]);
21715
+ }
21716
+ return takeFromExternrefTable0(ret[0]);
21717
+ }
21718
+
20563
21719
  /**
20564
21720
  * Short uppercase identifier for a time scale, e.g. `"GPST"`.
20565
21721
  * @param {TimeScale} scale
@@ -20910,6 +22066,22 @@ export function wideLaneWavelength(f1_hz, f2_hz) {
20910
22066
  }
20911
22067
  return ret[0];
20912
22068
  }
22069
+
22070
+ /**
22071
+ * Convert a DTED tile tree and write canonical terrain store bytes to a path.
22072
+ * @param {string} root
22073
+ * @param {string} out_path
22074
+ */
22075
+ export function writeDtedTreeToMmapStore(root, out_path) {
22076
+ const ptr0 = passStringToWasm0(root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
22077
+ const len0 = WASM_VECTOR_LEN;
22078
+ const ptr1 = passStringToWasm0(out_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
22079
+ const len1 = WASM_VECTOR_LEN;
22080
+ const ret = wasm.writeDtedTreeToMmapStore(ptr0, len0, ptr1, len1);
22081
+ if (ret[1]) {
22082
+ throw takeFromExternrefTable0(ret[0]);
22083
+ }
22084
+ }
20913
22085
  function __wbg_get_imports() {
20914
22086
  const import0 = {
20915
22087
  __proto__: null,
@@ -21290,6 +22462,10 @@ function __wbg_get_imports() {
21290
22462
  const ret = SpkSegment.__wrap(arg0);
21291
22463
  return ret;
21292
22464
  },
22465
+ __wbg_terrainstoretileindex_new: function(arg0) {
22466
+ const ret = TerrainStoreTileIndex.__wrap(arg0);
22467
+ return ret;
22468
+ },
21293
22469
  __wbg_tle_unwrap: function(arg0) {
21294
22470
  const ret = Tle.__unwrap(arg0);
21295
22471
  return ret;
@@ -21452,6 +22628,12 @@ const DragForceFinalization = (typeof FinalizationRegistry === 'undefined')
21452
22628
  const DtedTerrainFinalization = (typeof FinalizationRegistry === 'undefined')
21453
22629
  ? { register: () => {}, unregister: () => {} }
21454
22630
  : new FinalizationRegistry(ptr => wasm.__wbg_dtedterrain_free(ptr, 1));
22631
+ const Egm96FifteenMinuteGeoidFinalization = (typeof FinalizationRegistry === 'undefined')
22632
+ ? { register: () => {}, unregister: () => {} }
22633
+ : new FinalizationRegistry(ptr => wasm.__wbg_egm96fifteenminutegeoid_free(ptr, 1));
22634
+ const EllipsoidalHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
22635
+ ? { register: () => {}, unregister: () => {} }
22636
+ : new FinalizationRegistry(ptr => wasm.__wbg_ellipsoidalheightm_free(ptr, 1));
21455
22637
  const EncounterFrameFinalization = (typeof FinalizationRegistry === 'undefined')
21456
22638
  ? { register: () => {}, unregister: () => {} }
21457
22639
  : new FinalizationRegistry(ptr => wasm.__wbg_encounterframe_free(ptr, 1));
@@ -21560,6 +22742,9 @@ const LookAnglesFinalization = (typeof FinalizationRegistry === 'undefined')
21560
22742
  const MappingFactorsFinalization = (typeof FinalizationRegistry === 'undefined')
21561
22743
  ? { register: () => {}, unregister: () => {} }
21562
22744
  : new FinalizationRegistry(ptr => wasm.__wbg_mappingfactors_free(ptr, 1));
22745
+ const MmapTerrainFinalization = (typeof FinalizationRegistry === 'undefined')
22746
+ ? { register: () => {}, unregister: () => {} }
22747
+ : new FinalizationRegistry(ptr => wasm.__wbg_mmapterrain_free(ptr, 1));
21563
22748
  const MoonElevationCrossingFinalization = (typeof FinalizationRegistry === 'undefined')
21564
22749
  ? { register: () => {}, unregister: () => {} }
21565
22750
  : new FinalizationRegistry(ptr => wasm.__wbg_moonelevationcrossing_free(ptr, 1));
@@ -21644,6 +22829,9 @@ const OpmSpacecraftFinalization = (typeof FinalizationRegistry === 'undefined')
21644
22829
  const OpmStateFinalization = (typeof FinalizationRegistry === 'undefined')
21645
22830
  ? { register: () => {}, unregister: () => {} }
21646
22831
  : new FinalizationRegistry(ptr => wasm.__wbg_opmstate_free(ptr, 1));
22832
+ const OrthometricHeightMFinalization = (typeof FinalizationRegistry === 'undefined')
22833
+ ? { register: () => {}, unregister: () => {} }
22834
+ : new FinalizationRegistry(ptr => wasm.__wbg_orthometricheightm_free(ptr, 1));
21647
22835
  const ParsedTleFileFinalization = (typeof FinalizationRegistry === 'undefined')
21648
22836
  ? { register: () => {}, unregister: () => {} }
21649
22837
  : new FinalizationRegistry(ptr => wasm.__wbg_parsedtlefile_free(ptr, 1));
@@ -21785,6 +22973,12 @@ const SsrCorrectionStoreFinalization = (typeof FinalizationRegistry === 'undefin
21785
22973
  const SunMoonFinalization = (typeof FinalizationRegistry === 'undefined')
21786
22974
  ? { register: () => {}, unregister: () => {} }
21787
22975
  : new FinalizationRegistry(ptr => wasm.__wbg_sunmoon_free(ptr, 1));
22976
+ const TerrainGeoidModelFinalization = (typeof FinalizationRegistry === 'undefined')
22977
+ ? { register: () => {}, unregister: () => {} }
22978
+ : new FinalizationRegistry(ptr => wasm.__wbg_terraingeoidmodel_free(ptr, 1));
22979
+ const TerrainStoreTileIndexFinalization = (typeof FinalizationRegistry === 'undefined')
22980
+ ? { register: () => {}, unregister: () => {} }
22981
+ : new FinalizationRegistry(ptr => wasm.__wbg_terrainstoretileindex_free(ptr, 1));
21788
22982
  const TleFinalization = (typeof FinalizationRegistry === 'undefined')
21789
22983
  ? { register: () => {}, unregister: () => {} }
21790
22984
  : new FinalizationRegistry(ptr => wasm.__wbg_tle_free(ptr, 1));