Shared Heatmap Configuration#

All four heatmap processors share two configuration bases: HeatmapConfigCommon holds the algorithmic parameters used by every processor, and HeatmapPlotConfig holds the display-time parameters used by Exploration Tool when rendering the heatmap. Each processor adds a small number of extra fields specific to its algorithm, documented on the per-processor pages.

Heatmap Config Common#

antenna_array

The antenna layout on the package. Utilized when calculating the steering vectors for the active channels.

az_angle_range / el_angle_range

Angular range (in degrees) covered by the heatmap, given as (min, max) tuples.

num_az_angles / num_el_angles

Number of grid points the corresponding angular range is divided into. Increasing the number of angles makes the heatmap grid finer but also increases the per-frame beamforming processing cost.

Heatmap Plot Config#

The plot config carries display-time parameters that affect how the heatmap is rendered but do not change the underlying heatmap data. Variant-specific plot configs (for example CoherentHeatmapPlotConfig) subclass this base.

normalized_heat_cutoff

Threshold for “heat points”, expressed as a fraction of the maximum heat in the current heatmap. A value of 0.5 discards points with less than 50 % of the maximum.

max_2d_heat

Optional ceiling for the magnitude shown in the heatmap; values above this saturate. Leave as None to use auto-scaling.

log_scale_output

If True, the heatmap values are presented on a log scale. Useful when the dynamic range of the scene is wide.

API reference#

class acconeer.exptool.a2.algo.heatmap.config_common.HeatmapConfigCommon(antenna_array, az_angle_range: Any, el_angle_range: Any, num_az_angles: int, num_el_angles: int)#
antenna_array: AntennaArray#

The antenna layout the data is coming from

az_angle_range: tuple[float, float]#

Min and max az angle

el_angle_range: tuple[float, float]#

Min and max el angle

num_az_angles: int#

The number of angles to divide the az range into

num_el_angles: int#

The number of angles to divide the el range into

validate(config: SessionConfig) → None#

Performs self-validation and validation of its sensor configs

Raises:

ValidationError – If anything is invalid.

to_dict() → dict[str, Any]#
classmethod from_dict(dict_repr: dict[str, Any]) → Self#
abstractmethod classmethod default() → Self#
property az_angles: NDArray[float64]#

Get the az angles defined by this config.

property az_start: float#

Return the smallest az angle in az_angles

property az_end: float#

Return the largest az angle in az_angles

property az_span: float#

Return the difference of largest and smallest az angle in az_angles

property el_angles: NDArray[float64]#

Get the el angles defined by this config.

property el_start: float#

Return the smallest el angle in el_angles

property el_end: float#

Return the largest el angle in el_angles

property el_span: float#

Return the difference of largest and smallest el angles in el_angles

class acconeer.exptool.a2.algo.heatmap.plot_config_common.HeatmapPlotConfig(normalized_heat_cutoff: float = 0.75, max_2d_heat: int | None = None, log_scale_output: bool = False)#
normalized_heat_cutoff: float#

Cutoff for ‘heat points’. A value of 0.5 will discard points that have less than 50% of the max heat

max_2d_heat: int | None#

Max magnitude to display. Magnitudes above this value will be white in the heatmap

log_scale_output: bool#

Whether the values in the heatmap should be plotted in log-scale

classmethod default() → Self#