@neilberkman/sidereon 0.26.1 → 0.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.27.1 - 2026-07-13
4
+
5
+ - Builds against `sidereon` and `sidereon-core` 0.27.1.
6
+ - Rejects finite LAMBDA ambiguity inputs outside the signed 64-bit integer
7
+ search domain with a `RangeError`, instead of returning saturated integers
8
+ and non-finite scores.
9
+
10
+ ## 0.27.0 - 2026-07-12
11
+
12
+ - Builds against `sidereon` and `sidereon-core` 0.27.0.
13
+ - Adds `GeoidGrid.fromProjEgm96Gtx` for PROJ's public EGM96 15-arcminute GTX
14
+ grid.
15
+ - Adds `GeoidGrid.undulationProjRad` with explicit fused-versus-separately
16
+ rounded arithmetic and typed `RangeError` coordinate failures. Existing geoid
17
+ lookup functions retain their previous bits.
18
+
3
19
  ## 0.26.1 - 2026-07-12
4
20
 
5
21
  - Builds against `sidereon` and `sidereon-core` 0.26.1.
package/README.md CHANGED
@@ -138,6 +138,29 @@ geometry and an integrity support message. `araimLpv200Allocation()` provides th
138
138
  default LPV-200 budget. The direct result has `hplM`, `vplM`, `sigmaAccHM`, and
139
139
  `sigmaAccVM`, plus the detailed monitor fields.
140
140
 
141
+ ## Example: PROJ EGM96 vertical-grid interpolation
142
+
143
+ `GeoidGrid.fromProjEgm96Gtx(bytes)` loads the public OSGeo
144
+ `egm96_15.gtx` grid. Lookup requires an explicit arithmetic recipe because
145
+ valid PROJ builds can differ by one ULP:
146
+
147
+ ```js
148
+ import { GeoidGrid, ProjVgridshiftArithmetic } from "@neilberkman/sidereon";
149
+
150
+ const grid = GeoidGrid.fromProjEgm96Gtx(gtxBytes);
151
+ const undulationM = grid.undulationProjRad(
152
+ latitudeRad,
153
+ longitudeRad,
154
+ ProjVgridshiftArithmetic.FusedMultiplyAdd,
155
+ );
156
+ ```
157
+
158
+ Use `SeparateMultiplyAdd` for a PROJ build without floating-point contraction.
159
+ Invalid coordinates throw a `RangeError` whose `kind` is
160
+ `"NonFiniteCoordinate"` or `"CoordinateOutsideGrid"`; its `coordinate` field
161
+ is `"latitude"` or `"longitude"`, and `detail` carries the complete typed
162
+ record.
163
+
141
164
  ## Capabilities
142
165
 
143
166
  The wasm surface mirrors the full breadth of the engine:
@@ -200,9 +223,10 @@ The wasm surface mirrors the full breadth of the engine:
200
223
  - **Almanac:** seasons, moon phases, lunar and solar eclipses, planetary
201
224
  conjunctions and oppositions, Sun/Moon/planet meridian transits.
202
225
  - **Atmosphere and Earth models:** Klobuchar and NeQuick-G ionosphere, IONEX
203
- slant delay, troposphere models, geoid undulation (EGM96), solid Earth and
204
- pole tides, ocean tide loading, DTED terrain elevation lookup with batch
205
- queries, and memory-mappable terrain stores.
226
+ slant delay, troposphere models, geoid undulation (EGM96), PROJ EGM96 GTX
227
+ interpolation with explicit fused/separate arithmetic and typed coordinate
228
+ errors, solid Earth and pole tides, ocean tide loading, DTED terrain
229
+ elevation lookup with batch queries, and memory-mappable terrain stores.
206
230
  - **RF link budget:** free-space path loss, EIRP, C/N0, antenna gain, Doppler
207
231
  shift and range rate.
208
232
  - **GNSS/INS fusion:** strapdown mechanization with an error-state EKF (UKF
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neilberkman/sidereon",
3
- "version": "0.26.1",
3
+ "version": "0.27.1",
4
4
  "description": "WebAssembly / JavaScript interface over the sidereon GNSS + astrodynamics engine: SP3 loading and multi-product merge, SPP / RTK (float + fixed) / PPP (float + fixed) positioning, IONEX slant delay, SGP4 and numerical orbit propagation, RINEX observation/navigation/clock parsing, CRINEX (Hatanaka) decoding, observable-domain math (carrier combinations, cycle slips, Hatch smoothing, weighting, velocity, GPS C/A signal), and the astro domain (scale-tagged time, frame transforms, Sun/Moon ephemerides, eclipse / body angles, DOP, passes / visibility, conjunction + collision probability, CDM / OMM / ANTEX parsing, RF link budget)",
5
5
  "type": "module",
6
6
  "license": "MIT",