@interstellar-tools/equations 1.3.0 → 1.5.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.
Files changed (47) hide show
  1. package/dist/categories/cartography/body-fixed-to-geodetic.d.ts +77 -0
  2. package/dist/categories/cartography/body-fixed-to-geodetic.d.ts.map +1 -0
  3. package/dist/categories/cartography/body-fixed-to-geodetic.js +111 -0
  4. package/dist/categories/cartography/body-fixed-to-geodetic.js.map +1 -0
  5. package/dist/categories/cartography/geodetic-to-body-fixed.d.ts +73 -0
  6. package/dist/categories/cartography/geodetic-to-body-fixed.d.ts.map +1 -0
  7. package/dist/categories/cartography/geodetic-to-body-fixed.js +97 -0
  8. package/dist/categories/cartography/geodetic-to-body-fixed.js.map +1 -0
  9. package/dist/categories/entry/ballistic-coefficient.d.ts +44 -0
  10. package/dist/categories/entry/ballistic-coefficient.d.ts.map +1 -0
  11. package/dist/categories/entry/ballistic-coefficient.js +54 -0
  12. package/dist/categories/entry/ballistic-coefficient.js.map +1 -0
  13. package/dist/categories/entry/ballistic-entry-speed.d.ts +52 -0
  14. package/dist/categories/entry/ballistic-entry-speed.d.ts.map +1 -0
  15. package/dist/categories/entry/ballistic-entry-speed.js +71 -0
  16. package/dist/categories/entry/ballistic-entry-speed.js.map +1 -0
  17. package/dist/categories/entry/ballistic-peak-deceleration-altitude.d.ts +47 -0
  18. package/dist/categories/entry/ballistic-peak-deceleration-altitude.d.ts.map +1 -0
  19. package/dist/categories/entry/ballistic-peak-deceleration-altitude.js +62 -0
  20. package/dist/categories/entry/ballistic-peak-deceleration-altitude.js.map +1 -0
  21. package/dist/categories/entry/ballistic-peak-deceleration.d.ts +63 -0
  22. package/dist/categories/entry/ballistic-peak-deceleration.d.ts.map +1 -0
  23. package/dist/categories/entry/ballistic-peak-deceleration.js +76 -0
  24. package/dist/categories/entry/ballistic-peak-deceleration.js.map +1 -0
  25. package/dist/categories/entry/stagnation-heat-flux.d.ts +46 -0
  26. package/dist/categories/entry/stagnation-heat-flux.d.ts.map +1 -0
  27. package/dist/categories/entry/stagnation-heat-flux.js +57 -0
  28. package/dist/categories/entry/stagnation-heat-flux.js.map +1 -0
  29. package/dist/categories/entry/terminal-velocity.d.ts +48 -0
  30. package/dist/categories/entry/terminal-velocity.d.ts.map +1 -0
  31. package/dist/categories/entry/terminal-velocity.js +60 -0
  32. package/dist/categories/entry/terminal-velocity.js.map +1 -0
  33. package/dist/categories/entry/validate.d.ts +7 -0
  34. package/dist/categories/entry/validate.d.ts.map +1 -0
  35. package/dist/categories/entry/validate.js +20 -0
  36. package/dist/categories/entry/validate.js.map +1 -0
  37. package/dist/categories/orbits/inclination-from-launch-azimuth.d.ts +6 -4
  38. package/dist/categories/orbits/inclination-from-launch-azimuth.d.ts.map +1 -1
  39. package/dist/categories/orbits/inclination-from-launch-azimuth.js +6 -4
  40. package/dist/categories/orbits/inclination-from-launch-azimuth.js.map +1 -1
  41. package/dist/categories/orbits/surface-rotation-speed.d.ts +1 -1
  42. package/dist/categories/orbits/surface-rotation-speed.js +1 -1
  43. package/dist/index.d.ts +8 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +9 -0
  46. package/dist/index.js.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Compute the **altitude of peak deceleration** in a ballistic entry, with the Allen–Eggers solution.
3
+ *
4
+ * $$
5
+ * h^\ast = H \ln\frac{\rho_0 H}{\beta \sin\lvert\gamma\rvert}
6
+ * $$
7
+ *
8
+ * Where:
9
+ * - $ \beta $ is the ballistic coefficient (kg/m²)
10
+ * - $ \gamma $ is the flight-path angle (rad)
11
+ * - $ \rho_0 $ and $ H $ describe an exponential atmosphere, $ \rho = \rho_0 e^{-h/H} $
12
+ *
13
+ * **Units**
14
+ * - Inputs: `gamma` in **radians**, `beta` in **kg/m²**, `rho0` in **kg/m³**, `H` in **m**.
15
+ * - Output: $ h^\ast $ in **m**.
16
+ *
17
+ * ::: info Notes
18
+ *
19
+ * - Unlike the size of the peak ({@link ballisticPeakDeceleration}), its altitude does depend on the vehicle: a higher $ \beta $ peaks lower down.
20
+ * - A negative result means the vehicle would reach the surface before its deceleration peaks: it hits the ground still fast.
21
+ * - Same assumptions as {@link ballisticEntrySpeed}.
22
+ *
23
+ * :::
24
+ *
25
+ * @param gamma - Flight-path angle $ \gamma $ in **radians** (finite, non-zero, within [-π/2, π/2]).
26
+ * @param beta - Ballistic coefficient $ \beta $ in **kg/m²** (finite, > 0).
27
+ * @param rho0 - Reference density $ \rho_0 $ in **kg/m³** (finite, > 0).
28
+ * @param H - Scale height $ H $ in **m** (finite, > 0).
29
+ * @returns Altitude of peak deceleration $ h^\ast $ in **m** (negative if below the surface).
30
+ * @throws {TypeError} If any input is not a finite number.
31
+ * @throws {RangeError} If `beta`, `rho0` or `H` is `<= 0`, or `gamma` is zero or past vertical.
32
+ * @group Entry
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * import type { Radians } from '@interstellar-tools/types';
37
+ *
38
+ * // A 322 kg/m² capsule, 6.5° below horizontal, in Earth's atmosphere
39
+ * const h = ballisticPeakDecelerationAltitude((-6.5 * Math.PI / 180) as Radians, 322, 1.225, 7200);
40
+ * // h ≈ 39.5 km
41
+ * ```
42
+ *
43
+ * @see {@link ballisticPeakDeceleration}
44
+ * @see {@link ballisticEntrySpeed}
45
+ */
46
+ export declare const ballisticPeakDecelerationAltitude: (gamma: number, beta: number, rho0: number, H: number) => number;
47
+ //# sourceMappingURL=ballistic-peak-deceleration-altitude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ballistic-peak-deceleration-altitude.d.ts","sourceRoot":"","sources":["../../../src/categories/entry/ballistic-peak-deceleration-altitude.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,iCAAiC,GAC5C,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,GAAG,MAAM,KACR,MAeF,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { assertFinite, assertFlightPathAngle, assertPositive } from './validate.js';
2
+ /**
3
+ * Compute the **altitude of peak deceleration** in a ballistic entry, with the Allen–Eggers solution.
4
+ *
5
+ * $$
6
+ * h^\ast = H \ln\frac{\rho_0 H}{\beta \sin\lvert\gamma\rvert}
7
+ * $$
8
+ *
9
+ * Where:
10
+ * - $ \beta $ is the ballistic coefficient (kg/m²)
11
+ * - $ \gamma $ is the flight-path angle (rad)
12
+ * - $ \rho_0 $ and $ H $ describe an exponential atmosphere, $ \rho = \rho_0 e^{-h/H} $
13
+ *
14
+ * **Units**
15
+ * - Inputs: `gamma` in **radians**, `beta` in **kg/m²**, `rho0` in **kg/m³**, `H` in **m**.
16
+ * - Output: $ h^\ast $ in **m**.
17
+ *
18
+ * ::: info Notes
19
+ *
20
+ * - Unlike the size of the peak ({@link ballisticPeakDeceleration}), its altitude does depend on the vehicle: a higher $ \beta $ peaks lower down.
21
+ * - A negative result means the vehicle would reach the surface before its deceleration peaks: it hits the ground still fast.
22
+ * - Same assumptions as {@link ballisticEntrySpeed}.
23
+ *
24
+ * :::
25
+ *
26
+ * @param gamma - Flight-path angle $ \gamma $ in **radians** (finite, non-zero, within [-π/2, π/2]).
27
+ * @param beta - Ballistic coefficient $ \beta $ in **kg/m²** (finite, > 0).
28
+ * @param rho0 - Reference density $ \rho_0 $ in **kg/m³** (finite, > 0).
29
+ * @param H - Scale height $ H $ in **m** (finite, > 0).
30
+ * @returns Altitude of peak deceleration $ h^\ast $ in **m** (negative if below the surface).
31
+ * @throws {TypeError} If any input is not a finite number.
32
+ * @throws {RangeError} If `beta`, `rho0` or `H` is `<= 0`, or `gamma` is zero or past vertical.
33
+ * @group Entry
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * import type { Radians } from '@interstellar-tools/types';
38
+ *
39
+ * // A 322 kg/m² capsule, 6.5° below horizontal, in Earth's atmosphere
40
+ * const h = ballisticPeakDecelerationAltitude((-6.5 * Math.PI / 180) as Radians, 322, 1.225, 7200);
41
+ * // h ≈ 39.5 km
42
+ * ```
43
+ *
44
+ * @see {@link ballisticPeakDeceleration}
45
+ * @see {@link ballisticEntrySpeed}
46
+ */
47
+ export const ballisticPeakDecelerationAltitude = (gamma, beta, rho0, H) => {
48
+ assertFinite([
49
+ ['gamma', gamma],
50
+ ['beta', beta],
51
+ ['rho0', rho0],
52
+ ['H', H]
53
+ ]);
54
+ assertPositive([
55
+ ['beta', beta],
56
+ ['rho0', rho0],
57
+ ['H', H]
58
+ ]);
59
+ assertFlightPathAngle(gamma);
60
+ return H * Math.log((rho0 * H) / (beta * Math.sin(Math.abs(gamma))));
61
+ };
62
+ //# sourceMappingURL=ballistic-peak-deceleration-altitude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ballistic-peak-deceleration-altitude.js","sourceRoot":"","sources":["../../../src/categories/entry/ballistic-peak-deceleration-altitude.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,CAAS,EACD,EAAE;IACV,YAAY,CAAC;QACX,CAAC,OAAO,EAAE,KAAK,CAAC;QAChB,CAAC,MAAM,EAAE,IAAI,CAAC;QACd,CAAC,MAAM,EAAE,IAAI,CAAC;QACd,CAAC,GAAG,EAAE,CAAC,CAAC;KACT,CAAC,CAAC;IACH,cAAc,CAAC;QACb,CAAC,MAAM,EAAE,IAAI,CAAC;QACd,CAAC,MAAM,EAAE,IAAI,CAAC;QACd,CAAC,GAAG,EAAE,CAAC,CAAC;KACT,CAAC,CAAC;IACH,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Compute the **peak deceleration of a ballistic entry**, with the Allen–Eggers solution.
3
+ *
4
+ * $$
5
+ * a_\text{max} = \frac{V_E^2 \sin\lvert\gamma\rvert}{2\,e\,H}
6
+ * $$
7
+ *
8
+ * reached when the speed has fallen to $ V_E / \sqrt{e} \approx 0.61\,V_E $.
9
+ *
10
+ * Where:
11
+ * - $ V_E $ is the speed at entry (m/s)
12
+ * - $ \gamma $ is the flight-path angle (rad)
13
+ * - $ H $ is the atmosphere's scale height (m)
14
+ * - $ e $ is Euler's number
15
+ *
16
+ * **Units**
17
+ * - Inputs: `VE` in **m/s**, `gamma` in **radians**, `H` in **m**.
18
+ * - Output: $ a_\text{max} $ in **m/s²**. Divide by 9.80665 for g.
19
+ *
20
+ * ::: info Notes
21
+ *
22
+ * - The peak doesn't depend on the vehicle's mass, size or drag: a heavier one just reaches it lower down. Only the entry speed and angle matter.
23
+ * - It grows with $ \sin\lvert\gamma\rvert $: a steeper entry is a harder one.
24
+ * - Same assumptions as {@link ballisticEntrySpeed}: no lift, no gravity, a straight path. A lifting entry spreads the deceleration out and peaks much lower.
25
+ *
26
+ * :::
27
+ *
28
+ * ::: practice Apollo 11, coming home
29
+ *
30
+ * **35.8 g**
31
+ *
32
+ * _A ballistic entry at 11.03 km/s and −6.48°, with H = 7.2 km_
33
+ *
34
+ * The crew felt 6.56 g at the peak. The command module flew with lift, banking to control it, so it slowed down more gradually than a ballistic body would.
35
+ *
36
+ * ```ts
37
+ * ballisticPeakDeceleration(11_032, toRad(-6.48), 7200) / 9.80665; // ≈ 35.8 g
38
+ * ```
39
+ *
40
+ * :::
41
+ *
42
+ * @param VE - Entry speed $ V_E $ in **m/s** (finite, > 0).
43
+ * @param gamma - Flight-path angle $ \gamma $ in **radians** (finite, non-zero, within [-π/2, π/2]).
44
+ * @param H - Scale height $ H $ in **m** (finite, > 0).
45
+ * @returns Peak deceleration $ a_\text{max} $ in **m/s²**.
46
+ * @throws {TypeError} If any input is not a finite number.
47
+ * @throws {RangeError} If `VE <= 0`, `H <= 0`, or `gamma` is zero or past vertical.
48
+ * @group Entry
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * import type { Radians } from '@interstellar-tools/types';
53
+ *
54
+ * // Entering at 7.8 km/s, 2° below horizontal
55
+ * const a = ballisticPeakDeceleration(7800, (-2 * Math.PI / 180) as Radians, 7200);
56
+ * // a ≈ 54 m/s², about 5.5 g
57
+ * ```
58
+ *
59
+ * @see {@link ballisticPeakDecelerationAltitude}
60
+ * @see {@link ballisticEntrySpeed}
61
+ */
62
+ export declare const ballisticPeakDeceleration: (VE: number, gamma: number, H: number) => number;
63
+ //# sourceMappingURL=ballistic-peak-deceleration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ballistic-peak-deceleration.d.ts","sourceRoot":"","sources":["../../../src/categories/entry/ballistic-peak-deceleration.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,eAAO,MAAM,yBAAyB,GACpC,IAAI,MAAM,EACV,OAAO,MAAM,EACb,GAAG,MAAM,KACR,MAaF,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { assertFinite, assertFlightPathAngle, assertPositive } from './validate.js';
2
+ /**
3
+ * Compute the **peak deceleration of a ballistic entry**, with the Allen–Eggers solution.
4
+ *
5
+ * $$
6
+ * a_\text{max} = \frac{V_E^2 \sin\lvert\gamma\rvert}{2\,e\,H}
7
+ * $$
8
+ *
9
+ * reached when the speed has fallen to $ V_E / \sqrt{e} \approx 0.61\,V_E $.
10
+ *
11
+ * Where:
12
+ * - $ V_E $ is the speed at entry (m/s)
13
+ * - $ \gamma $ is the flight-path angle (rad)
14
+ * - $ H $ is the atmosphere's scale height (m)
15
+ * - $ e $ is Euler's number
16
+ *
17
+ * **Units**
18
+ * - Inputs: `VE` in **m/s**, `gamma` in **radians**, `H` in **m**.
19
+ * - Output: $ a_\text{max} $ in **m/s²**. Divide by 9.80665 for g.
20
+ *
21
+ * ::: info Notes
22
+ *
23
+ * - The peak doesn't depend on the vehicle's mass, size or drag: a heavier one just reaches it lower down. Only the entry speed and angle matter.
24
+ * - It grows with $ \sin\lvert\gamma\rvert $: a steeper entry is a harder one.
25
+ * - Same assumptions as {@link ballisticEntrySpeed}: no lift, no gravity, a straight path. A lifting entry spreads the deceleration out and peaks much lower.
26
+ *
27
+ * :::
28
+ *
29
+ * ::: practice Apollo 11, coming home
30
+ *
31
+ * **35.8 g**
32
+ *
33
+ * _A ballistic entry at 11.03 km/s and −6.48°, with H = 7.2 km_
34
+ *
35
+ * The crew felt 6.56 g at the peak. The command module flew with lift, banking to control it, so it slowed down more gradually than a ballistic body would.
36
+ *
37
+ * ```ts
38
+ * ballisticPeakDeceleration(11_032, toRad(-6.48), 7200) / 9.80665; // ≈ 35.8 g
39
+ * ```
40
+ *
41
+ * :::
42
+ *
43
+ * @param VE - Entry speed $ V_E $ in **m/s** (finite, > 0).
44
+ * @param gamma - Flight-path angle $ \gamma $ in **radians** (finite, non-zero, within [-π/2, π/2]).
45
+ * @param H - Scale height $ H $ in **m** (finite, > 0).
46
+ * @returns Peak deceleration $ a_\text{max} $ in **m/s²**.
47
+ * @throws {TypeError} If any input is not a finite number.
48
+ * @throws {RangeError} If `VE <= 0`, `H <= 0`, or `gamma` is zero or past vertical.
49
+ * @group Entry
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import type { Radians } from '@interstellar-tools/types';
54
+ *
55
+ * // Entering at 7.8 km/s, 2° below horizontal
56
+ * const a = ballisticPeakDeceleration(7800, (-2 * Math.PI / 180) as Radians, 7200);
57
+ * // a ≈ 54 m/s², about 5.5 g
58
+ * ```
59
+ *
60
+ * @see {@link ballisticPeakDecelerationAltitude}
61
+ * @see {@link ballisticEntrySpeed}
62
+ */
63
+ export const ballisticPeakDeceleration = (VE, gamma, H) => {
64
+ assertFinite([
65
+ ['VE', VE],
66
+ ['gamma', gamma],
67
+ ['H', H]
68
+ ]);
69
+ assertPositive([
70
+ ['VE', VE],
71
+ ['H', H]
72
+ ]);
73
+ assertFlightPathAngle(gamma);
74
+ return (VE * VE * Math.sin(Math.abs(gamma))) / (2 * Math.E * H);
75
+ };
76
+ //# sourceMappingURL=ballistic-peak-deceleration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ballistic-peak-deceleration.js","sourceRoot":"","sources":["../../../src/categories/entry/ballistic-peak-deceleration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,EAAU,EACV,KAAa,EACb,CAAS,EACD,EAAE;IACV,YAAY,CAAC;QACX,CAAC,IAAI,EAAE,EAAE,CAAC;QACV,CAAC,OAAO,EAAE,KAAK,CAAC;QAChB,CAAC,GAAG,EAAE,CAAC,CAAC;KACT,CAAC,CAAC;IACH,cAAc,CAAC;QACb,CAAC,IAAI,EAAE,EAAE,CAAC;QACV,CAAC,GAAG,EAAE,CAAC,CAAC;KACT,CAAC,CAAC;IACH,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE7B,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Compute the **convective heat flux at the stagnation point** of an entry vehicle, with the Sutton–Graves relation.
3
+ *
4
+ * $$
5
+ * \dot q = k\,\sqrt{\frac{\rho}{R_n}}\;V^3
6
+ * $$
7
+ *
8
+ * Where:
9
+ * - $ \rho $ is the free-stream density (kg/m³)
10
+ * - $ R_n $ is the nose radius: the radius of curvature at the stagnation point (m)
11
+ * - $ V $ is the speed (m/s)
12
+ * - $ k $ depends on the atmosphere's composition: about $ 1.7415 \times 10^{-4} $ kg$^{1/2}$/m for Earth's air and $ 1.9027 \times 10^{-4} $ for Mars
13
+ *
14
+ * **Units**
15
+ * - Inputs: `rho` in **kg/m³**, `V` in **m/s**, `Rn` in **m**, `k` in **kg^½/m**.
16
+ * - Output: $ \dot q $ in **W/m²**.
17
+ *
18
+ * ::: info Notes
19
+ *
20
+ * - The $ V^3 $ is why returning from the Moon is so much harder on a heat shield than returning from Earth orbit: 11 km/s against 7.8 km/s is almost three times the heating.
21
+ * - A blunter nose (larger $ R_n $) heats less, which is why capsules have broad, rounded heat shields rather than sharp points.
22
+ * - Convective heating only. At lunar return speeds the hot shock layer also radiates, which this doesn't include.
23
+ *
24
+ * :::
25
+ *
26
+ * @param rho - Free-stream density $ \rho $ in **kg/m³** (finite, > 0).
27
+ * @param V - Speed $ V $ in **m/s** (finite, > 0).
28
+ * @param Rn - Nose radius $ R_n $ in **m** (finite, > 0).
29
+ * @param k - Sutton–Graves constant $ k $ (finite, > 0). Defaults to `1.7415e-4`, for Earth.
30
+ * @returns Stagnation-point heat flux $ \dot q $ in **W/m²**.
31
+ * @throws {TypeError} If any input is not a finite number.
32
+ * @throws {RangeError} If any input is `<= 0`.
33
+ * @group Entry
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * // 11 km/s at about 60 km (ρ ≈ 3 × 10⁻⁴ kg/m³), with a 4.7 m nose radius
38
+ * const q = stagnationHeatFlux(3e-4, 11_000, 4.69);
39
+ * // q ≈ 1.85 MW/m²
40
+ * ```
41
+ *
42
+ * @see {@link ballisticEntrySpeed}
43
+ * @see https://en.wikipedia.org/wiki/Atmospheric_entry Atmospheric entry
44
+ */
45
+ export declare const stagnationHeatFlux: (rho: number, V: number, Rn: number, k?: number) => number;
46
+ //# sourceMappingURL=stagnation-heat-flux.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stagnation-heat-flux.d.ts","sourceRoot":"","sources":["../../../src/categories/entry/stagnation-heat-flux.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,MAAM,EACX,GAAG,MAAM,EACT,IAAI,MAAM,EACV,UAAa,KACZ,MAYF,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { assertFinite, assertPositive } from './validate.js';
2
+ /**
3
+ * Compute the **convective heat flux at the stagnation point** of an entry vehicle, with the Sutton–Graves relation.
4
+ *
5
+ * $$
6
+ * \dot q = k\,\sqrt{\frac{\rho}{R_n}}\;V^3
7
+ * $$
8
+ *
9
+ * Where:
10
+ * - $ \rho $ is the free-stream density (kg/m³)
11
+ * - $ R_n $ is the nose radius: the radius of curvature at the stagnation point (m)
12
+ * - $ V $ is the speed (m/s)
13
+ * - $ k $ depends on the atmosphere's composition: about $ 1.7415 \times 10^{-4} $ kg$^{1/2}$/m for Earth's air and $ 1.9027 \times 10^{-4} $ for Mars
14
+ *
15
+ * **Units**
16
+ * - Inputs: `rho` in **kg/m³**, `V` in **m/s**, `Rn` in **m**, `k` in **kg^½/m**.
17
+ * - Output: $ \dot q $ in **W/m²**.
18
+ *
19
+ * ::: info Notes
20
+ *
21
+ * - The $ V^3 $ is why returning from the Moon is so much harder on a heat shield than returning from Earth orbit: 11 km/s against 7.8 km/s is almost three times the heating.
22
+ * - A blunter nose (larger $ R_n $) heats less, which is why capsules have broad, rounded heat shields rather than sharp points.
23
+ * - Convective heating only. At lunar return speeds the hot shock layer also radiates, which this doesn't include.
24
+ *
25
+ * :::
26
+ *
27
+ * @param rho - Free-stream density $ \rho $ in **kg/m³** (finite, > 0).
28
+ * @param V - Speed $ V $ in **m/s** (finite, > 0).
29
+ * @param Rn - Nose radius $ R_n $ in **m** (finite, > 0).
30
+ * @param k - Sutton–Graves constant $ k $ (finite, > 0). Defaults to `1.7415e-4`, for Earth.
31
+ * @returns Stagnation-point heat flux $ \dot q $ in **W/m²**.
32
+ * @throws {TypeError} If any input is not a finite number.
33
+ * @throws {RangeError} If any input is `<= 0`.
34
+ * @group Entry
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * // 11 km/s at about 60 km (ρ ≈ 3 × 10⁻⁴ kg/m³), with a 4.7 m nose radius
39
+ * const q = stagnationHeatFlux(3e-4, 11_000, 4.69);
40
+ * // q ≈ 1.85 MW/m²
41
+ * ```
42
+ *
43
+ * @see {@link ballisticEntrySpeed}
44
+ * @see https://en.wikipedia.org/wiki/Atmospheric_entry Atmospheric entry
45
+ */
46
+ export const stagnationHeatFlux = (rho, V, Rn, k = 1.7415e-4) => {
47
+ const inputs = [
48
+ ['rho', rho],
49
+ ['V', V],
50
+ ['Rn', Rn],
51
+ ['k', k]
52
+ ];
53
+ assertFinite(inputs);
54
+ assertPositive(inputs);
55
+ return k * Math.sqrt(rho / Rn) * V ** 3;
56
+ };
57
+ //# sourceMappingURL=stagnation-heat-flux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stagnation-heat-flux.js","sourceRoot":"","sources":["../../../src/categories/entry/stagnation-heat-flux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAW,EACX,CAAS,EACT,EAAU,EACV,CAAC,GAAG,SAAS,EACL,EAAE;IACV,MAAM,MAAM,GAAG;QACb,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,GAAG,EAAE,CAAC,CAAC;QACR,CAAC,IAAI,EAAE,EAAE,CAAC;QACV,CAAC,GAAG,EAAE,CAAC,CAAC;KACA,CAAC;IAEX,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Compute the **terminal speed** of a falling body: where drag balances its weight.
3
+ *
4
+ * $$
5
+ * v_t = \sqrt{\frac{2\,m\,g}{\rho\, C_D\, A}}
6
+ * $$
7
+ *
8
+ * Where:
9
+ * - $ m $ is the mass (kg)
10
+ * - $ g $ is the local gravitational acceleration (m/s²)
11
+ * - $ \rho $ is the air density (kg/m³)
12
+ * - $ C_D $ is the drag coefficient (dimensionless)
13
+ * - $ A $ is the reference area (m²)
14
+ *
15
+ * **Units**
16
+ * - Inputs: `m` in **kg**, `g` in **m/s²**, `rho` in **kg/m³**, `Cd` dimensionless, `A` in **m²**.
17
+ * - Output: $ v_t $ in **m/s**.
18
+ *
19
+ * ::: info Notes
20
+ *
21
+ * - For a parachute, $ C_D $ and $ A $ are the canopy's. For a cluster, $ A $ is the total canopy area, and real clusters lose a little drag to interference between the canopies.
22
+ * - The density rises as the body descends, so the terminal speed falls: evaluate it at the altitude you care about, e.g. sea level for splashdown.
23
+ * - At $ v_t $, `atmosphericDragAcceleration` equals $ g $.
24
+ *
25
+ * :::
26
+ *
27
+ * @param m - Mass $ m $ in **kg** (finite, > 0).
28
+ * @param g - Gravitational acceleration $ g $ in **m/s²** (finite, > 0).
29
+ * @param rho - Air density $ \rho $ in **kg/m³** (finite, > 0).
30
+ * @param Cd - Drag coefficient $ C_D $ (finite, > 0).
31
+ * @param A - Reference area $ A $ in **m²** (finite, > 0).
32
+ * @returns Terminal speed $ v_t $ in **m/s**.
33
+ * @throws {TypeError} If any input is not a finite number.
34
+ * @throws {RangeError} If any input is `<= 0`.
35
+ * @group Entry
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * // A 4.9 t capsule under three 25.5 m canopies (Cd ≈ 0.8) at sea level
40
+ * const v = terminalVelocity(4932, 9.80665, 1.225, 0.8, 3 * Math.PI * 12.75 ** 2);
41
+ * // v ≈ 8.0 m/s
42
+ * ```
43
+ *
44
+ * @see {@link ballisticCoefficient}
45
+ * @see https://en.wikipedia.org/wiki/Terminal_velocity Terminal velocity
46
+ */
47
+ export declare const terminalVelocity: (m: number, g: number, rho: number, Cd: number, A: number) => number;
48
+ //# sourceMappingURL=terminal-velocity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-velocity.d.ts","sourceRoot":"","sources":["../../../src/categories/entry/terminal-velocity.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,gBAAgB,GAC3B,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,MAAM,EACX,IAAI,MAAM,EACV,GAAG,MAAM,KACR,MAaF,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { assertFinite, assertPositive } from './validate.js';
2
+ /**
3
+ * Compute the **terminal speed** of a falling body: where drag balances its weight.
4
+ *
5
+ * $$
6
+ * v_t = \sqrt{\frac{2\,m\,g}{\rho\, C_D\, A}}
7
+ * $$
8
+ *
9
+ * Where:
10
+ * - $ m $ is the mass (kg)
11
+ * - $ g $ is the local gravitational acceleration (m/s²)
12
+ * - $ \rho $ is the air density (kg/m³)
13
+ * - $ C_D $ is the drag coefficient (dimensionless)
14
+ * - $ A $ is the reference area (m²)
15
+ *
16
+ * **Units**
17
+ * - Inputs: `m` in **kg**, `g` in **m/s²**, `rho` in **kg/m³**, `Cd` dimensionless, `A` in **m²**.
18
+ * - Output: $ v_t $ in **m/s**.
19
+ *
20
+ * ::: info Notes
21
+ *
22
+ * - For a parachute, $ C_D $ and $ A $ are the canopy's. For a cluster, $ A $ is the total canopy area, and real clusters lose a little drag to interference between the canopies.
23
+ * - The density rises as the body descends, so the terminal speed falls: evaluate it at the altitude you care about, e.g. sea level for splashdown.
24
+ * - At $ v_t $, `atmosphericDragAcceleration` equals $ g $.
25
+ *
26
+ * :::
27
+ *
28
+ * @param m - Mass $ m $ in **kg** (finite, > 0).
29
+ * @param g - Gravitational acceleration $ g $ in **m/s²** (finite, > 0).
30
+ * @param rho - Air density $ \rho $ in **kg/m³** (finite, > 0).
31
+ * @param Cd - Drag coefficient $ C_D $ (finite, > 0).
32
+ * @param A - Reference area $ A $ in **m²** (finite, > 0).
33
+ * @returns Terminal speed $ v_t $ in **m/s**.
34
+ * @throws {TypeError} If any input is not a finite number.
35
+ * @throws {RangeError} If any input is `<= 0`.
36
+ * @group Entry
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * // A 4.9 t capsule under three 25.5 m canopies (Cd ≈ 0.8) at sea level
41
+ * const v = terminalVelocity(4932, 9.80665, 1.225, 0.8, 3 * Math.PI * 12.75 ** 2);
42
+ * // v ≈ 8.0 m/s
43
+ * ```
44
+ *
45
+ * @see {@link ballisticCoefficient}
46
+ * @see https://en.wikipedia.org/wiki/Terminal_velocity Terminal velocity
47
+ */
48
+ export const terminalVelocity = (m, g, rho, Cd, A) => {
49
+ const inputs = [
50
+ ['m', m],
51
+ ['g', g],
52
+ ['rho', rho],
53
+ ['Cd', Cd],
54
+ ['A', A]
55
+ ];
56
+ assertFinite(inputs);
57
+ assertPositive(inputs);
58
+ return Math.sqrt((2 * m * g) / (rho * Cd * A));
59
+ };
60
+ //# sourceMappingURL=terminal-velocity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-velocity.js","sourceRoot":"","sources":["../../../src/categories/entry/terminal-velocity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,CAAS,EACT,CAAS,EACT,GAAW,EACX,EAAU,EACV,CAAS,EACD,EAAE;IACV,MAAM,MAAM,GAAG;QACb,CAAC,GAAG,EAAE,CAAC,CAAC;QACR,CAAC,GAAG,EAAE,CAAC,CAAC;QACR,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,IAAI,EAAE,EAAE,CAAC;QACV,CAAC,GAAG,EAAE,CAAC,CAAC;KACA,CAAC;IAEX,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Throw a TypeError for each non-finite input, named as in the caller's signature. */
2
+ export declare const assertFinite: (inputs: readonly (readonly [string, number])[]) => void;
3
+ /** Throw a RangeError for each input that isn't strictly positive. */
4
+ export declare const assertPositive: (inputs: readonly (readonly [string, number])[]) => void;
5
+ /** Throw a RangeError unless the flight-path angle is a descent or climb, not level or past vertical. */
6
+ export declare const assertFlightPathAngle: (gamma: number) => void;
7
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/categories/entry/validate.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,YAAY,GACvB,QAAQ,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,SAM/C,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,cAAc,GACzB,QAAQ,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,SAK/C,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,SAKlD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Throw a TypeError for each non-finite input, named as in the caller's signature. */
2
+ export const assertFinite = (inputs) => {
3
+ for (const [name, x] of inputs) {
4
+ if (!Number.isFinite(x))
5
+ throw new TypeError(`${name} must be a finite number. Received: ${x}`);
6
+ }
7
+ };
8
+ /** Throw a RangeError for each input that isn't strictly positive. */
9
+ export const assertPositive = (inputs) => {
10
+ for (const [name, x] of inputs) {
11
+ if (x <= 0)
12
+ throw new RangeError(`${name} must be > 0. Received: ${x}`);
13
+ }
14
+ };
15
+ /** Throw a RangeError unless the flight-path angle is a descent or climb, not level or past vertical. */
16
+ export const assertFlightPathAngle = (gamma) => {
17
+ if (gamma === 0 || Math.abs(gamma) > Math.PI / 2)
18
+ throw new RangeError(`gamma must be non-zero and within [-π/2, π/2]. Received: ${gamma}`);
19
+ };
20
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/categories/entry/validate.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAA8C,EAC9C,EAAE;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAA8C,EAC9C,EAAE;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,CAAC;AAEF,yGAAyG;AACzG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,EAAE;IACrD,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;QAC9C,MAAM,IAAI,UAAU,CAClB,4DAA4D,KAAK,EAAE,CACpE,CAAC;AACN,CAAC,CAAC"}
@@ -17,7 +17,7 @@ import type { Radians } from '@interstellar-tools/types';
17
17
  *
18
18
  * ::: info Notes
19
19
  *
20
- * - `lat` is the **geocentric** latitude. Published latitudes are usually geodetic, which on Earth differ by up to 0.19°, and the inclination by about as much. Convert first (see [#186](https://github.com/phun-ky/interstellar-tools/issues/186)).
20
+ * - `lat` is the **geocentric** latitude. Published latitudes are usually geodetic, which on Earth differ by up to 0.19°, and the inclination by about as much. Convert first with {@link geodeticToBodyFixed}, at the point's height.
21
21
  * - The relation holds at every point of the ground track, not only at launch: an orbit never reaches a latitude higher than its inclination.
22
22
  * - Launching due east ($ \beta = 90° $) gives the lowest inclination a site can reach without a plane change: its own latitude.
23
23
  * - Azimuths between 180° and 360° head west, into retrograde orbits ($ i > 90° $).
@@ -27,14 +27,16 @@ import type { Radians } from '@interstellar-tools/types';
27
27
  *
28
28
  * ::: practice Apollo 11, entering Earth orbit
29
29
  *
30
- * **32.52°**
30
+ * **32.521°**
31
31
  *
32
- * _At orbit insertion: 32.497° N geocentric, heading 88.848°_
32
+ * _At orbit insertion: 32.502° N geocentric (32.672° geodetic, 191.1 km up), heading 88.848°_
33
33
  *
34
34
  * The flown parking orbit was inclined 32.521°. Apollo 11 entered orbit near the northernmost point of its track, heading almost due east. With the published geodetic latitude, 32.672°, the result would be 32.69°.
35
35
  *
36
36
  * ```ts
37
- * inclinationFromLaunchAzimuth(toRad(32.497), toRad(88.848)); // ≈ 32.52°
37
+ * const [x, y, z] = geodeticToBodyFixed(toRad(32.672), toRad(-52.694), 191_100, 6_378_137, 0.00669437999014);
38
+ * const lat = Math.atan2(z, Math.hypot(x, y)); // 32.502°
39
+ * inclinationFromLaunchAzimuth(lat, toRad(88.848)); // ≈ 32.521°
38
40
  * ```
39
41
  *
40
42
  * :::
@@ -1 +1 @@
1
- {"version":3,"file":"inclination-from-launch-azimuth.d.ts","sourceRoot":"","sources":["../../../src/categories/orbits/inclination-from-launch-azimuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,eAAO,MAAM,4BAA4B,GACvC,KAAK,OAAO,EACZ,SAAS,OAAO,KACf,OAgBF,CAAC"}
1
+ {"version":3,"file":"inclination-from-launch-azimuth.d.ts","sourceRoot":"","sources":["../../../src/categories/orbits/inclination-from-launch-azimuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,eAAO,MAAM,4BAA4B,GACvC,KAAK,OAAO,EACZ,SAAS,OAAO,KACf,OAgBF,CAAC"}
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * ::: info Notes
18
18
  *
19
- * - `lat` is the **geocentric** latitude. Published latitudes are usually geodetic, which on Earth differ by up to 0.19°, and the inclination by about as much. Convert first (see [#186](https://github.com/phun-ky/interstellar-tools/issues/186)).
19
+ * - `lat` is the **geocentric** latitude. Published latitudes are usually geodetic, which on Earth differ by up to 0.19°, and the inclination by about as much. Convert first with {@link geodeticToBodyFixed}, at the point's height.
20
20
  * - The relation holds at every point of the ground track, not only at launch: an orbit never reaches a latitude higher than its inclination.
21
21
  * - Launching due east ($ \beta = 90° $) gives the lowest inclination a site can reach without a plane change: its own latitude.
22
22
  * - Azimuths between 180° and 360° head west, into retrograde orbits ($ i > 90° $).
@@ -26,14 +26,16 @@
26
26
  *
27
27
  * ::: practice Apollo 11, entering Earth orbit
28
28
  *
29
- * **32.52°**
29
+ * **32.521°**
30
30
  *
31
- * _At orbit insertion: 32.497° N geocentric, heading 88.848°_
31
+ * _At orbit insertion: 32.502° N geocentric (32.672° geodetic, 191.1 km up), heading 88.848°_
32
32
  *
33
33
  * The flown parking orbit was inclined 32.521°. Apollo 11 entered orbit near the northernmost point of its track, heading almost due east. With the published geodetic latitude, 32.672°, the result would be 32.69°.
34
34
  *
35
35
  * ```ts
36
- * inclinationFromLaunchAzimuth(toRad(32.497), toRad(88.848)); // ≈ 32.52°
36
+ * const [x, y, z] = geodeticToBodyFixed(toRad(32.672), toRad(-52.694), 191_100, 6_378_137, 0.00669437999014);
37
+ * const lat = Math.atan2(z, Math.hypot(x, y)); // 32.502°
38
+ * inclinationFromLaunchAzimuth(lat, toRad(88.848)); // ≈ 32.521°
37
39
  * ```
38
40
  *
39
41
  * :::
@@ -1 +1 @@
1
- {"version":3,"file":"inclination-from-launch-azimuth.js","sourceRoot":"","sources":["../../../src/categories/orbits/inclination-from-launch-azimuth.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,GAAY,EACZ,OAAgB,EACP,EAAE;IACX,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;QACtB,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,SAAS,EAAE,OAAO,CAAC;KACZ,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;QAC7B,MAAM,IAAI,UAAU,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;IAEvE,8CAA8C;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAY,CAAC;AACpC,CAAC,CAAC"}
1
+ {"version":3,"file":"inclination-from-launch-azimuth.js","sourceRoot":"","sources":["../../../src/categories/orbits/inclination-from-launch-azimuth.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,GAAY,EACZ,OAAgB,EACP,EAAE;IACX,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;QACtB,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,SAAS,EAAE,OAAO,CAAC;KACZ,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;QAC7B,MAAM,IAAI,UAAU,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;IAEvE,8CAA8C;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAY,CAAC;AACpC,CAAC,CAAC"}
@@ -20,7 +20,7 @@ import type { Radians } from '@interstellar-tools/types';
20
20
  * - A rocket launched eastward gets this speed for free; one launched westward has to cancel it first.
21
21
  * - Earth's sidereal rotation rate is about 7.2921150 × 10⁻⁵ rad/s.
22
22
  * - A body that rotates backwards (Venus, Uranus) has a negative `omega`, and the result is negative: westward.
23
- * - $ R\cos\varphi $ is the distance from the rotation axis. On an oblate body, pass the geocentric latitude and the point's distance from the body's centre, not the equatorial radius with a geodetic latitude (see [#186](https://github.com/phun-ky/interstellar-tools/issues/186)).
23
+ * - $ R\cos\varphi $ is the distance from the rotation axis. On an oblate body, pass the geocentric latitude and the point's distance from the body's centre, not the equatorial radius with a geodetic latitude; {@link geodeticToBodyFixed} gives both.
24
24
  *
25
25
  * :::
26
26
  *
@@ -19,7 +19,7 @@
19
19
  * - A rocket launched eastward gets this speed for free; one launched westward has to cancel it first.
20
20
  * - Earth's sidereal rotation rate is about 7.2921150 × 10⁻⁵ rad/s.
21
21
  * - A body that rotates backwards (Venus, Uranus) has a negative `omega`, and the result is negative: westward.
22
- * - $ R\cos\varphi $ is the distance from the rotation axis. On an oblate body, pass the geocentric latitude and the point's distance from the body's centre, not the equatorial radius with a geodetic latitude (see [#186](https://github.com/phun-ky/interstellar-tools/issues/186)).
22
+ * - $ R\cos\varphi $ is the distance from the rotation axis. On an oblate body, pass the geocentric latitude and the point's distance from the body's centre, not the equatorial radius with a geodetic latitude; {@link geodeticToBodyFixed} gives both.
23
23
  *
24
24
  * :::
25
25
  *