sar3d: python plumbing for the new parameters and real replay timing
- replay_raw_producer carries the RECORDED per-trace capture windows from each snapshot's meta.json (re-anchored by the same shift as the frame time) instead of one synthetic window for all traces — without this the segmented timing model degenerates in replay; - GUI/profile/orchestration swap the removed window knobs (center_depth, half_width_*, grid_n*) for the notebook parameters (ground depth, pitch override, voxel pitch, Y range, X margin, norm edge margin, smooth sigma, comp power, tx per segment). Headless replay smoke on the 20260922_mine_fast_true dataset passes: 51 sar3d result collections, transparent preprocessor. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -72,19 +72,31 @@ class ProcessingLiveConfig:
|
||||
gpr_visible_x_max_m: float = 2.0
|
||||
gpr_visible_z_min_m: float = 0.0
|
||||
gpr_visible_z_max_m: float = 14.0
|
||||
# 3D SAR (sar3d processor) parameters; defaults mirror VNA_AlGo gpr_core.
|
||||
# The frequency band, depth gate, antenna selection and motion parameters
|
||||
# are shared with the gpr_* fields above.
|
||||
sar3d_frame_radius: int = 6
|
||||
sar3d_edge_frame_weight: float = 0.75
|
||||
sar3d_pitch_deg: float = 6.0
|
||||
sar3d_center_depth_m: float = 5.6
|
||||
sar3d_half_width_x_m: float = 1.8
|
||||
sar3d_half_width_y_m: float = 1.0
|
||||
sar3d_half_width_z_m: float = 1.8
|
||||
sar3d_grid_nx: int = 150
|
||||
sar3d_grid_ny: int = 120
|
||||
sar3d_grid_nz: int = 160
|
||||
# 3D SAR (sar3d processor) parameters; defaults mirror the reference
|
||||
# notebook Multi_antenna_3D_clean_v1.ipynb. The frequency band, depth gate,
|
||||
# antenna selection and motion parameters are shared with the gpr_* fields.
|
||||
sar3d_frame_radius: int = 0
|
||||
sar3d_edge_frame_weight: float = 0.8
|
||||
# Frame pitch override; disabled -> the pitch follows gpr_look_angle_deg.
|
||||
sar3d_pitch_override_enabled: bool = False
|
||||
sar3d_pitch_deg: float = 17.5
|
||||
# Height of the lower antenna row above the ground (scene Y=0 = ground).
|
||||
sar3d_ground_depth_m: float = 1.25
|
||||
# Full-region grid: X spans the antennas +- margin, Y is height above the
|
||||
# ground, Z covers the radar depth gate over the Y range.
|
||||
sar3d_x_margin_m: float = 2.0
|
||||
sar3d_y_min_m: float = -0.5
|
||||
sar3d_y_max_m: float = 2.0
|
||||
sar3d_voxel_x_m: float = 0.025
|
||||
sar3d_voxel_y_m: float = 0.02
|
||||
sar3d_voxel_z_m: float = 0.02
|
||||
# Volume finalization: Y-edge margin excluded from normalization, Gaussian
|
||||
# smoothing sigma over (Z, X) planes.
|
||||
sar3d_norm_edge_margin_m: float = 0.3
|
||||
sar3d_smooth_sigma: float = 1.5
|
||||
sar3d_comp_range_power: float = 0.3
|
||||
# Fallback frame segmentation when per-trace capture stamps are absent.
|
||||
sar3d_tx_per_segment: int = 2
|
||||
sar3d_use_compensation: bool = True
|
||||
sar3d_normalize_pairs: bool = True
|
||||
# Bottom-view projection angle around the vertical Y axis, degrees:
|
||||
@@ -156,14 +168,19 @@ class ProcessingLiveConfig:
|
||||
"gpr_visible_z_max_m": float(self.gpr_visible_z_max_m),
|
||||
"sar3d_frame_radius": int(self.sar3d_frame_radius),
|
||||
"sar3d_edge_frame_weight": float(self.sar3d_edge_frame_weight),
|
||||
"sar3d_pitch_override_enabled": bool(self.sar3d_pitch_override_enabled),
|
||||
"sar3d_pitch_deg": float(self.sar3d_pitch_deg),
|
||||
"sar3d_center_depth_m": float(self.sar3d_center_depth_m),
|
||||
"sar3d_half_width_x_m": float(self.sar3d_half_width_x_m),
|
||||
"sar3d_half_width_y_m": float(self.sar3d_half_width_y_m),
|
||||
"sar3d_half_width_z_m": float(self.sar3d_half_width_z_m),
|
||||
"sar3d_grid_nx": int(self.sar3d_grid_nx),
|
||||
"sar3d_grid_ny": int(self.sar3d_grid_ny),
|
||||
"sar3d_grid_nz": int(self.sar3d_grid_nz),
|
||||
"sar3d_ground_depth_m": float(self.sar3d_ground_depth_m),
|
||||
"sar3d_x_margin_m": float(self.sar3d_x_margin_m),
|
||||
"sar3d_y_min_m": float(self.sar3d_y_min_m),
|
||||
"sar3d_y_max_m": float(self.sar3d_y_max_m),
|
||||
"sar3d_voxel_x_m": float(self.sar3d_voxel_x_m),
|
||||
"sar3d_voxel_y_m": float(self.sar3d_voxel_y_m),
|
||||
"sar3d_voxel_z_m": float(self.sar3d_voxel_z_m),
|
||||
"sar3d_norm_edge_margin_m": float(self.sar3d_norm_edge_margin_m),
|
||||
"sar3d_smooth_sigma": float(self.sar3d_smooth_sigma),
|
||||
"sar3d_comp_range_power": float(self.sar3d_comp_range_power),
|
||||
"sar3d_tx_per_segment": int(self.sar3d_tx_per_segment),
|
||||
"sar3d_use_compensation": bool(self.sar3d_use_compensation),
|
||||
"sar3d_normalize_pairs": bool(self.sar3d_normalize_pairs),
|
||||
"sar3d_bottom_view_deg": float(self.sar3d_bottom_view_deg),
|
||||
|
||||
Reference in New Issue
Block a user