View Source SpaceDust.State.GeodeticState (Space Dust v0.3.0)

State in geodetic coordinates (latitude, longitude, altitude).

Uses WGS84 ellipsoid for Earth reference. This is the standard representation for ground-based observer locations.

  • Latitude: Geodetic latitude in degrees (-90 to +90, positive North)
  • Longitude: Geodetic longitude in degrees (-180 to +180, positive East)
  • Altitude: Height above WGS84 ellipsoid in kilometers

Summary

Functions

Create geodetic state from an ECEF state. Uses iterative algorithm for accurate conversion.

Get the local sidereal time at the observer's location. Returns LST in radians.

Create a new geodetic state.

Convert geodetic coordinates to ECEF position.

Convert geodetic state to ECI position at a given epoch.

Types

t()

@type t() :: %SpaceDust.State.GeodeticState{
  altitude: float(),
  latitude: float(),
  longitude: float()
}

Functions

from_ecef(ecef_state)

@spec from_ecef(SpaceDust.State.ECEFState.t()) :: t()

Create geodetic state from an ECEF state. Uses iterative algorithm for accurate conversion.

local_sidereal_time(geodetic_state, epoch)

@spec local_sidereal_time(t(), DateTime.t()) :: float()

Get the local sidereal time at the observer's location. Returns LST in radians.

new(latitude, longitude, altitude)

@spec new(float(), float(), float()) :: t()

Create a new geodetic state.

Parameters

  • latitude: Geodetic latitude in degrees (-90 to +90)
  • longitude: Geodetic longitude in degrees (-180 to +180)
  • altitude: Height above WGS84 ellipsoid in kilometers

Example

iex> SpaceDust.State.GeodeticState.new(40.0, -105.0, 1.6)

to_ecef(geodetic_state, epoch)

@spec to_ecef(t(), DateTime.t()) :: SpaceDust.State.ECEFState.t()

Convert geodetic coordinates to ECEF position.

Returns an ECEF position vector {x, y, z} in kilometers. Velocity is set to zero (stationary observer).

to_eci(geodetic, epoch)

@spec to_eci(t(), DateTime.t()) :: SpaceDust.State.ECIState.t()

Convert geodetic state to ECI position at a given epoch.