feat(autocal): 完善标定记录检查流程与UV轮廓显示

补齐传感器身份、稳定段检查引导和未完成试验诊断,并保存采集轮廓快照。通过60项相关测试、已有记录读取及代码和文档检查。
This commit is contained in:
ykcheungab
2026-10-11 20:15:04 +08:00
parent 432f45325f
commit d06501d7d5
17 changed files with 719 additions and 141 deletions
+53 -22
View File
@@ -488,6 +488,8 @@
"flow_missing": "No valid displacement for this frame"
},
"overview": {
"capture_in_progress": "In progress",
"saved": "Analysis saved; hover for its location.",
"open_session": "Open calibration session…",
"empty": "Choose the session folder containing session.json to view collected sites, normal response and sensitivity. You can also open current data from Calibration capture.",
"title": "Calibration record overview",
@@ -496,36 +498,64 @@
"sensitivity": "Normal sensitivity",
"import_plan": "Import planned-point CSV…",
"clear_plan": "Clear plan comparison",
"load": "Load saved review…",
"save": "Save new overview and review",
"summary": "Acquired {collected}; planned {planned}; missing {missing}; incomplete attempts {incomplete}; pending review {pending}; reviewed {reviewed}; outside plan {extra}.",
"no_plan": "Without a plan, missing sites cannot be determined. Plan order is separate from acquisition site_id.",
"load": "Load saved analysis…",
"save": "Save analysis results",
"summary": "Collected {collected} / planned {planned}; missing {missing}; with incomplete attempts {incomplete}; unchecked {pending}; checked {reviewed}; extra {extra}.",
"no_plan": "Import a plan to identify missing sites.",
"uncollected": "Not acquired",
"incomplete": "Has incomplete attempts",
"pending": "Pending review",
"reviewed": "Reviewed",
"confirmed": "Confirmed",
"candidate": "Candidate",
"coverage_map": "Red: incomplete attempts; orange: pending; green: reviewed; grey: not acquired",
"pending": "Awaiting check",
"reviewed": "Stable windows checked",
"confirmed": "Checked",
"candidate": "Unchecked",
"coverage_map": "Red: incomplete attempts; amber: unchecked; green: checked; grey: uncollected",
"sensitivity_map": "Confirmed sensitivity: blue→red {low:.4g}→{high:.4g} raw/N<br/>Grey: no confirmed fit",
"details": "Inspect signal / review windows…",
"details": "Check hold windows…",
"trial_filter": "Displayed trial",
"all_trials": "All trials",
"site_fit": "Site loading fit (all eligible trials)",
"response_title": "Normal response: reference force → raw signal",
"selected_fit": "Site exploratory sensitivity {sensitivity} raw/N ({basis}); fit range and trial count are in the table. Physical signal/reference validation is still required.",
"no_windows": "No complete hold windows for this site/trial. Incomplete trials are excluded from fits; raw files are retained.",
"selected_fit": "Sensitivity {sensitivity} raw/N · {basis}. Fit uses all eligible loading windows at this site; range and trial count are in the site tooltip.",
"no_windows": "No eligible complete windows; recorded signal and stop diagnostics remain available.",
"col_order": "Plan order",
"col_site": "Acquired site",
"col_uv": "U / V (px)",
"col_xyz": "Sensor XYZ (mm)",
"col_status": "Status",
"col_status": "Analysis readiness",
"col_trials": "Complete / all trials",
"col_windows": "Confirmed / complete windows",
"col_levels": "Confirmed loading levels (N)",
"col_sensitivity": "Sensitivity (raw/N) / basis",
"col_range": "Fit range (N)",
"col_fit_trials": "Fit trials"
"col_fit_trials": "Fit trials",
"tools": "Plan / saved analysis",
"identity": "Model: {model} SN: {sn} Acquired: {date} Source: {source} Capture: {status}",
"source_video": "Video replay (debug only)",
"source_camera": "Camera",
"timeline": "Time signal / diagnostics",
"response": "Loading / unloading response",
"time_axis": "Time from each trial’s first valid sample (s)",
"reference_axis": "Declared reference (N)",
"timeline_title": "Blue: FN_raw; orange: declared hold reference (not live FT)",
"no_trace": "No readable valid signal; inspect diagnostics below",
"outline_snapshot": "Grey: sensor boundary; blue: colour patch boundary (recorded snapshot)",
"outline_surface_only": "Sensor mapping verified; no recorded colour patch outline is available.",
"outline_unavailable": "Recorded UV outline unavailable; showing sites only.",
"outline_mismatch": "UV outline does not match the recorded mapping; overlay disabled.",
"analysis_reviewed": "Stable windows checked",
"analysis_pending": "Check stable windows",
"analysis_no_analysis": "No eligible windows",
"site_details": "XYZ (mm): {xyz}\nComplete / all attempts: {attempts}\nFit range (N): {range}; contributing trials: {trials}",
"inspect_incomplete": "Inspect incomplete attempt",
"diagnostic": "{trial} · {status} | Valid samples {samples}; invalid / unjoined {invalid}; recording drops {dropped}; largest frame gap {gap} s\nStop reason: {reason}",
"read_errors": "Missing or unreadable: {detail}",
"choose_trial": "Select one trial for integrity, drop and stop diagnostics. All-trial traces use separate time origins.",
"unsaved": "Window or plan changes have not been saved.",
"save_hint": "Confirming stability does not certify calibration accuracy.",
"guide_missing": "1 Check identity → 2 Select site / trial → 3 Check stable windows → 4 Save\nNext: this site has no attempt; choose a collected site or acquire it.",
"guide_incomplete": "1 Check identity → 2 Select site / trial → 3 Check stable windows → 4 Save\nNext: inspect the stop reason and recorded signal. Incomplete attempts are excluded from fitting.",
"guide_check": "1 Check identity → 2 Select site / trial → 3 Check stable windows → 4 Save\nNext: select a trial and Check hold windows; adjust the time interval if needed.",
"guide_save": "1 Check identity → 2 Select site / trial → 3 Check stable windows → 4 Save\nNext: inspect remaining holds or save current analysis."
},
"quality": {
"open": "Repeatability and validation…",
@@ -562,9 +592,9 @@
"col_range_status": "Range/status"
},
"review": {
"load_selection": "Load saved review…",
"confirm_stable": "Reviewed as stable",
"apply_window": "Apply window and recalculate",
"load_selection": "Load saved analysis…",
"confirm_stable": "This interval was checked for stability",
"apply_window": "Confirm interval and recompute",
"start_offset": "Start",
"end_offset": "End",
"verified": "Stability confirmed by operator",
@@ -575,9 +605,9 @@
"trace_title": "Selected hold signal; vertical lines mark the analysis window",
"selection_unsaved": "Window applied; save the analysis to preserve this review.",
"open": "Review calibration data…",
"title": "Exploratory calibration review",
"notice": "Inspect each raw hold signal, adjust the times relative to hold start, confirm stability and apply. Operator review does not prove reference accuracy or synchronisation. Replay is for debugging; fits are exploratory.",
"save": "Save new review",
"title": "Hold window inspection",
"notice": "Select a hold → inspect signal, standard deviation and drift → adjust the interval → confirm stability and recompute → save. Operator confirmation is not accuracy acceptance.",
"save": "Save analysis results",
"no_sites": "No sites in this session",
"candidate": "Candidate window",
"insufficient_samples": "Insufficient valid samples",
@@ -590,7 +620,7 @@
"force_axis": "Manual reference force (N)",
"chart_title": "Hold-window means: loading vs unloading",
"uv_title": "Site sensitivity: blue→red {low:.4g}→{high:.4g} raw/N; grey has no fit",
"issues": "Skipped {count} incomplete trials; complete holds still require stability review.",
"issues": "{count} incomplete attempts excluded from fitting. Inspect raw signals for stability.",
"saved": "Saved new review: {path}",
"col_trial": "Trial",
"col_branch": "Phase",
@@ -599,6 +629,7 @@
"col_mean": "Raw mean",
"col_std": "Raw std",
"col_duration": "Hold (s)",
"col_quality": "Quality"
"col_quality": "Quality",
"col_drift": "Drift (raw/s)"
}
}