radar.components.geometry

Module Contents

Classes

Geometry

Abstract base class establishing structural data and plotting for radar arrays.

CustomGeometry

Defines an arbitrary custom geometry layout from predefined position arrays.

Linear

Generates a center-aligned 1D linear sensor array along a targeted axis.

Cross

Generates a center-aligned cross (cruciform) antenna array layout.

Circular

Generates a circular ring array layout with uniformly distributed elements.

Grid

Generates a center-aligned 2D planar rectangular matrix/grid array layout.

API

class radar.components.geometry.Geometry[source]

Bases: abc.ABC

Abstract base class establishing structural data and plotting for radar arrays.

Provides core storage properties, enforces automatic default column configuration, and routes spatial positioning data to specialized visual plot renderers.

Initialization

Initializes the base array geometry and attaches its plot interface.

abstractmethod _generate_positions_df() polars.DataFrame[source]

Abstract method that subclasses must implement to yield their initial position dataframe.

_set_default_gain_phase() None[source]
property phases
property gains
_validate_input_df(df: polars.DataFrame, required_column: str) None[source]

Helper method to validate that the input DataFrame matches the current geometry.

property geometry: polars.DataFrame

Returns the internal Polars DataFrame containing element physical positions.

class Plot(geometry: radar.components.geometry.Geometry)[source]

Bases: radar.utils.plotter.GeometryInterface

Inner bridge class handling plotting commands for its parent Geometry.

Initialization

geometry() None[source]
__slots__ = ()
class Animate(geometry: radar.components.geometry.Geometry)[source]

Bases: radar.utils.animate.GeometryInterface

Inner bridge class handling animate commands for its parent Geometry.

Initialization

geometry(position: numpy.typing.NDArray, colour: manim.ManimColor) manim.VGroup[source]
__slots__ = ()
__slots__ = ()
class radar.components.geometry.CustomGeometry(x: numpy.typing.NDArray, y: numpy.typing.NDArray)[source]

Bases: radar.components.geometry.Geometry

Defines an arbitrary custom geometry layout from predefined position arrays.

Initialization

Initializes the base array geometry and attaches its plot interface.

_generate_positions_df() polars.DataFrame[source]
_set_default_gain_phase() None
property phases
property gains
_validate_input_df(df: polars.DataFrame, required_column: str) None
property geometry: polars.DataFrame
class Plot(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.plotter.GeometryInterface

geometry() None
__slots__ = ()
class Animate(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.animate.GeometryInterface

geometry(position: numpy.typing.NDArray, colour: manim.ManimColor) manim.VGroup
__slots__ = ()
__slots__ = ()
class radar.components.geometry.Linear(elements: pydantic.PositiveInt, orientation: radar.utils.typing.ArrayOrientation, spacing: radar.utils.typing.Distance)[source]

Bases: radar.components.geometry.Geometry

Generates a center-aligned 1D linear sensor array along a targeted axis.

Initialization

Initializes the base array geometry and attaches its plot interface.

_generate_positions_df() polars.DataFrame[source]
_set_default_gain_phase() None
property phases
property gains
_validate_input_df(df: polars.DataFrame, required_column: str) None
property geometry: polars.DataFrame
class Plot(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.plotter.GeometryInterface

geometry() None
__slots__ = ()
class Animate(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.animate.GeometryInterface

geometry(position: numpy.typing.NDArray, colour: manim.ManimColor) manim.VGroup
__slots__ = ()
__slots__ = ()
class radar.components.geometry.Cross(azimuth_elements: pydantic.PositiveInt, elevation_elements: pydantic.PositiveInt, spacing: radar.utils.typing.Distance)[source]

Bases: radar.components.geometry.Geometry

Generates a center-aligned cross (cruciform) antenna array layout.

Initialization

Initializes the base array geometry and attaches its plot interface.

_generate_positions_df() polars.DataFrame[source]
_set_default_gain_phase() None
property phases
property gains
_validate_input_df(df: polars.DataFrame, required_column: str) None
property geometry: polars.DataFrame
class Plot(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.plotter.GeometryInterface

geometry() None
__slots__ = ()
class Animate(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.animate.GeometryInterface

geometry(position: numpy.typing.NDArray, colour: manim.ManimColor) manim.VGroup
__slots__ = ()
__slots__ = ()
class radar.components.geometry.Circular(elements: pydantic.PositiveInt, radius: radar.utils.typing.Length)[source]

Bases: radar.components.geometry.Geometry

Generates a circular ring array layout with uniformly distributed elements.

Initialization

Initializes the base array geometry and attaches its plot interface.

_generate_positions_df() polars.DataFrame[source]
_set_default_gain_phase() None
property phases
property gains
_validate_input_df(df: polars.DataFrame, required_column: str) None
property geometry: polars.DataFrame
class Plot(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.plotter.GeometryInterface

geometry() None
__slots__ = ()
class Animate(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.animate.GeometryInterface

geometry(position: numpy.typing.NDArray, colour: manim.ManimColor) manim.VGroup
__slots__ = ()
__slots__ = ()
class radar.components.geometry.Grid(azimuth_elements: pydantic.PositiveInt, elevation_elements: pydantic.PositiveInt, spacing: radar.utils.typing.Distance)[source]

Bases: radar.components.geometry.Geometry

Generates a center-aligned 2D planar rectangular matrix/grid array layout.

Initialization

Initializes the base array geometry and attaches its plot interface.

_generate_positions_df() polars.DataFrame[source]
_set_default_gain_phase() None
property phases
property gains
_validate_input_df(df: polars.DataFrame, required_column: str) None
property geometry: polars.DataFrame
class Plot(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.plotter.GeometryInterface

geometry() None
__slots__ = ()
class Animate(geometry: radar.components.geometry.Geometry)

Bases: radar.utils.animate.GeometryInterface

geometry(position: numpy.typing.NDArray, colour: manim.ManimColor) manim.VGroup
__slots__ = ()
__slots__ = ()