Detection Probability Evaluator¶
- class DetectionProbEvaluator(radar, confidence=1.0, tolerance=0.0, min_num_samples=1024, plot_scale='log', tick_format=ValueType.LIN, plot_surface=True)[source]¶
Bases:
ScalarEvaluator,SerializableEstimates the probability of detection for a given radar detector.
Assumes a successful detection if the
Radar'sRadarReceptioncontains a non-empty point cloud. This is the case if the configuredRadarDetectormade a positive decision for any bin within the processedRadarCube.A minimal example within the context of a
Simulationevaluating the probability of detection for a single radar target illuminated by anFMCWradar would be:1from hermespy.radar import Radar, FMCW, ThresholdDetector, DetectionProbEvaluator 2from hermespy.simulation import Simulation 3from hermespy.channel import SingleTargetRadarChannel 4 5# Create a new simulated scenario featuring a single device 6simulation = Simulation() 7device = simulation.new_device(carrier_frequency=60e9) 8 9# Configure the device to transmit and reveive radar waveforms 10radar = Radar(waveform=FMCW()) 11radar.detector = ThresholdDetector(.02, normalize=True) 12device.add_dsp(radar) 13 14# Create a new radar channel with a single illuminated target 15target = SingleTargetRadarChannel(1, 1., attenuate=True) 16simulation.scenario.set_channel(device, device, target) 17 18# Create a new detection probability evaluator 19simulation.add_evaluator(DetectionProbEvaluator(radar)) 20 21# Sweep over the target's RCS during the simulation 22simulation.new_dimension('radar_cross_section', [1, .8, .6, .4, .2, .1, 0], target) 23 24# Run the simulation 25result = simulation.run()
- Parameters:
radar (
Radar) – Radar detector to be evaluated.confidence (
float) – Required confidence level for the given tolerance between zero and one.tolerance (
float) – Acceptable non-negative bound around the mean value of the estimated scalar performance indicator.min_num_samples (
int) – Minimum number of samples required to compute the confidence bound.plot_scale (
str) – Scale of the plot. Can be'linear'or'log'.tick_format (
ValueType) – Tick format of the plot.plot_surface (
bool) – Enable surface plotting for two-dimensional grids. Enabled by default.
- classmethod Deserialize(process)[source]¶
Deserialize an object’s state.
Objects cannot be deserialized directly, instead a
Factorymust be instructed to carry out the deserialization process.- Parameters:
process (
DeserializationProcess) – The current stage of the deserialization process. This object is generated by theFactoryand provides an interface to deserialization methods supporting multiple backends.- Return type:
- Returns:
The deserialized object.
- evaluate()[source]¶
Evaluate the state of an investigated object.
Implements the process of extracting an arbitrary performance indicator, represented by the returned
Artifact\(X_m\).Returns: Artifact \(X_m\) resulting from the evaluation.
- Return type:
- serialize(process)[source]¶
Serialize this object’s state.
Objects cannot be serialized directly, instead a
Factorymust be instructed to carry out the serialization process.- Parameters:
process (
SerializationProcess) – The current stage of the serialization process. This object is generated by theFactoryand provides an interface to serialization methods supporting multiple backends.- Return type:
- class DetectionProbabilityEvaluation(evaluation)[source]¶
Bases:
EvaluationTemplate[bool,ScatterVisualization]Evaluation of the probability of detection for a radar detector.
Represents a boolean indicator of whether a target was detected or not. Generated by the
DetectionProbEvaluator’sevaluate()method.
- class DetectionProbArtifact(artifact)[source]¶
Bases:
ArtifactTemplate[bool]Artifacto of the probability of detection for a radar detector.
Represents a boolean indicator of whether a target was detected or not. Generated by the
DetectionProbabilityEvaluation’sartifact()method.- Parameters:
artifact (
TypeVar(FAT, bound=SupportsFloat)) – Artifact value.