@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/package.json +1 -1
- package/pkg/sidereon.d.ts +2031 -1362
- package/pkg/sidereon.js +1230 -36
- package/pkg/sidereon_bg.wasm +0 -0
- package/pkg/sidereon_bg.wasm.d.ts +1433 -1361
- package/pkg-node/sidereon.d.ts +597 -0
- package/pkg-node/sidereon.js +1256 -37
- package/pkg-node/sidereon_bg.wasm +0 -0
- package/pkg-node/sidereon_bg.wasm.d.ts +1433 -1361
package/pkg-node/sidereon.d.ts
CHANGED
|
@@ -1454,14 +1454,84 @@ export class DragForce {
|
|
|
1454
1454
|
readonly spaceWeather: SpaceWeather;
|
|
1455
1455
|
}
|
|
1456
1456
|
|
|
1457
|
+
/**
|
|
1458
|
+
* A DTED terrain tile cache rooted at a directory of DTED Level 2 files.
|
|
1459
|
+
*
|
|
1460
|
+
* Heights are ORTHOMETRIC terrain elevations in meters. Point order is always
|
|
1461
|
+
* longitude first, then latitude, both in degrees.
|
|
1462
|
+
*/
|
|
1457
1463
|
export class DtedTerrain {
|
|
1458
1464
|
free(): void;
|
|
1459
1465
|
[Symbol.dispose](): void;
|
|
1466
|
+
/**
|
|
1467
|
+
* Batch terrain heights in ORTHOMETRIC meters for longitude-first points.
|
|
1468
|
+
*
|
|
1469
|
+
* `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
|
|
1470
|
+
* `{ longitudeDeg, latitudeDeg }` objects. `options.interpolation` is
|
|
1471
|
+
* `"bilinear"`, `"nearest"`, or `"nearestPosting"`. The return value is
|
|
1472
|
+
* index-aligned to `points`; each entry is `{ ok: true, heightM }` or
|
|
1473
|
+
* `{ ok: false, error }`. Missing tiles evaluate to `0.0`.
|
|
1474
|
+
*/
|
|
1475
|
+
heightBatch(points: any, options: any): any;
|
|
1476
|
+
/**
|
|
1477
|
+
* Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
|
|
1478
|
+
*
|
|
1479
|
+
* Longitude and latitude are degrees. The lookup uses bilinear
|
|
1480
|
+
* interpolation. Missing tiles evaluate to `0.0`, matching the core DTED
|
|
1481
|
+
* fallback.
|
|
1482
|
+
*/
|
|
1460
1483
|
heightM(longitude_deg: number, latitude_deg: number): number;
|
|
1484
|
+
/**
|
|
1485
|
+
* Terrain height in ORTHOMETRIC meters at `(longitudeDeg, latitudeDeg)`.
|
|
1486
|
+
*
|
|
1487
|
+
* Longitude and latitude are degrees. `options.interpolation` is
|
|
1488
|
+
* `"bilinear"`, `"nearest"`, or `"nearestPosting"`. Missing tiles evaluate
|
|
1489
|
+
* to `0.0`, matching the core DTED fallback.
|
|
1490
|
+
*/
|
|
1461
1491
|
heightMWithOptions(longitude_deg: number, latitude_deg: number, options: any): number;
|
|
1492
|
+
/**
|
|
1493
|
+
* Create a DTED terrain reader rooted at `root`.
|
|
1494
|
+
*
|
|
1495
|
+
* The root may contain tile files directly or the nested block layout the
|
|
1496
|
+
* core reader recognizes. Height results are ORTHOMETRIC meters.
|
|
1497
|
+
*/
|
|
1462
1498
|
constructor(root: string);
|
|
1463
1499
|
}
|
|
1464
1500
|
|
|
1501
|
+
/**
|
|
1502
|
+
* Loaded EGM96 15-arcminute geoid grid for explicit terrain datum conversion.
|
|
1503
|
+
*/
|
|
1504
|
+
export class Egm96FifteenMinuteGeoid {
|
|
1505
|
+
private constructor();
|
|
1506
|
+
free(): void;
|
|
1507
|
+
[Symbol.dispose](): void;
|
|
1508
|
+
/**
|
|
1509
|
+
* Load `WW15MGH.DAC` bytes as an EGM96 15-arcminute geoid grid.
|
|
1510
|
+
*/
|
|
1511
|
+
static fromWw15mghDacBytes(bytes: Uint8Array): Egm96FifteenMinuteGeoid;
|
|
1512
|
+
/**
|
|
1513
|
+
* Read and load `WW15MGH.DAC` from disk. A missing file throws a typed
|
|
1514
|
+
* `MissingEgm96Dac` error with `path` and `remediation` fields.
|
|
1515
|
+
*/
|
|
1516
|
+
static fromWw15mghDacPath(path: string): Egm96FifteenMinuteGeoid;
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
/**
|
|
1520
|
+
* Ellipsoidal height `h` in metres above the WGS84 reference ellipsoid.
|
|
1521
|
+
*/
|
|
1522
|
+
export class EllipsoidalHeightM {
|
|
1523
|
+
free(): void;
|
|
1524
|
+
[Symbol.dispose](): void;
|
|
1525
|
+
/**
|
|
1526
|
+
* Build an ellipsoidal height `h` in metres.
|
|
1527
|
+
*/
|
|
1528
|
+
constructor(value_m: number);
|
|
1529
|
+
/**
|
|
1530
|
+
* Ellipsoidal height `h`, metres above the WGS84 reference ellipsoid.
|
|
1531
|
+
*/
|
|
1532
|
+
readonly valueM: number;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1465
1535
|
/**
|
|
1466
1536
|
* Orthonormal encounter frame built from two relative states.
|
|
1467
1537
|
*/
|
|
@@ -2160,6 +2230,22 @@ export class Ionex {
|
|
|
2160
2230
|
* a `RangeError` on non-finite input and an `Error` on out-of-range input.
|
|
2161
2231
|
*/
|
|
2162
2232
|
slantDelay(lat_deg: number, lon_deg: number, azimuth_deg: number, elevation_deg: number, epoch_j2000_s: number, frequency_hz: number): number;
|
|
2233
|
+
/**
|
|
2234
|
+
* Extract the full IONEX vertical-TEC grids as plain sample data.
|
|
2235
|
+
*
|
|
2236
|
+
* Epochs are integer seconds since J2000. Latitude and longitude nodes and
|
|
2237
|
+
* grid steps are degrees. TEC and RMS maps are TECU and indexed
|
|
2238
|
+
* `[map][iLat][iLon]`. The shell height and base radius are kilometers.
|
|
2239
|
+
*/
|
|
2240
|
+
tecGridSamples(): any;
|
|
2241
|
+
/**
|
|
2242
|
+
* Extract one IONEX vertical-TEC sample per grid node.
|
|
2243
|
+
*
|
|
2244
|
+
* Each sample is `{ epochJ2000S, latDeg, lonDeg, vtecTecu, rmsTecu }`.
|
|
2245
|
+
* Epochs are integer seconds since J2000, coordinates are degrees, and TEC
|
|
2246
|
+
* and RMS values are TECU.
|
|
2247
|
+
*/
|
|
2248
|
+
tecSamples(): any;
|
|
2163
2249
|
/**
|
|
2164
2250
|
* Serialize to standard IONEX text. Deterministic: the same product always
|
|
2165
2251
|
* produces byte-identical text, and re-parsing the output yields an equal
|
|
@@ -2171,6 +2257,16 @@ export class Ionex {
|
|
|
2171
2257
|
* Mean Earth radius used by the geometry, kilometres.
|
|
2172
2258
|
*/
|
|
2173
2259
|
readonly baseRadiusKm: number;
|
|
2260
|
+
/**
|
|
2261
|
+
* Signed latitude grid step, degrees. Standard IONEX grids are
|
|
2262
|
+
* north-to-south, so this value is usually negative.
|
|
2263
|
+
*/
|
|
2264
|
+
readonly dlatDeg: number;
|
|
2265
|
+
/**
|
|
2266
|
+
* Signed longitude grid step, degrees. Standard IONEX grids are
|
|
2267
|
+
* west-to-east, so this value is usually positive.
|
|
2268
|
+
*/
|
|
2269
|
+
readonly dlonDeg: number;
|
|
2174
2270
|
/**
|
|
2175
2271
|
* The IONEX `EXPONENT` header field; the TEC scale is `10^exponent`.
|
|
2176
2272
|
*/
|
|
@@ -2732,6 +2828,104 @@ export class MappingFactors {
|
|
|
2732
2828
|
readonly wet: number;
|
|
2733
2829
|
}
|
|
2734
2830
|
|
|
2831
|
+
/**
|
|
2832
|
+
* In-memory reader for memory-mappable terrain store bytes.
|
|
2833
|
+
*
|
|
2834
|
+
* Query results are orthometric terrain heights `H` in metres. Use the
|
|
2835
|
+
* ellipsoidal methods only when a geoid model is deliberately selected.
|
|
2836
|
+
*/
|
|
2837
|
+
export class MmapTerrain {
|
|
2838
|
+
private constructor();
|
|
2839
|
+
free(): void;
|
|
2840
|
+
[Symbol.dispose](): void;
|
|
2841
|
+
/**
|
|
2842
|
+
* FNV-1a checksum of the full terrain store byte span.
|
|
2843
|
+
*/
|
|
2844
|
+
checksum64(): bigint;
|
|
2845
|
+
/**
|
|
2846
|
+
* Ellipsoidal height `h = H + N` in metres at `(longitudeDeg, latitudeDeg)`
|
|
2847
|
+
* using the embedded EGM96 1-degree geoid grid.
|
|
2848
|
+
*/
|
|
2849
|
+
ellipsoidalHeightM(longitude_deg: number, latitude_deg: number): EllipsoidalHeightM;
|
|
2850
|
+
/**
|
|
2851
|
+
* Ellipsoidal height `h = H + N` in metres using an explicit geoid model.
|
|
2852
|
+
*
|
|
2853
|
+
* The terrain lookup input order is `(longitudeDeg, latitudeDeg)`. Choosing
|
|
2854
|
+
* the EGM96 15-arcminute model requires a loaded `WW15MGH.DAC` grid and
|
|
2855
|
+
* does not fall back to the embedded 1-degree grid.
|
|
2856
|
+
*/
|
|
2857
|
+
ellipsoidalHeightMWithModel(longitude_deg: number, latitude_deg: number, options: any, geoid: TerrainGeoidModel): EllipsoidalHeightM;
|
|
2858
|
+
/**
|
|
2859
|
+
* Ellipsoidal height `h = H + N` in metres using embedded EGM96 1-degree
|
|
2860
|
+
* geoid conversion and explicit terrain lookup options.
|
|
2861
|
+
*/
|
|
2862
|
+
ellipsoidalHeightMWithOptions(longitude_deg: number, latitude_deg: number, options: any): EllipsoidalHeightM;
|
|
2863
|
+
/**
|
|
2864
|
+
* Parse terrain store bytes from a `Uint8Array`.
|
|
2865
|
+
*/
|
|
2866
|
+
static fromBytes(bytes: Uint8Array): MmapTerrain;
|
|
2867
|
+
/**
|
|
2868
|
+
* Read a terrain store file from host I/O and parse it into memory.
|
|
2869
|
+
*
|
|
2870
|
+
* Browser runtimes should use [`MmapTerrain.fromBytes`] with fetched bytes.
|
|
2871
|
+
*/
|
|
2872
|
+
static fromPath(path: string): MmapTerrain;
|
|
2873
|
+
/**
|
|
2874
|
+
* Parse terrain store bytes from an owned `Uint8Array` copy.
|
|
2875
|
+
*/
|
|
2876
|
+
static fromVec(bytes: Uint8Array): MmapTerrain;
|
|
2877
|
+
/**
|
|
2878
|
+
* Batch ORTHOMETRIC terrain heights for longitude-first points.
|
|
2879
|
+
*
|
|
2880
|
+
* `points` is an array of `[longitudeDeg, latitudeDeg]` pairs or
|
|
2881
|
+
* `{ longitudeDeg, latitudeDeg }` objects. Each entry is
|
|
2882
|
+
* `{ ok: true, heightM }` or `{ ok: false, error }`.
|
|
2883
|
+
*/
|
|
2884
|
+
heightBatch(points: any, options: any): any;
|
|
2885
|
+
/**
|
|
2886
|
+
* Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
|
|
2887
|
+
*
|
|
2888
|
+
* Longitude and latitude are degrees. The lookup uses bilinear
|
|
2889
|
+
* interpolation. Missing tiles evaluate to `0.0`.
|
|
2890
|
+
*/
|
|
2891
|
+
heightM(longitude_deg: number, latitude_deg: number): number;
|
|
2892
|
+
/**
|
|
2893
|
+
* Terrain height in ORTHOMETRIC metres at `(longitudeDeg, latitudeDeg)`.
|
|
2894
|
+
*
|
|
2895
|
+
* `options.interpolation` is `"bilinear"`, `"nearest"`, or
|
|
2896
|
+
* `"nearestPosting"`.
|
|
2897
|
+
*/
|
|
2898
|
+
heightMWithOptions(longitude_deg: number, latitude_deg: number, options: any): number;
|
|
2899
|
+
/**
|
|
2900
|
+
* Batch typed ORTHOMETRIC terrain heights for longitude-first points.
|
|
2901
|
+
*
|
|
2902
|
+
* Each entry is `{ ok: true, orthometricHeightM: { valueM } }` or
|
|
2903
|
+
* `{ ok: false, error }`.
|
|
2904
|
+
*/
|
|
2905
|
+
orthometricHeightBatch(points: any, options: any): any;
|
|
2906
|
+
/**
|
|
2907
|
+
* Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`.
|
|
2908
|
+
*/
|
|
2909
|
+
orthometricHeightM(longitude_deg: number, latitude_deg: number): OrthometricHeightM;
|
|
2910
|
+
/**
|
|
2911
|
+
* Typed ORTHOMETRIC terrain height `H` at `(longitudeDeg, latitudeDeg)`
|
|
2912
|
+
* with explicit lookup options.
|
|
2913
|
+
*/
|
|
2914
|
+
orthometricHeightMWithOptions(longitude_deg: number, latitude_deg: number, options: any): OrthometricHeightM;
|
|
2915
|
+
/**
|
|
2916
|
+
* Parsed tile index records in store order.
|
|
2917
|
+
*/
|
|
2918
|
+
tileIndex(): TerrainStoreTileIndex[];
|
|
2919
|
+
/**
|
|
2920
|
+
* Canonical store bytes for this parsed terrain store.
|
|
2921
|
+
*/
|
|
2922
|
+
toBytes(): Uint8Array;
|
|
2923
|
+
/**
|
|
2924
|
+
* File-level vertical datum for the store's orthometric posting payloads.
|
|
2925
|
+
*/
|
|
2926
|
+
readonly verticalDatum: VerticalDatum;
|
|
2927
|
+
}
|
|
2928
|
+
|
|
2735
2929
|
/**
|
|
2736
2930
|
* One refined Moon elevation threshold crossing (moonrise / moonset).
|
|
2737
2931
|
*/
|
|
@@ -3782,6 +3976,33 @@ export class OpmState {
|
|
|
3782
3976
|
readonly velocityKmS: Float64Array;
|
|
3783
3977
|
}
|
|
3784
3978
|
|
|
3979
|
+
/**
|
|
3980
|
+
* Orthometric terrain height `H` in metres above the EGM96 mean sea level
|
|
3981
|
+
* geoid.
|
|
3982
|
+
*/
|
|
3983
|
+
export class OrthometricHeightM {
|
|
3984
|
+
free(): void;
|
|
3985
|
+
[Symbol.dispose](): void;
|
|
3986
|
+
/**
|
|
3987
|
+
* Build an orthometric height `H` in metres.
|
|
3988
|
+
*/
|
|
3989
|
+
constructor(value_m: number);
|
|
3990
|
+
/**
|
|
3991
|
+
* Convert to ellipsoidal height `h = H + N` using degree inputs in geoid
|
|
3992
|
+
* order `(latitudeDeg, longitudeDeg)` and an explicit geoid model.
|
|
3993
|
+
*/
|
|
3994
|
+
toEllipsoidalHeightDeg(latitude_deg: number, longitude_deg: number, geoid: TerrainGeoidModel): EllipsoidalHeightM;
|
|
3995
|
+
/**
|
|
3996
|
+
* Convert to ellipsoidal height `h = H + N` using radian inputs in geoid
|
|
3997
|
+
* order `(latitudeRad, longitudeRad)` and an explicit geoid model.
|
|
3998
|
+
*/
|
|
3999
|
+
toEllipsoidalHeightRad(latitude_rad: number, longitude_rad: number, geoid: TerrainGeoidModel): EllipsoidalHeightM;
|
|
4000
|
+
/**
|
|
4001
|
+
* Orthometric height `H`, metres above the EGM96 mean sea level geoid.
|
|
4002
|
+
*/
|
|
4003
|
+
readonly valueM: number;
|
|
4004
|
+
}
|
|
4005
|
+
|
|
3785
4006
|
/**
|
|
3786
4007
|
* The result of [`parseTleFile`]: the satellites that parsed, plus a count of
|
|
3787
4008
|
* complete records that were skipped because SGP4 initialization failed.
|
|
@@ -4518,13 +4739,80 @@ export class SatelliteVector {
|
|
|
4518
4739
|
readonly values: Float64Array;
|
|
4519
4740
|
}
|
|
4520
4741
|
|
|
4742
|
+
/**
|
|
4743
|
+
* Mutable SBAS correction store.
|
|
4744
|
+
*
|
|
4745
|
+
* Ingest raw SBAS messages with a source GEO and GNSS time, then query decoded
|
|
4746
|
+
* fast, long-term, ionospheric, and GEO navigation correction records.
|
|
4747
|
+
*/
|
|
4521
4748
|
export class SbasCorrectionStore {
|
|
4522
4749
|
free(): void;
|
|
4523
4750
|
[Symbol.dispose](): void;
|
|
4751
|
+
/**
|
|
4752
|
+
* Fast pseudorange correction for `(geo, sat)`, or `null`.
|
|
4753
|
+
*
|
|
4754
|
+
* `prcM` is meters, `rrcMS` is meters per second, and `tOfJ2000S` is
|
|
4755
|
+
* seconds since J2000.
|
|
4756
|
+
*/
|
|
4757
|
+
fastCorrection(geo: string, sat: string): any;
|
|
4758
|
+
/**
|
|
4759
|
+
* SBAS GEO navigation state for `geo`, or `null`.
|
|
4760
|
+
*
|
|
4761
|
+
* Positions are ECEF meters, velocities are ECEF meters per second,
|
|
4762
|
+
* accelerations are ECEF meters per second squared, clock fields are
|
|
4763
|
+
* seconds and seconds per second, and `t0J2000S` is seconds since J2000.
|
|
4764
|
+
*/
|
|
4765
|
+
geoNavState(geo: string): any;
|
|
4766
|
+
/**
|
|
4767
|
+
* Ingest one decoded SBAS message into the correction store.
|
|
4768
|
+
*
|
|
4769
|
+
* `geo` is the SBAS source satellite token such as `"S29"`. `week` and
|
|
4770
|
+
* `towS` are in the selected GNSS time scale. `form` is `"framed250"` or
|
|
4771
|
+
* `"body226"`.
|
|
4772
|
+
*/
|
|
4524
4773
|
ingest(bytes: Uint8Array, form: string | null | undefined, geo: string, week: number, tow_s: number, time_scale?: string | null): void;
|
|
4774
|
+
/**
|
|
4775
|
+
* SBAS ionospheric grid for `geo`, or `null`.
|
|
4776
|
+
*
|
|
4777
|
+
* Grid point latitudes and longitudes are degrees, vertical delays are
|
|
4778
|
+
* meters, and GIVE variances are square meters when present.
|
|
4779
|
+
*/
|
|
4780
|
+
ionoGrid(geo: string): any;
|
|
4781
|
+
/**
|
|
4782
|
+
* SBAS ionospheric slant delay in meters, or `null`.
|
|
4783
|
+
*
|
|
4784
|
+
* Receiver latitude, longitude, elevation, and azimuth are radians.
|
|
4785
|
+
* `frequencyHz` is the carrier frequency for the reported group delay.
|
|
4786
|
+
*/
|
|
4525
4787
|
ionoSlantDelayM(geo: string, receiver_lat_rad: number, receiver_lon_rad: number, receiver_height_m: number, elevation_rad: number, azimuth_rad: number, frequency_hz: number): number | undefined;
|
|
4788
|
+
/**
|
|
4789
|
+
* Long-term orbit and clock correction for `(geo, sat)`, or `null`.
|
|
4790
|
+
*
|
|
4791
|
+
* Position deltas are ECEF meters, rates are ECEF meters per second, clock
|
|
4792
|
+
* deltas are seconds and seconds per second, and `t0J2000S` is seconds
|
|
4793
|
+
* since J2000.
|
|
4794
|
+
*/
|
|
4795
|
+
longTermCorrection(geo: string, sat: string): any;
|
|
4796
|
+
/**
|
|
4797
|
+
* Create an empty SBAS correction store.
|
|
4798
|
+
*/
|
|
4526
4799
|
constructor();
|
|
4800
|
+
/**
|
|
4801
|
+
* Ready SBAS GEO source satellites at `tJ2000S`.
|
|
4802
|
+
*
|
|
4803
|
+
* The time is seconds since J2000. Returned tokens are strings such as
|
|
4804
|
+
* `"S29"`, sorted by most recent update first.
|
|
4805
|
+
*/
|
|
4527
4806
|
readyGeos(t_j2000_s: number): string[];
|
|
4807
|
+
/**
|
|
4808
|
+
* Allow or disallow partial SBAS corrections when building corrected
|
|
4809
|
+
* ephemeris states.
|
|
4810
|
+
*/
|
|
4811
|
+
setAllowPartial(yes: boolean): void;
|
|
4812
|
+
/**
|
|
4813
|
+
* Set the maximum staleness for fresh SBAS corrections, in seconds.
|
|
4814
|
+
*/
|
|
4815
|
+
setStalenessSeconds(seconds: number): void;
|
|
4528
4816
|
}
|
|
4529
4817
|
|
|
4530
4818
|
/**
|
|
@@ -5296,6 +5584,139 @@ export class SunMoon {
|
|
|
5296
5584
|
readonly sun: Float64Array;
|
|
5297
5585
|
}
|
|
5298
5586
|
|
|
5587
|
+
/**
|
|
5588
|
+
* Terrain datum conversion and optional geoid-grid loading error variants.
|
|
5589
|
+
*/
|
|
5590
|
+
export enum TerrainDatumError {
|
|
5591
|
+
/**
|
|
5592
|
+
* Terrain lookup failed before datum conversion.
|
|
5593
|
+
*/
|
|
5594
|
+
Terrain = 0,
|
|
5595
|
+
/**
|
|
5596
|
+
* A geoid grid could not be parsed.
|
|
5597
|
+
*/
|
|
5598
|
+
Geoid = 1,
|
|
5599
|
+
/**
|
|
5600
|
+
* Reading a geoid grid failed for a reason other than absence.
|
|
5601
|
+
*/
|
|
5602
|
+
Io = 2,
|
|
5603
|
+
/**
|
|
5604
|
+
* The EGM96 15-arcminute `WW15MGH.DAC` grid was requested but is absent.
|
|
5605
|
+
*/
|
|
5606
|
+
MissingEgm96Dac = 3,
|
|
5607
|
+
}
|
|
5608
|
+
|
|
5609
|
+
/**
|
|
5610
|
+
* Geoid model used to convert terrain orthometric height `H` to ellipsoidal
|
|
5611
|
+
* height `h`.
|
|
5612
|
+
*/
|
|
5613
|
+
export class TerrainGeoidModel {
|
|
5614
|
+
private constructor();
|
|
5615
|
+
free(): void;
|
|
5616
|
+
[Symbol.dispose](): void;
|
|
5617
|
+
/**
|
|
5618
|
+
* Use a caller-supplied EGM96 15-arcminute geoid grid for `h = H + N`.
|
|
5619
|
+
*/
|
|
5620
|
+
static egm96FifteenMinute(geoid: Egm96FifteenMinuteGeoid): TerrainGeoidModel;
|
|
5621
|
+
/**
|
|
5622
|
+
* Use the embedded EGM96 1-degree geoid grid for `h = H + N`.
|
|
5623
|
+
*/
|
|
5624
|
+
static egm96OneDegree(): TerrainGeoidModel;
|
|
5625
|
+
/**
|
|
5626
|
+
* Model discriminator: `"egm96OneDegree"` or `"egm96FifteenMinute"`.
|
|
5627
|
+
*/
|
|
5628
|
+
readonly kind: string;
|
|
5629
|
+
}
|
|
5630
|
+
|
|
5631
|
+
/**
|
|
5632
|
+
* Terrain store conversion, serialization, and parsing error variants.
|
|
5633
|
+
*/
|
|
5634
|
+
export enum TerrainStoreError {
|
|
5635
|
+
/**
|
|
5636
|
+
* File or directory I/O failed.
|
|
5637
|
+
*/
|
|
5638
|
+
Io = 0,
|
|
5639
|
+
/**
|
|
5640
|
+
* DTED or terrain store bytes could not be parsed.
|
|
5641
|
+
*/
|
|
5642
|
+
Parse = 1,
|
|
5643
|
+
/**
|
|
5644
|
+
* The terrain store version is not supported.
|
|
5645
|
+
*/
|
|
5646
|
+
UnsupportedVersion = 2,
|
|
5647
|
+
/**
|
|
5648
|
+
* The terrain store datum tag is not supported.
|
|
5649
|
+
*/
|
|
5650
|
+
UnsupportedDatum = 3,
|
|
5651
|
+
/**
|
|
5652
|
+
* Two input DTED files resolved to the same integer tile id.
|
|
5653
|
+
*/
|
|
5654
|
+
DuplicateTile = 4,
|
|
5655
|
+
/**
|
|
5656
|
+
* A tile payload checksum did not match its index record.
|
|
5657
|
+
*/
|
|
5658
|
+
Checksum = 5,
|
|
5659
|
+
}
|
|
5660
|
+
|
|
5661
|
+
/**
|
|
5662
|
+
* Metadata for one tile index record in a memory-mappable terrain store.
|
|
5663
|
+
*/
|
|
5664
|
+
export class TerrainStoreTileIndex {
|
|
5665
|
+
private constructor();
|
|
5666
|
+
free(): void;
|
|
5667
|
+
[Symbol.dispose](): void;
|
|
5668
|
+
/**
|
|
5669
|
+
* FNV-1a checksum of this tile's posting payload bytes.
|
|
5670
|
+
*/
|
|
5671
|
+
readonly checksum64: bigint;
|
|
5672
|
+
/**
|
|
5673
|
+
* Byte length of this tile's posting payload in the store.
|
|
5674
|
+
*/
|
|
5675
|
+
readonly dataLen: bigint;
|
|
5676
|
+
/**
|
|
5677
|
+
* Byte offset of this tile's posting payload in the store.
|
|
5678
|
+
*/
|
|
5679
|
+
readonly dataOffset: bigint;
|
|
5680
|
+
/**
|
|
5681
|
+
* Number of latitude postings.
|
|
5682
|
+
*/
|
|
5683
|
+
readonly latCount: number;
|
|
5684
|
+
/**
|
|
5685
|
+
* Integer latitude tile id, for example `36` for a tile covering
|
|
5686
|
+
* `36..37` degrees.
|
|
5687
|
+
*/
|
|
5688
|
+
readonly latIndex: number;
|
|
5689
|
+
/**
|
|
5690
|
+
* Number of longitude postings.
|
|
5691
|
+
*/
|
|
5692
|
+
readonly lonCount: number;
|
|
5693
|
+
/**
|
|
5694
|
+
* Integer longitude tile id, for example `-107` for a tile covering
|
|
5695
|
+
* `-107..-106` degrees.
|
|
5696
|
+
*/
|
|
5697
|
+
readonly lonIndex: number;
|
|
5698
|
+
/**
|
|
5699
|
+
* Northern edge latitude, degrees.
|
|
5700
|
+
*/
|
|
5701
|
+
readonly maxLatitudeDeg: number;
|
|
5702
|
+
/**
|
|
5703
|
+
* Eastern edge longitude, degrees.
|
|
5704
|
+
*/
|
|
5705
|
+
readonly maxLongitudeDeg: number;
|
|
5706
|
+
/**
|
|
5707
|
+
* Southern edge latitude, degrees.
|
|
5708
|
+
*/
|
|
5709
|
+
readonly minLatitudeDeg: number;
|
|
5710
|
+
/**
|
|
5711
|
+
* Western edge longitude, degrees.
|
|
5712
|
+
*/
|
|
5713
|
+
readonly minLongitudeDeg: number;
|
|
5714
|
+
/**
|
|
5715
|
+
* Vertical datum for this tile's orthometric posting payload.
|
|
5716
|
+
*/
|
|
5717
|
+
readonly verticalDatum: VerticalDatum;
|
|
5718
|
+
}
|
|
5719
|
+
|
|
5299
5720
|
/**
|
|
5300
5721
|
* A named time scale. The JS value matches the variant order below.
|
|
5301
5722
|
*/
|
|
@@ -5555,6 +5976,16 @@ export class VelocitySolution {
|
|
|
5555
5976
|
readonly velocityMS: Float64Array;
|
|
5556
5977
|
}
|
|
5557
5978
|
|
|
5979
|
+
/**
|
|
5980
|
+
* Vertical datum carried by a terrain store.
|
|
5981
|
+
*/
|
|
5982
|
+
export enum VerticalDatum {
|
|
5983
|
+
/**
|
|
5984
|
+
* Orthometric height `H` in metres above the EGM96 mean sea level geoid.
|
|
5985
|
+
*/
|
|
5986
|
+
Egm96MslOrthometric = 0,
|
|
5987
|
+
}
|
|
5988
|
+
|
|
5558
5989
|
/**
|
|
5559
5990
|
* Per-epoch topocentric visibility plus the dense pass list over the grid
|
|
5560
5991
|
* window.
|
|
@@ -5678,6 +6109,17 @@ export class ZenithDelay {
|
|
|
5678
6109
|
*/
|
|
5679
6110
|
export function acquire(samples: Float64Array, prn: bigint, options: any): AcquisitionResult;
|
|
5680
6111
|
|
|
6112
|
+
/**
|
|
6113
|
+
* Plain non-overlapping Allan deviation for explicit averaging factors.
|
|
6114
|
+
*
|
|
6115
|
+
* `series` is `{ kind, values }`, where `kind` is `"phaseSeconds"` or
|
|
6116
|
+
* `"fractionalFrequency"` and `values` are phase seconds or dimensionless
|
|
6117
|
+
* fractional-frequency samples. `tau0S` is the sample interval in seconds.
|
|
6118
|
+
* `averagingFactors` is an array of positive integer `m` values. Returns
|
|
6119
|
+
* `{ tauS, deviation, n }`.
|
|
6120
|
+
*/
|
|
6121
|
+
export function allanDeviation(series: any, tau0_s: number, averaging_factors: any): any;
|
|
6122
|
+
|
|
5681
6123
|
/**
|
|
5682
6124
|
* On-sky angle in degrees between two direction vectors.
|
|
5683
6125
|
*/
|
|
@@ -5688,6 +6130,38 @@ export function angularSeparation(a: Float64Array, b: Float64Array): number;
|
|
|
5688
6130
|
*/
|
|
5689
6131
|
export function angularSeparationCoords(a_lon_deg: number, a_lat_deg: number, b_lon_deg: number, b_lat_deg: number): number;
|
|
5690
6132
|
|
|
6133
|
+
/**
|
|
6134
|
+
* Run ARAIM MHSS protection-level computation.
|
|
6135
|
+
*
|
|
6136
|
+
* `geometry.rows` contains satellite IDs, ECEF line-of-sight unit vectors,
|
|
6137
|
+
* optional constellation labels, and elevations in radians. `receiver` is WGS84
|
|
6138
|
+
* geodetic radians plus ellipsoidal height meters. `ism` contains
|
|
6139
|
+
* constellation defaults and optional satellite overrides. Satellite models may
|
|
6140
|
+
* provide paired `effectiveSigmaIntM` and `effectiveSigmaAccM` fields; omit both
|
|
6141
|
+
* to let the core derive them from elevation. `allocation` may be omitted to use
|
|
6142
|
+
* `araimLpv200Allocation()`. Returned `hplM`, `vplM`, `sigmaAccHM`,
|
|
6143
|
+
* `sigmaAccVM`, `emtM`, and per-mode ENU arrays are meters.
|
|
6144
|
+
*/
|
|
6145
|
+
export function araim(geometry: any, ism: any, allocation: any): any;
|
|
6146
|
+
|
|
6147
|
+
/**
|
|
6148
|
+
* Enumerate ARAIM fault hypotheses for the given geometry, ISM, and allocation.
|
|
6149
|
+
*
|
|
6150
|
+
* Inputs mirror `araim`. The returned priors are probabilities. Excluded
|
|
6151
|
+
* satellites are string tokens such as `"G01"`, and excluded constellations are
|
|
6152
|
+
* labels such as `"GPS"`.
|
|
6153
|
+
*/
|
|
6154
|
+
export function araimFaultModes(geometry: any, ism: any, allocation: any): any;
|
|
6155
|
+
|
|
6156
|
+
/**
|
|
6157
|
+
* LPV-200 ARAIM integrity and continuity allocation.
|
|
6158
|
+
*
|
|
6159
|
+
* The returned object can be passed to `araim`. Probability fields are
|
|
6160
|
+
* dimensionless, `pEmt` defaults to `1e-5`, and `maxFaultOrder` is an integer
|
|
6161
|
+
* fault order.
|
|
6162
|
+
*/
|
|
6163
|
+
export function araimLpv200Allocation(): any;
|
|
6164
|
+
|
|
5691
6165
|
/**
|
|
5692
6166
|
* Evaluate NRLMSISE-00 neutral-atmosphere density and temperature.
|
|
5693
6167
|
*
|
|
@@ -5805,6 +6279,20 @@ export function coherentLossDb(freq_error_hz: number, integration_time_s: number
|
|
|
5805
6279
|
*/
|
|
5806
6280
|
export function collisionProbability(object1: ConjunctionState, object2: ConjunctionState, hard_body_radius_km: number, method?: string | null): CollisionProbability;
|
|
5807
6281
|
|
|
6282
|
+
/**
|
|
6283
|
+
* Compute one or more Allan-family curves with a selected tau grid and gap
|
|
6284
|
+
* policy.
|
|
6285
|
+
*
|
|
6286
|
+
* `input` is `{ series, tau0S, options? }`. `series.kind` may be
|
|
6287
|
+
* `"phaseSeconds"`, `"fractionalFrequency"`, `"phaseSecondsWithGaps"`, or
|
|
6288
|
+
* `"fractionalFrequencyWithGaps"`; gap series use `null` for missing samples.
|
|
6289
|
+
* `options.estimators` is `"standard"`, `"all"`, `"none"`, or a boolean flag
|
|
6290
|
+
* object. `options.tauGrid` is `"octave"`, `"all"`, or
|
|
6291
|
+
* `{ kind: "explicit", averagingFactors }`. `tau0S` and all returned `tauS`
|
|
6292
|
+
* values are seconds.
|
|
6293
|
+
*/
|
|
6294
|
+
export function computeAllanDeviations(input: any): any;
|
|
6295
|
+
|
|
5808
6296
|
/**
|
|
5809
6297
|
* Coherently correlate interleaved IQ samples against a GPS C/A PRN replica.
|
|
5810
6298
|
* `iq` is `[i0, q0, i1, q1, ...]`.
|
|
@@ -5902,6 +6390,14 @@ export function decodeRtcmMessage(body: Uint8Array): any;
|
|
|
5902
6390
|
*/
|
|
5903
6391
|
export function decodeRtcmStream(bytes: Uint8Array): any;
|
|
5904
6392
|
|
|
6393
|
+
/**
|
|
6394
|
+
* Decode a raw SBAS message.
|
|
6395
|
+
*
|
|
6396
|
+
* `form` is `"framed250"` for a 32-byte message with CRC or `"body226"` for a
|
|
6397
|
+
* 29-byte body. The result contains `messageType`, `form`, legacy debug
|
|
6398
|
+
* `kind`, and `message`, a structured decoded payload. Parse failures are
|
|
6399
|
+
* thrown as `Error`.
|
|
6400
|
+
*/
|
|
5905
6401
|
export function decodeSbasMessage(bytes: Uint8Array, form?: string | null): any;
|
|
5906
6402
|
|
|
5907
6403
|
export function decodeSsr(bytes: Uint8Array, framed?: boolean | null): any;
|
|
@@ -5985,6 +6481,14 @@ export function dopplerShift(gcrs_position_km: Float64Array, gcrs_velocity_km_s:
|
|
|
5985
6481
|
*/
|
|
5986
6482
|
export function dopplerToRangeRate(doppler_hz: number, carrier_hz: number): number;
|
|
5987
6483
|
|
|
6484
|
+
/**
|
|
6485
|
+
* Convert a DTED tile tree into canonical memory-mappable terrain store bytes.
|
|
6486
|
+
*
|
|
6487
|
+
* The returned `Uint8Array` can be passed to [`MmapTerrain.fromBytes`] or
|
|
6488
|
+
* [`MmapTerrain.fromVec`]. Posting payloads are decoded orthometric metres.
|
|
6489
|
+
*/
|
|
6490
|
+
export function dtedTreeToMmapStore(root: string): Uint8Array;
|
|
6491
|
+
|
|
5988
6492
|
/**
|
|
5989
6493
|
* Angular radius in degrees of Earth as seen from each satellite position.
|
|
5990
6494
|
*/
|
|
@@ -6450,6 +6954,15 @@ export function gnssVisible(sp3: Sp3, station_ecef_m: Float64Array, j2000_second
|
|
|
6450
6954
|
*/
|
|
6451
6955
|
export function gpsUtcOffsetS(year: number, month: number, day: number): number;
|
|
6452
6956
|
|
|
6957
|
+
/**
|
|
6958
|
+
* Overlapping Hadamard deviation for explicit averaging factors.
|
|
6959
|
+
*
|
|
6960
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
6961
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
6962
|
+
* `{ tauS, deviation, n }`.
|
|
6963
|
+
*/
|
|
6964
|
+
export function hadamardDeviation(series: any, tau0_s: number, averaging_factors: any): any;
|
|
6965
|
+
|
|
6453
6966
|
/**
|
|
6454
6967
|
* Trace of the Gauss-Newton Hessian approximation `J^T J`: the sum of the
|
|
6455
6968
|
* squared column norms of the Jacobian, with no inverse formed.
|
|
@@ -6490,6 +7003,28 @@ export function iodGibbs(r1: Float64Array, r2: Float64Array, r3: Float64Array):
|
|
|
6490
7003
|
*/
|
|
6491
7004
|
export function iodHerrickGibbs(r1: Float64Array, r2: Float64Array, r3: Float64Array, jd1: number, jd2: number, jd3: number): IodVelocity;
|
|
6492
7005
|
|
|
7006
|
+
/**
|
|
7007
|
+
* Build an IONEX vertical-TEC product from flat node samples.
|
|
7008
|
+
*
|
|
7009
|
+
* `samples` is an array of `{ epochJ2000S, latDeg, lonDeg, vtecTecu,
|
|
7010
|
+
* rmsTecu? }` objects. Epochs are integer seconds since J2000, coordinates are
|
|
7011
|
+
* degrees, and TEC/RMS values are TECU. `shellHeightKm` and `baseRadiusKm` are
|
|
7012
|
+
* kilometers. Validation errors from the core sample builder are thrown as
|
|
7013
|
+
* `RangeError`.
|
|
7014
|
+
*/
|
|
7015
|
+
export function ionexFromNodeSamples(samples: any, shell_height_km: number, base_radius_km: number, exponent: number): Ionex;
|
|
7016
|
+
|
|
7017
|
+
/**
|
|
7018
|
+
* Build an IONEX vertical-TEC product from full-grid samples.
|
|
7019
|
+
*
|
|
7020
|
+
* `samples.mapEpochsJ2000S` are integer seconds since J2000. Latitude and
|
|
7021
|
+
* longitude nodes and `dlatDeg` / `dlonDeg` are degrees. `tecMaps` and
|
|
7022
|
+
* `rmsMaps` are TECU and indexed `[map][iLat][iLon]`. The shell height and
|
|
7023
|
+
* base radius are kilometers. Validation errors from the core sample builder
|
|
7024
|
+
* are thrown as `RangeError`.
|
|
7025
|
+
*/
|
|
7026
|
+
export function ionexFromSamples(samples: any): Ionex;
|
|
7027
|
+
|
|
6493
7028
|
/**
|
|
6494
7029
|
* Ionosphere-free code or meter-valued phase combination, metres.
|
|
6495
7030
|
*/
|
|
@@ -6799,6 +7334,15 @@ export function meridianTransits(body: string, station: any, start_unix_us: bigi
|
|
|
6799
7334
|
|
|
6800
7335
|
export function meridianTransitsSpk(spk: Spk, body: string, station: any, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
|
|
6801
7336
|
|
|
7337
|
+
/**
|
|
7338
|
+
* Modified Allan deviation for explicit averaging factors.
|
|
7339
|
+
*
|
|
7340
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
7341
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
7342
|
+
* `{ tauS, deviation, n }`.
|
|
7343
|
+
*/
|
|
7344
|
+
export function modifiedAdev(series: any, tau0_s: number, averaging_factors: any): any;
|
|
7345
|
+
|
|
6802
7346
|
/**
|
|
6803
7347
|
* Mean, variance, skewness, and excess kurtosis of a residual set in one pass.
|
|
6804
7348
|
*
|
|
@@ -6974,6 +7518,15 @@ export function oceanTideLoading(station_ecef_m: Float64Array, year: number, mon
|
|
|
6974
7518
|
*/
|
|
6975
7519
|
export function orthometricHeightM(ellipsoidal_height_m: number, lat_rad: number, lon_rad: number): number;
|
|
6976
7520
|
|
|
7521
|
+
/**
|
|
7522
|
+
* Fully overlapping Allan deviation for explicit averaging factors.
|
|
7523
|
+
*
|
|
7524
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
7525
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
7526
|
+
* `{ tauS, deviation, n }`.
|
|
7527
|
+
*/
|
|
7528
|
+
export function overlappingAdev(series: any, tau0_s: number, averaging_factors: any): any;
|
|
7529
|
+
|
|
6977
7530
|
/**
|
|
6978
7531
|
* Parallactic angle (degrees) of a target at a station.
|
|
6979
7532
|
*
|
|
@@ -7365,6 +7918,12 @@ export function sampleBroadcastEphemeris(broadcast: BroadcastEphemeris, satellit
|
|
|
7365
7918
|
|
|
7366
7919
|
export function sampleSp3Ephemeris(sp3: Sp3, satellites: string[], start_j2000_s: number, stop_j2000_s: number, step_s: number): any;
|
|
7367
7920
|
|
|
7921
|
+
/**
|
|
7922
|
+
* Convert an SBAS satellite token such as `"S29"` to broadcast PRN number
|
|
7923
|
+
* such as `129`. Returns `null` for non-SBAS satellites.
|
|
7924
|
+
*/
|
|
7925
|
+
export function satToSbasPrn(sat: string): any;
|
|
7926
|
+
|
|
7368
7927
|
/**
|
|
7369
7928
|
* Apparent visual magnitude of a sunlit body from a diffuse-sphere phase law.
|
|
7370
7929
|
*
|
|
@@ -7376,8 +7935,20 @@ export function sampleSp3Ephemeris(sp3: Sp3, satellites: string[], start_j2000_s
|
|
|
7376
7935
|
*/
|
|
7377
7936
|
export function satelliteVisualMagnitude(range_km: number, phase_angle_deg: number, standard_magnitude: number, reference_range_km: number): number;
|
|
7378
7937
|
|
|
7938
|
+
/**
|
|
7939
|
+
* SBAS-corrected broadcast satellite position and clock.
|
|
7940
|
+
*
|
|
7941
|
+
* Position is ECEF meters and clock is seconds at `tJ2000S`, seconds since
|
|
7942
|
+
* J2000. Returns `null` when the selected SBAS mode cannot provide a state.
|
|
7943
|
+
*/
|
|
7379
7944
|
export function sbasCorrectedState(broadcast: BroadcastEphemeris, store: SbasCorrectionStore, geo: string, sat: string, t_j2000_s: number, mode?: string | null): any;
|
|
7380
7945
|
|
|
7946
|
+
/**
|
|
7947
|
+
* Convert an SBAS broadcast PRN number such as `129` to an SBAS satellite
|
|
7948
|
+
* token such as `"S29"`. Returns `null` when the PRN is outside the SBAS range.
|
|
7949
|
+
*/
|
|
7950
|
+
export function sbasPrnToSat(broadcast_prn: number): any;
|
|
7951
|
+
|
|
7381
7952
|
/**
|
|
7382
7953
|
* Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
|
|
7383
7954
|
*
|
|
@@ -7592,6 +8163,13 @@ export function solveRtkFixed(config: any): RtkFixedSolution;
|
|
|
7592
8163
|
*/
|
|
7593
8164
|
export function solveRtkFloat(config: any): RtkFloatSolution;
|
|
7594
8165
|
|
|
8166
|
+
/**
|
|
8167
|
+
* Solve SPP using an SBAS-corrected broadcast source and optional SBAS iono.
|
|
8168
|
+
*
|
|
8169
|
+
* The returned solution uses the same units as `solveSpp`: ECEF meters,
|
|
8170
|
+
* receiver clock seconds, residual meters, and optional geodetic radians plus
|
|
8171
|
+
* ellipsoidal height meters.
|
|
8172
|
+
*/
|
|
7595
8173
|
export function solveSppSbas(broadcast: BroadcastEphemeris, store: SbasCorrectionStore, geo: string, request: any, mode?: string | null): SppSolution;
|
|
7596
8174
|
|
|
7597
8175
|
/**
|
|
@@ -7738,6 +8316,20 @@ export function temeToGcrs(position_km: Float64Array, velocity_km_s: Float64Arra
|
|
|
7738
8316
|
*/
|
|
7739
8317
|
export function terminatorLatitudeDeg(sub_solar_latitude_deg: number, sub_solar_longitude_deg: number, longitude_deg: number): number;
|
|
7740
8318
|
|
|
8319
|
+
/**
|
|
8320
|
+
* Return an FNV-1a checksum for terrain store bytes.
|
|
8321
|
+
*/
|
|
8322
|
+
export function terrainStoreChecksum64(bytes: Uint8Array): bigint;
|
|
8323
|
+
|
|
8324
|
+
/**
|
|
8325
|
+
* Time deviation for explicit averaging factors.
|
|
8326
|
+
*
|
|
8327
|
+
* `series` is `{ kind, values }`, `tau0S` is seconds, and
|
|
8328
|
+
* `averagingFactors` contains positive integer `m` values. Returns
|
|
8329
|
+
* `{ tauS, deviation, n }`.
|
|
8330
|
+
*/
|
|
8331
|
+
export function timeDeviation(series: any, tau0_s: number, averaging_factors: any): any;
|
|
8332
|
+
|
|
7741
8333
|
/**
|
|
7742
8334
|
* Short uppercase identifier for a time scale, e.g. `"GPST"`.
|
|
7743
8335
|
*/
|
|
@@ -7879,3 +8471,8 @@ export function wideLaneCycles(phi1_cycles: number, phi2_cycles: number, p1_m: n
|
|
|
7879
8471
|
* Wide-lane wavelength `c / (f1 - f2)`, metres.
|
|
7880
8472
|
*/
|
|
7881
8473
|
export function wideLaneWavelength(f1_hz: number, f2_hz: number): number;
|
|
8474
|
+
|
|
8475
|
+
/**
|
|
8476
|
+
* Convert a DTED tile tree and write canonical terrain store bytes to a path.
|
|
8477
|
+
*/
|
|
8478
|
+
export function writeDtedTreeToMmapStore(root: string, out_path: string): void;
|