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:
@@ -8,6 +8,7 @@ from python_app.models.gui_profile_model import (
|
||||
GuiPassThroughStateModel,
|
||||
GuiProcessingStateModel,
|
||||
GuiProfileModel,
|
||||
GuiSar3dStateModel,
|
||||
GuiStateModel,
|
||||
)
|
||||
|
||||
@@ -53,6 +54,31 @@ class GuiProfileCodecTest(unittest.TestCase):
|
||||
twice = GuiProfileModel.from_dict(once).to_dict()
|
||||
self.assertEqual(once["gui"], twice["gui"])
|
||||
|
||||
def test_sar3d_section_round_trips(self) -> None:
|
||||
sar3d = GuiSar3dStateModel(
|
||||
input_positions="0,2",
|
||||
output_positions="1,3",
|
||||
min_depth_m=2.5,
|
||||
max_depth_m=9.0,
|
||||
start_freq_mhz=2000.0,
|
||||
stop_freq_mhz=5500.0,
|
||||
speed_m_s=1.42,
|
||||
ignore_socket_speed_enabled=True,
|
||||
look_angle_deg=6.5,
|
||||
frame_radius=3,
|
||||
voxel_m=0.035,
|
||||
bp_ground_depth_m=1.1,
|
||||
comp_range_power=0.5,
|
||||
use_compensation=False,
|
||||
normalize_each_frame=False,
|
||||
)
|
||||
profile = GuiProfileModel(gui=GuiStateModel(processing=GuiProcessingStateModel(sar3d=sar3d)))
|
||||
|
||||
decoded = GuiProfileModel.from_dict(profile.to_dict())
|
||||
|
||||
assert decoded.gui is not None
|
||||
self.assertEqual(decoded.gui.processing.sar3d, sar3d)
|
||||
|
||||
def test_missing_gui_section_yields_none(self) -> None:
|
||||
self.assertIsNone(GuiProfileModel.from_dict({}).gui)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user