radar.utils.plotter.monopulse

Module Contents

Classes

MonopulseInterface

Abstract base class defining the interface for geometry-related operations.

Monopulse

A visualization utility class for rendering Monopulse radar beam patterns.

API

class radar.utils.plotter.monopulse.MonopulseInterface[source]

Bases: abc.ABC

Abstract base class defining the interface for geometry-related operations.

abstractmethod monopulse(direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_unit: radar.utils.typing.AmplitudeUnit, figure_type: radar.utils.typing.FigureType, frequency: radar.utils.typing.units.Frequency, condition: polars.Expr, steer: tuple[radar.utils.typing.units.Angle, radar.utils.typing.units.Angle] | None = None) → None[source]

Process or retrieve geometry data.

This method must be implemented by subclasses to define specific geometry behaviors.

__slots__ = ()
class radar.utils.plotter.monopulse.Monopulse[source]

A visualization utility class for rendering Monopulse radar beam patterns.

Coordinates subplots for Sum, Difference, and Ratio patterns across 2D heatmaps, 3D surfaces, and 2D linear slices.

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.

MIN_DB_CLAMP (float): Lower threshold limit used to clamp deep null values.

FIGURE_WIDTH = 1400
FIGURE_HEIGHT = 1200
DISPLAY_GRID_PIXELS = 100
MIN_DB_CLAMP = None
classmethod _plot_monopulse(df: polars.DataFrame, direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, 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.

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

Renders 2D line plot slices showing Monopulse subplots 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 _monopulse_image(df: polars.DataFrame, direction_domain: radar.utils.typing.DirectionDomain, phase_unit: radar.utils.typing.enums.PhaseUnit, amplitude_unit: radar.utils.typing.AmplitudeUnit) → None[source]

Renders 2D binned density heatmaps for Sum, Difference, Ratio, and Sensitivity patterns.

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

Generates and renders side-by-side 3D surfaces of monopulse components.

classmethod _bin_dataframe_2d(df: polars.DataFrame, x_col: str, y_col: str, z_col: str) → tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray][source]

Utility matrix method to downsample spatial data frames using 2D histogramming.