radar.utils.animate.beam

Radar Beam Visualizer Module.

Provides abstractions and implementation classes to transform numerical beam pattern datasets (gain, azimuth, elevation) into interpolatable 3D Manim Surface objects.

Module Contents

Classes

BeamInterface

Abstract Base Class acting as an interface for all radar array beam generators.

Beam

Utility handler for evaluating, interpolating, and mapping tabular beam logs into visual 3D Manim objects.

API

class radar.utils.animate.beam.BeamInterface[source]

Bases: abc.ABC

Abstract Base Class acting as an interface for all radar array beam generators.

Ensures unified functional signatures across continuous or discrete array response forms.

abstractmethod beam(frequency: radar.utils.typing.units.Frequency, position: numpy.typing.NDArray, direction_domain: radar.utils.typing.enums.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.enums.AmplitudeDomain, amplitude_unit: radar.utils.typing.enums.AmplitudeUnit, steer: tuple[radar.utils.typing.units.Angle, radar.utils.typing.units.Angle] | None = None) manim.Surface[source]

Generate a Manim Surface object representing the 3D radiation beam pattern.

Args:

frequency (Frequency): The operating tracking frequency instance. position (npt.NDArray): The 3D anchor coordinate [x, y, z] for the pattern center. direction_domain (DirectionDomain): Coordinate space domain (e.g., Angle, UV). phase_unit (PhaseUnit): Angular scale (e.g., Radian, Degree). amplitude_domain (AmplitudeDomain): Pattern scaling type (e.g., Gain, Directivity). amplitude_unit (AmplitudeUnit): Amplitude metrics type (e.g., Decibel, Linear). steer (tuple[Angle, Angle] | None): Optional azimuth/elevation steer

angle used by array-based beam generation.

Returns:

Surface: A Manim 3D continuous surface wrapper.

__slots__ = ()
class radar.utils.animate.beam.Beam[source]

Utility handler for evaluating, interpolating, and mapping tabular beam logs into visual 3D Manim objects.

X_RESOLUTION: int = 100
Y_RESOLUTION: int = 100
classmethod surface_3d(df: polars.DataFrame, position: numpy.typing.NDArray, direction_domain: radar.utils.typing.enums.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.enums.AmplitudeDomain, amplitude_unit: radar.utils.typing.enums.AmplitudeUnit) manim.Surface[source]

Construct a continuous, interpolated 3D Manim Surface based on spatial dataframe patterns.

Args:

df (pl.DataFrame): Tabular beam log dataset. position (npt.NDArray): 3D translation anchor coordinate. direction_domain (DirectionDomain): Spatial coordinate configuration mode. phase_unit (PhaseUnit): Angular metric framework units. amplitude_domain (AmplitudeDomain): Signal target scale format. amplitude_unit (AmplitudeUnit): Magnitude representation bounds.

Returns:

Surface: Renderable 3D Manim surface mesh.

classmethod _df_to_surface(df: polars.DataFrame, position: numpy.typing.NDArray, direction_domain: radar.utils.typing.enums.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.enums.AmplitudeDomain, amplitude_unit: radar.utils.typing.enums.AmplitudeUnit) manim.Surface[source]

Internal math processing kernel to handle scaffolding, sorting, grid interpolation, and surface color mapping.

static normalise(data: polars.DataFrame) polars.DataFrame[source]

Normalize all numeric dataframe metric tracking series to a range between [-1, 1].

Args:

data (pl.DataFrame): Target source dataframe container.

Returns:

pl.DataFrame: Scaled and re-mapped dataset.

Raises:

TypeError: If input data is not a Polars DataFrame.