projector version
This commit is contained in:
@@ -14,6 +14,7 @@ from python_app.models.gui_profile_schema import (
|
||||
GuiPreprocessDialogStateModel,
|
||||
GuiProcessingStateModel,
|
||||
GuiProfileModel,
|
||||
GuiSar3dStateModel,
|
||||
GuiStateModel,
|
||||
GuiSwitchStateModel,
|
||||
)
|
||||
@@ -106,6 +107,7 @@ def gui_profile_from_dict(payload: dict[str, Any]) -> GuiProfileModel:
|
||||
bscan_object = _as_dict(processing_object.get("bscan"), "gui.processing.bscan")
|
||||
gpr_object = _as_dict(processing_object.get("gpr"), "gui.processing.gpr")
|
||||
legacy_gpr_object = _as_dict(processing_object.get("legacy_gpr"), "gui.processing.legacy_gpr")
|
||||
sar3d_object = _as_dict(processing_object.get("sar3d"), "gui.processing.sar3d")
|
||||
root_gpr_object = payload.get("gpr")
|
||||
|
||||
selected_mode = _optional_string(
|
||||
@@ -452,9 +454,136 @@ def gui_profile_from_dict(payload: dict[str, Any]) -> GuiProfileModel:
|
||||
visible_z_min_m=legacy_float("visible_z_min_m", gui.processing.legacy_gpr.visible_z_min_m),
|
||||
visible_z_max_m=legacy_float("visible_z_max_m", gui.processing.legacy_gpr.visible_z_max_m),
|
||||
),
|
||||
sar3d=GuiSar3dStateModel(
|
||||
input_positions=_optional_string(
|
||||
sar3d_object,
|
||||
"input_positions",
|
||||
gui.processing.sar3d.input_positions,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
output_positions=_optional_string(
|
||||
sar3d_object,
|
||||
"output_positions",
|
||||
gui.processing.sar3d.output_positions,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
min_depth_m=_optional_float(
|
||||
sar3d_object,
|
||||
"min_depth_m",
|
||||
gui.processing.sar3d.min_depth_m,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
max_depth_m=_optional_float(
|
||||
sar3d_object,
|
||||
"max_depth_m",
|
||||
gui.processing.sar3d.max_depth_m,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
start_freq_mhz=_optional_float(
|
||||
sar3d_object,
|
||||
"start_freq_mhz",
|
||||
gui.processing.sar3d.start_freq_mhz,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
stop_freq_mhz=_optional_float(
|
||||
sar3d_object,
|
||||
"stop_freq_mhz",
|
||||
gui.processing.sar3d.stop_freq_mhz,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
speed_m_s=_optional_float(
|
||||
sar3d_object,
|
||||
"speed_m_s",
|
||||
gui.processing.sar3d.speed_m_s,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
ignore_socket_speed_enabled=_optional_bool(
|
||||
sar3d_object,
|
||||
"ignore_socket_speed_enabled",
|
||||
gui.processing.sar3d.ignore_socket_speed_enabled,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
look_angle_deg=_optional_float(
|
||||
sar3d_object,
|
||||
"look_angle_deg",
|
||||
gui.processing.sar3d.look_angle_deg,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
direction_sign=_optional_float(
|
||||
sar3d_object,
|
||||
"direction_sign",
|
||||
gui.processing.sar3d.direction_sign,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
apply_freq_phase_correction=_optional_bool(
|
||||
sar3d_object,
|
||||
"apply_freq_phase_correction",
|
||||
gui.processing.sar3d.apply_freq_phase_correction,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
frame_radius=_optional_int(
|
||||
sar3d_object,
|
||||
"frame_radius",
|
||||
gui.processing.sar3d.frame_radius,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
edge_frame_weight=_optional_float(
|
||||
sar3d_object,
|
||||
"edge_frame_weight",
|
||||
gui.processing.sar3d.edge_frame_weight,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
pitch_deg=_optional_float(
|
||||
sar3d_object,
|
||||
"pitch_deg",
|
||||
gui.processing.sar3d.pitch_deg,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
center_depth_m=_optional_float(
|
||||
sar3d_object,
|
||||
"center_depth_m",
|
||||
gui.processing.sar3d.center_depth_m,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
half_width_x_m=_optional_float(
|
||||
sar3d_object,
|
||||
"half_width_x_m",
|
||||
gui.processing.sar3d.half_width_x_m,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
half_width_y_m=_optional_float(
|
||||
sar3d_object,
|
||||
"half_width_y_m",
|
||||
gui.processing.sar3d.half_width_y_m,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
half_width_z_m=_optional_float(
|
||||
sar3d_object,
|
||||
"half_width_z_m",
|
||||
gui.processing.sar3d.half_width_z_m,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
grid_nx=_optional_int(sar3d_object, "grid_nx", gui.processing.sar3d.grid_nx, "gui.processing.sar3d"),
|
||||
grid_ny=_optional_int(sar3d_object, "grid_ny", gui.processing.sar3d.grid_ny, "gui.processing.sar3d"),
|
||||
grid_nz=_optional_int(sar3d_object, "grid_nz", gui.processing.sar3d.grid_nz, "gui.processing.sar3d"),
|
||||
use_compensation=_optional_bool(
|
||||
sar3d_object,
|
||||
"use_compensation",
|
||||
gui.processing.sar3d.use_compensation,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
normalize_pairs=_optional_bool(
|
||||
sar3d_object,
|
||||
"normalize_pairs",
|
||||
gui.processing.sar3d.normalize_pairs,
|
||||
"gui.processing.sar3d",
|
||||
),
|
||||
),
|
||||
)
|
||||
if gui.processing.selected_mode not in {"pass_through", "bscan", "gpr", "legacy_gpr"}:
|
||||
raise ValueError("gui.processing.selected_mode must be one of: pass_through, bscan, gpr, legacy_gpr")
|
||||
if gui.processing.selected_mode not in {"pass_through", "bscan", "gpr", "legacy_gpr", "sar3d"}:
|
||||
raise ValueError(
|
||||
"gui.processing.selected_mode must be one of: pass_through, bscan, gpr, legacy_gpr, sar3d"
|
||||
)
|
||||
if gui.processing.bscan.axis not in {"abs", "real", "phase"}:
|
||||
raise ValueError("gui.processing.bscan.axis must be one of: abs, real, phase")
|
||||
if gui.processing.gpr.render_mode not in {"heatmap", "objects_only"}:
|
||||
@@ -489,6 +618,12 @@ def gui_profile_from_dict(payload: dict[str, Any]) -> GuiProfileModel:
|
||||
raise ValueError("gui.processing.legacy_gpr.snr_comp_max must be >= 0")
|
||||
if gui.processing.legacy_gpr.min_visible_pair_count < 1:
|
||||
raise ValueError("gui.processing.legacy_gpr.min_visible_pair_count must be >= 1")
|
||||
if gui.processing.sar3d.frame_radius < 0:
|
||||
raise ValueError("gui.processing.sar3d.frame_radius must be >= 0")
|
||||
if not 0.0 <= gui.processing.sar3d.edge_frame_weight <= 1.0:
|
||||
raise ValueError("gui.processing.sar3d.edge_frame_weight must be within [0, 1]")
|
||||
if min(gui.processing.sar3d.grid_nx, gui.processing.sar3d.grid_ny, gui.processing.sar3d.grid_nz) < 2:
|
||||
raise ValueError("gui.processing.sar3d.grid_nx/ny/nz must each be >= 2")
|
||||
|
||||
data_actions_object = _as_dict(gui_object.get("data_actions"), "gui.data_actions")
|
||||
gui.data_actions = GuiDataActionsStateModel(
|
||||
@@ -640,6 +775,31 @@ def gui_profile_to_dict(model: GuiProfileModel) -> dict[str, Any]:
|
||||
"visible_z_min_m": gui.processing.legacy_gpr.visible_z_min_m,
|
||||
"visible_z_max_m": gui.processing.legacy_gpr.visible_z_max_m,
|
||||
},
|
||||
"sar3d": {
|
||||
"input_positions": gui.processing.sar3d.input_positions,
|
||||
"output_positions": gui.processing.sar3d.output_positions,
|
||||
"min_depth_m": gui.processing.sar3d.min_depth_m,
|
||||
"max_depth_m": gui.processing.sar3d.max_depth_m,
|
||||
"start_freq_mhz": gui.processing.sar3d.start_freq_mhz,
|
||||
"stop_freq_mhz": gui.processing.sar3d.stop_freq_mhz,
|
||||
"speed_m_s": gui.processing.sar3d.speed_m_s,
|
||||
"ignore_socket_speed_enabled": gui.processing.sar3d.ignore_socket_speed_enabled,
|
||||
"look_angle_deg": gui.processing.sar3d.look_angle_deg,
|
||||
"direction_sign": gui.processing.sar3d.direction_sign,
|
||||
"apply_freq_phase_correction": gui.processing.sar3d.apply_freq_phase_correction,
|
||||
"frame_radius": gui.processing.sar3d.frame_radius,
|
||||
"edge_frame_weight": gui.processing.sar3d.edge_frame_weight,
|
||||
"pitch_deg": gui.processing.sar3d.pitch_deg,
|
||||
"center_depth_m": gui.processing.sar3d.center_depth_m,
|
||||
"half_width_x_m": gui.processing.sar3d.half_width_x_m,
|
||||
"half_width_y_m": gui.processing.sar3d.half_width_y_m,
|
||||
"half_width_z_m": gui.processing.sar3d.half_width_z_m,
|
||||
"grid_nx": gui.processing.sar3d.grid_nx,
|
||||
"grid_ny": gui.processing.sar3d.grid_ny,
|
||||
"grid_nz": gui.processing.sar3d.grid_nz,
|
||||
"use_compensation": gui.processing.sar3d.use_compensation,
|
||||
"normalize_pairs": gui.processing.sar3d.normalize_pairs,
|
||||
},
|
||||
},
|
||||
"data_actions": {
|
||||
"save_count": gui.data_actions.save_count,
|
||||
|
||||
Reference in New Issue
Block a user