SAR Radar
SAR system parameters and target models.
Defines :class:SarRadar (SAR platform and system parameters for stripmap
and spotlight modes) and :class:SarTarget (a point scatterer in 3-D space).
SarRadar
dataclass
SAR system parameters (stripmap and spotlight modes).
All gain and loss fields are linear power ratios (not dB).
Derived quantities (n_pulses, wavelength, pulse_spacing)
are computed automatically in __post_init__.
For stripmap mode, leave scene_center as None.
Optionally set beamwidth to apply broadside beam-pattern
weighting (body-fixed antenna). For spotlight mode, set both
scene_center and beamwidth to steer the beam toward a
fixed scene centre.
Attributes:
| Name | Type | Description |
|---|---|---|
fcar |
float
|
Carrier frequency [Hz]. |
tx_power |
float
|
Transmit power [W]. |
tx_gain |
float
|
Transmit antenna gain [linear]. |
rx_gain |
float
|
Receive antenna gain [linear]. |
op_temp |
float
|
Receiver operating temperature [K]. |
sample_rate |
float
|
ADC sampling rate [Hz]. |
noise_factor |
float
|
Receiver noise factor [linear]. |
total_losses |
float
|
Total two-way system losses [linear]. |
prf |
float
|
Pulse repetition frequency [Hz]. |
platform_velocity |
float
|
Platform ground speed along the flight path [m/s]. |
aperture_length |
float
|
Synthetic aperture length [m]. |
platform_altitude |
float
|
Platform altitude above the scene [m]. |
scene_center |
list[float] | None
|
Scene centre |
beamwidth |
float | None
|
One-way 3-dB antenna beamwidth [rad]. In stripmap
mode ( |
n_pulses |
int
|
Number of pulses in the synthetic aperture, computed as
|
wavelength |
float
|
Carrier wavelength [m], derived from |
pulse_spacing |
float
|
Along-track distance between pulses [m], derived from
|
Source code in src/rad_lab/sar_radar.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | |
aperture_length
instance-attribute
beamwidth = None
class-attribute
instance-attribute
fcar
instance-attribute
n_pulses = field(init=False)
class-attribute
instance-attribute
noise_factor
instance-attribute
op_temp
instance-attribute
platform_altitude = 0.0
class-attribute
instance-attribute
platform_velocity
instance-attribute
prf
instance-attribute
pulse_spacing = field(init=False)
class-attribute
instance-attribute
rx_gain
instance-attribute
sample_rate
instance-attribute
scene_center = None
class-attribute
instance-attribute
total_losses
instance-attribute
tx_gain
instance-attribute
tx_power
instance-attribute
wavelength = field(init=False)
class-attribute
instance-attribute
__init__(fcar, tx_power, tx_gain, rx_gain, op_temp, sample_rate, noise_factor, total_losses, prf, platform_velocity, aperture_length, platform_altitude=0.0, scene_center=None, beamwidth=None)
__post_init__()
Compute derived quantities from the input parameters.
Source code in src/rad_lab/sar_radar.py
70 71 72 73 74 75 76 | |
SarTarget
dataclass
A point scatterer in a SAR scene.
Targets are defined by their 3-D position in a scene-centred coordinate system where x is along-track (flight direction), y is cross-track (range direction), and z is altitude.
Attributes:
| Name | Type | Description |
|---|---|---|
position |
list[float]
|
3-D Cartesian coordinates |
rcs |
float
|
Radar cross section [m^2]. |
Source code in src/rad_lab/sar_radar.py
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | |
position
instance-attribute
rcs
instance-attribute
__init__(position, rcs)
cross_range_resolution(wavelength, slant_range, aperture_length)
Computes the cross-range (azimuth) resolution for a stripmap SAR.
Resolution improves with a longer aperture and degrades at longer range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
wavelength
|
float
|
Carrier wavelength [m]. |
required |
slant_range
|
float
|
Slant range to the target [m]. |
required |
aperture_length
|
float
|
Synthetic aperture length [m]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Cross-range 3-dB resolution [m]. |
Source code in src/rad_lab/sar_radar.py
97 98 99 100 101 102 103 104 105 106 107 108 109 110 | |
spotlight_cross_range_resolution(wavelength, delta_theta)
Computes the cross-range resolution for a spotlight SAR.
In spotlight mode the antenna steers to keep the scene illuminated, so resolution depends on the total angular extent of the synthetic aperture rather than on the physical aperture length.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
wavelength
|
float
|
Carrier wavelength [m]. |
required |
delta_theta
|
float
|
Total angle subtended by the synthetic aperture [rad]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Cross-range 3-dB resolution [m]. |
Source code in src/rad_lab/sar_radar.py
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |