# `Sidereon.Astro.Observe`
[🔗](https://github.com/neilberkman/sidereon-ex/blob/main/lib/sidereon/astro/observe.ex#L1)

General topocentric body observation.

This wraps the core observer pipeline for analytic Sun/Moon targets, SPK body
targets, and caller-supplied barycentric states.

# `station`

```elixir
@type station() ::
  {number(), number(), number()}
  | %{latitude_deg: number(), longitude_deg: number(), altitude_km: number()}
```

# `time`

```elixir
@type time() :: DateTime.t() | NaiveDateTime.t() | {tuple(), tuple()}
```

# `vec3`

```elixir
@type vec3() :: {number(), number(), number()}
```

# `observe`

Observe the analytic Sun or Moon from a station.

# `observe!`

# `observe_barycentric_state`

Observe a caller-supplied SSB-centered barycentric state.

# `observe_barycentric_state!`

# `observe_spk_body`

Observe a body from an SPK kernel by NAIF id or known body atom.

# `observe_spk_body!`

# `observe_spk_body_default`

Observe an SPK body with core default observation options.

# `observe_spk_body_default!`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
