radar.utils.plotter.beam

Module Contents

Classes

BeamInterface

Abstract base class defining the interface for generating antenna beam patterns.

Beam

A visualization utility class for generating various antenna beam pattern plots.

API

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

Bases: abc.ABC

Abstract base class defining the interface for generating antenna beam patterns.

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

Process and visualize the antenna beam pattern.

This method must be implemented by subclasses to coordinate dataframe processing and layout rendering based on the domain parameters provided.

Args:
direction_domain (DirectionDomain): The spatial domain to utilize

(e.g., Angle or UV space).

phase_unit (PhaseUnit): The angular unit (e.g., Degrees or Radians). amplitude_domain (AmplitudeDomain): The amplitude measurement type

(e.g., Gain or Antenna Factor).

amplitude_unit (AmplitudeUnit): The representation unit for

amplitude (e.g., Linear or Decibel).

figure_type (FigureType): The targeted plot visualization type

(e.g., Image, Surface, Slice).

steer (tuple[Angle, Angle] | None): Optional azimuth/elevation steer

angle used by array-based beam generation.

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

A visualization utility class for generating various antenna beam pattern plots.

Attributes:

FIGURE_WIDTH (int): Default width of the generated Plotly figure in pixels. FIGURE_HEIGHT (int): Default height of the generated Plotly figure in pixels. DISPLAY_GRID_PIXELS (int): Resolution of the grid (number of bins) used for

heatmaps and surface downsampling.

FIGURE_WIDTH = 800
FIGURE_HEIGHT = 800
DISPLAY_GRID_PIXELS = 100
classmethod _plot_beam(df: polars.DataFrame, direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.AmplitudeDomain, amplitude_unit: radar.utils.typing.AmplitudeUnit, figure_type: radar.utils.typing.FigureType) None[source]

Routes the visualization request to the appropriate plotting method.

Args:

df (pl.DataFrame): The source DataFrame containing the radar data. direction_domain (DirectionDomain): Spatial tracking domain context. phase_unit (PhaseUnit): Angular/phase coordinate unit tracking context. amplitude_domain (AmplitudeDomain): Amplitude classification context. amplitude_unit (AmplitudeUnit): Linear vs logarithmic scale tracking. figure_type (FigureType): Determines whether to dispatch to a

2D line slice, 2D heatmap image, or a 3D surface plot.

static _xy_units(direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit) tuple[str, str][source]

Extracts text label units for display on visual axes.

Args:

direction_domain (DirectionDomain): Targeted plotting spatial coordinate system. phase_unit (PhaseUnit): Configured orientation angle unit.

Returns:

tuple[str, str]: Axis string labels representing horizontal and vertical dimensions.

classmethod _beam_slice(df: polars.DataFrame, direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.AmplitudeDomain, amplitude_unit: radar.utils.typing.AmplitudeUnit) None[source]

Renders a 2D line plot showing pattern slices across Azimuth for distinct Elevations.

Args:

df (pl.DataFrame): Input dataset containing spatial and magnitude columns. direction_domain (DirectionDomain): Selected directional coordinate paradigm. phase_unit (PhaseUnit): Selected angle configuration unit. amplitude_domain (AmplitudeDomain): Selected amplitude tracking domain. amplitude_unit (AmplitudeUnit): Metric scale unit for the vertical axis.

classmethod _beam_image(df: polars.DataFrame, direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.AmplitudeDomain, amplitude_unit: radar.utils.typing.AmplitudeUnit) None[source]

Renders a 2D binned density heatmap representing the antenna beam pattern.

Args:

df (pl.DataFrame): Input dataset containing spatial and magnitude columns. direction_domain (DirectionDomain): Selected directional coordinate paradigm. phase_unit (PhaseUnit): Selected angle configuration unit. amplitude_domain (AmplitudeDomain): Selected amplitude tracking domain. amplitude_unit (AmplitudeUnit): Metric scale unit for color mapping values.

classmethod _beam_surface(df: polars.DataFrame, direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_domain: radar.utils.typing.AmplitudeDomain, amplitude_unit: radar.utils.typing.AmplitudeUnit) None[source]

Generates and renders a 3D surface mesh using 2D binned averaging downsampling.

Args:

df (pl.DataFrame): Input dataset containing spatial and magnitude columns. direction_domain (DirectionDomain): Selected directional coordinate paradigm. phase_unit (PhaseUnit): Selected angle configuration unit. amplitude_domain (AmplitudeDomain): Selected amplitude tracking domain. amplitude_unit (AmplitudeUnit): Metric scale unit for vertical 3D displacement.