View Source SpaceDust.Observations (Space Dust v0.3.0)

Functions for computing angular observations from observer and target states.

Provides transformations between different observation coordinate systems:

  • ECI (Earth-Centered Inertial) ↔ RA/Dec (Right Ascension/Declination)
  • ECI ↔ Az/El (Azimuth/Elevation) for a ground observer
  • RA/Dec ↔ Az/El conversions

All angular computations account for the observer's location and the Earth's rotation at the observation epoch.

Summary

Functions

Compute line of sight unit vector in ECI frame from Az/El observation.

Convert Az/El to RA/Dec for a given observer and time.

Compute unit vector in local SEZ frame from Az/El.

Compute Az/El observation of a target from an observer.

Compute RA/Dec observation of a target from an observer.

Compute RA/Dec of a target directly from ECI position (geocentric).

Check if a target is visible from an observer (above horizon).

Compute the look angles and range from observer to target. Returns {az_deg, el_deg, range_km}.

Convert RA/Dec to Az/El for a given observer and time.

Compute unit vector in ECI frame from RA/Dec.

Functions

az_el_to_eci_direction(az_el, observer)

Compute line of sight unit vector in ECI frame from Az/El observation.

az_el_to_ra_dec(az_el, observer)

Convert Az/El to RA/Dec for a given observer and time.

az_el_to_sez_direction(az_el)

@spec az_el_to_sez_direction(SpaceDust.Observations.AzEl.t()) ::
  SpaceDust.Math.Vector.vector()

Compute unit vector in local SEZ frame from Az/El.

compute_az_el(observer, target, opts \\ [])

Compute Az/El observation of a target from an observer.

Parameters

  • observer: GeodeticState of the ground observer
  • target: ECIState of the target
  • opts: Optional parameters
    • :include_rates - Compute angular rates (default: false)

Returns

  • AzEl observation struct

Example

observer = GeodeticState.new(40.0, -105.0, 1.6)
target = ECIState.new(epoch, {7000.0, 0.0, 0.0}, {0.0, 7.5, 0.0})
SpaceDust.Observations.compute_az_el(observer, target)

compute_ra_dec(observer, target, opts \\ [])

Compute RA/Dec observation of a target from an observer.

Parameters

  • observer: GeodeticState of the ground observer
  • target: ECIState of the target
  • opts: Optional parameters
    • :include_rates - Compute angular rates (default: false)

Returns

  • RaDec observation struct

Example

observer = GeodeticState.new(40.0, -105.0, 1.6)
target = ECIState.new(epoch, {7000.0, 0.0, 0.0}, {0.0, 7.5, 0.0})
SpaceDust.Observations.compute_ra_dec(observer, target)

geocentric_ra_dec(eci_state)

Compute RA/Dec of a target directly from ECI position (geocentric).

This gives the geocentric RA/Dec (as seen from Earth's center), not topocentric (as seen from a ground observer).

is_visible?(observer, target, opts \\ [])

Check if a target is visible from an observer (above horizon).

Options:

  • :min_elevation - Minimum elevation angle in degrees (default: 0.0)

look_angles(observer, target)

Compute the look angles and range from observer to target. Returns {az_deg, el_deg, range_km}.

ra_dec_to_az_el(ra_dec, observer)

Convert RA/Dec to Az/El for a given observer and time.

ra_dec_to_eci_direction(ra_dec)

@spec ra_dec_to_eci_direction(SpaceDust.Observations.RaDec.t()) ::
  SpaceDust.Math.Vector.vector()

Compute unit vector in ECI frame from RA/Dec.