sar3d: GPU port of the notebook with four views

The sar3d processor is rewritten as a checked port of Multi_antenna_3D_clean_v1.ipynb:
NVRTC kernels, timing from the trace stamps, notebook parameter names and one cubic
SAR_VOXEL_M. It adds front, side, top and 3D views, drops gpr_cpp and the parity tools,
and the GUI speed now applies only while the socket speed is ignored.
This commit is contained in:
Ayzen
2026-10-02 16:05:22 +03:00
parent 61ef8720e1
commit 45861f4047
50 changed files with 1737 additions and 8144 deletions
-30
View File
@@ -1,30 +0,0 @@
"""Shared mapping for the sar3d bottom-view projection choices.
The bottom plot of the sar3d mode projects the imaged volume along a
horizontal direction rotated around the vertical Y axis: 0° = front view
(X horizontal), 90° = side view (Z horizontal). One shared mapping keeps the
combo box, the live-config build, the profile persistence and the plot labels
consistent.
"""
from __future__ import annotations
SAR3D_BOTTOM_VIEW_CHOICES: tuple[tuple[str, float], ...] = (
("front (0°)", 0.0),
("30°", 30.0),
("60°", 60.0),
("side (90°)", 90.0),
)
def sar3d_bottom_view_deg_from_label(label: str) -> float:
"""Map a bottom-view combo label to its projection angle in degrees."""
for choice_label, degrees in SAR3D_BOTTOM_VIEW_CHOICES:
if choice_label == label:
return degrees
return 0.0
def sar3d_bottom_view_label_from_deg(degrees: float) -> str:
"""Map a projection angle to the nearest bottom-view combo label."""
return min(SAR3D_BOTTOM_VIEW_CHOICES, key=lambda choice: abs(choice[1] - float(degrees)))[0]