feat(ui): add sea_env.modeling parameter input panel for web algorithms
这个提交包含在:
@@ -372,6 +372,35 @@ def show_scheduling():
|
||||
with col2:
|
||||
st.subheader("2. 数据与校验")
|
||||
sample_rate = st.number_input("采样率 (Hz)", min_value=1.0, value=1000.0, step=100.0)
|
||||
|
||||
# 检测是否有 web 类型算法需要建模参数
|
||||
has_web_algo = any(a.get("type") == "web" for a in st.session_state.pipeline)
|
||||
|
||||
# 声学建模参数面板(仅当链路中包含 web 算法时展开)
|
||||
with st.expander("🌊 声学建模参数 (Web 算法)", expanded=has_web_algo):
|
||||
st.caption("以下参数用于 Bellhop/Kraken/RAM 等远程声学建模服务")
|
||||
|
||||
col_freq, col_time = st.columns(2)
|
||||
with col_freq:
|
||||
modeling_freq = st.number_input("建模频率 (Hz)", min_value=1.0, value=100.0, step=10.0)
|
||||
with col_time:
|
||||
time_types = ["Annual", "January", "February", "March", "April", "May", "June",
|
||||
"July", "August", "September", "October", "November", "December",
|
||||
"Winter", "Spring", "Summer", "Autumn"]
|
||||
modeling_time_type = st.selectbox("时间段", time_types)
|
||||
|
||||
col_src, col_rcv = st.columns(2)
|
||||
with col_src:
|
||||
st.markdown("**声源位置**")
|
||||
source_lat = st.number_input("纬度 (°)", value=19.0, step=0.1, key="src_lat")
|
||||
source_lon = st.number_input("经度 (°)", value=115.0, step=0.1, key="src_lon")
|
||||
source_depth = st.number_input("深度 (m)", min_value=0, value=50, step=10, key="src_depth")
|
||||
with col_rcv:
|
||||
st.markdown("**接收位置**")
|
||||
receive_lat = st.number_input("纬度 (°)", value=20.0, step=0.1, key="rcv_lat")
|
||||
receive_lon = st.number_input("经度 (°)", value=116.0, step=0.1, key="rcv_lon")
|
||||
receive_depth = st.number_input("深度 (m)", min_value=0, value=3000, step=100, key="rcv_depth")
|
||||
|
||||
uploaded_file = st.file_uploader("上传待处理数据 (.npy)", type=["npy"])
|
||||
auto_apply_template = st.checkbox("自动应用同名接口模板(若存在)", value=True)
|
||||
|
||||
@@ -383,7 +412,19 @@ def show_scheduling():
|
||||
sample_rate_unit="Hz",
|
||||
channel_layout="time_first",
|
||||
coordinate_system="WGS84",
|
||||
collect_time=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
collect_time=datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
||||
sea_env={
|
||||
"modeling": {
|
||||
"freq_hz": float(modeling_freq),
|
||||
"source_depth_m": int(source_depth),
|
||||
"receive_depth_m": int(receive_depth),
|
||||
"source_lat": float(source_lat),
|
||||
"source_lon": float(source_lon),
|
||||
"receive_lat": float(receive_lat),
|
||||
"receive_lon": float(receive_lon),
|
||||
"time_type": modeling_time_type,
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
# 自动映射 (Phase 2 简化版:直接使用元数据中的映射)
|
||||
|
||||
在新工单中引用
屏蔽一个用户