Sidereon.Nx (Sidereon v0.8.0)

Copy Markdown View Source

Batch/tensor analysis helpers for Sidereon.

This layer is for high-throughput workflows like visibility matrices, coverage grids, and Monte Carlo studies. It complements the exact scalar APIs in Sidereon, rather than replacing them.

Summary

Functions

Compute simple access counts over a time series.

Batch free-space path loss.

Batch link-margin calculation with broadcastable inputs.

Compute topocentric look angles for many ITRS positions and stations.

Return a boolean visibility mask for min_elevation degrees.

Types

tensor()

@type tensor() :: Nx.Tensor.t() | number()

Functions

access_counts(elevation_series, opts \\ [])

@spec access_counts(
  Nx.Tensor.t(),
  keyword()
) :: Nx.Tensor.t()

Compute simple access counts over a time series.

Expected shape for elevation_series: [t, s, g].

fspl(range_km, frequency_mhz)

@spec fspl(tensor(), tensor()) :: Nx.Tensor.t()

Batch free-space path loss.

range_km may be any broadcastable tensor.

look_angles(sat_positions, stations, opts \\ [])

@spec look_angles(Nx.Tensor.t(), Nx.Tensor.t(), keyword()) :: %{
  azimuth: Nx.Tensor.t(),
  elevation: Nx.Tensor.t(),
  range_km: Nx.Tensor.t()
}

Compute topocentric look angles for many ITRS positions and stations.

Expected shapes:

  • sat_positions: [n, 3] in ITRS km
  • stations: [m, 3] as {lat_deg, lon_deg, alt_m}

Returns tensors shaped [n, m].

visible_mask(sat_positions, stations, opts \\ [])

@spec visible_mask(Nx.Tensor.t(), Nx.Tensor.t(), keyword()) :: Nx.Tensor.t()

Return a boolean visibility mask for min_elevation degrees.

Result shape: [n, m].