Skip to content

Commit b3a339f

Browse files
jman4162claude
andcommitted
Add advanced radar engineering models: clutter, propagation, and CFAR
Implement three new radar submodules for realistic system-level trade studies: - clutter.py: Sea (GIT model), ground (Nathanson), and rain volume clutter models with SCR/SCNR calculations and resolution cell geometry - propagation.py: Atmospheric attenuation (ITU-R), rain attenuation (P.838), radar horizon with 4/3 Earth model, and multipath fading - cfar.py: CA-CFAR, OS-CFAR, GO-CFAR, SO-CFAR threshold calculations with associated detection loss models Extended RadarDetectionScenario with clutter, propagation, and CFAR parameters. Integrated all models into RadarModel.evaluate() returning new metrics. Added 42 new unit tests (76 total radar tests, 263 total package tests pass). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent cc9af91 commit b3a339f

8 files changed

Lines changed: 1826 additions & 6 deletions

File tree

src/phased_array_systems/models/radar/__init__.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
"""Radar detection models."""
22

3+
from phased_array_systems.models.radar.cfar import (
4+
ca_cfar_threshold_factor,
5+
cfar_loss_db,
6+
cfar_threshold_factor,
7+
compute_pd_with_cfar,
8+
go_cfar_threshold_factor,
9+
optimal_reference_cells,
10+
os_cfar_threshold_factor,
11+
so_cfar_threshold_factor,
12+
)
13+
from phased_array_systems.models.radar.clutter import (
14+
compute_resolution_cell_area,
15+
compute_resolution_volume,
16+
compute_scnr,
17+
compute_scr,
18+
ground_clutter_rcs,
19+
ground_clutter_sigma0,
20+
rain_clutter_rcs,
21+
rain_reflectivity,
22+
sea_clutter_rcs,
23+
sea_clutter_sigma0,
24+
)
325
from phased_array_systems.models.radar.detection import (
426
albersheim_snr,
527
compute_detection_threshold,
@@ -12,14 +34,54 @@
1234
integration_loss,
1335
noncoherent_integration_gain,
1436
)
37+
from phased_array_systems.models.radar.propagation import (
38+
atmospheric_attenuation_db_per_km,
39+
atmospheric_loss_db,
40+
grazing_angle_deg,
41+
multipath_fading_factor,
42+
radar_horizon_km,
43+
rain_attenuation_db,
44+
rain_attenuation_rate,
45+
)
1546

1647
__all__ = [
48+
# Main model
1749
"RadarModel",
50+
# Detection
1851
"compute_detection_threshold",
1952
"compute_pd_from_snr",
2053
"compute_snr_for_pd",
2154
"albersheim_snr",
55+
# Integration
2256
"coherent_integration_gain",
2357
"noncoherent_integration_gain",
2458
"integration_loss",
59+
# Clutter
60+
"sea_clutter_sigma0",
61+
"sea_clutter_rcs",
62+
"ground_clutter_sigma0",
63+
"ground_clutter_rcs",
64+
"rain_reflectivity",
65+
"rain_clutter_rcs",
66+
"compute_resolution_cell_area",
67+
"compute_resolution_volume",
68+
"compute_scr",
69+
"compute_scnr",
70+
# Propagation
71+
"atmospheric_attenuation_db_per_km",
72+
"atmospheric_loss_db",
73+
"rain_attenuation_rate",
74+
"rain_attenuation_db",
75+
"radar_horizon_km",
76+
"grazing_angle_deg",
77+
"multipath_fading_factor",
78+
# CFAR
79+
"ca_cfar_threshold_factor",
80+
"os_cfar_threshold_factor",
81+
"go_cfar_threshold_factor",
82+
"so_cfar_threshold_factor",
83+
"cfar_threshold_factor",
84+
"cfar_loss_db",
85+
"optimal_reference_cells",
86+
"compute_pd_with_cfar",
2587
]

0 commit comments

Comments
 (0)