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
@type tensor() :: Nx.Tensor.t() | number()
Functions
@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].
@spec fspl(tensor(), tensor()) :: Nx.Tensor.t()
Batch free-space path loss.
range_km may be any broadcastable tensor.
@spec link_margin(map()) :: Nx.Tensor.t()
Batch link-margin calculation with broadcastable inputs.
@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 kmstations:[m, 3]as{lat_deg, lon_deg, alt_m}
Returns tensors shaped [n, m].
@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].