feat(processing_pipelines.py): 启用 3D散点/风玫瑰/风速时序图表创建

两处修改:

1. InSituSensorStrategy.process():
   - 原代码: scatter_3d[gas]=None, windrose=None, wind_timeseries=None
   - 修复: 调用 plotting.scatter_3d()/windrose()/time_series() 创建实际图表,
     每个调用独立 try/except 保护,失败时回退至 blank_figure()

2. 模块导入:
   - 新增 import plotly.graph_objects as go
     供 Curtain/Spiral 空间策略中的 fig.add_trace(go.Scatter3d(...)) 使用
     (该代码此前存在但从未执行,因为 fig 始终为 None)

影响范围:HTML 报告中 3D 飞行轨迹图、风玫瑰图、风速时序图从空白变为正常显示
This commit is contained in:
DXC
2026-07-10 14:49:22 +08:00
parent 5609a8d708
commit 4ec46208dd

View File

@ -5,6 +5,7 @@ from scipy import stats
import pandas as pd
import yaml
import plotly.graph_objects as go
from src.gasflux import background,plotting,processing,reporting,interpolation,pre_processing,gas
@ -123,9 +124,22 @@ class InSituSensorStrategy(SensorStrategy):
def process(self):
logger.info("Processing in-situ (point) data")
for gas in self.data_processor.gases:
self.data_processor.figs["scatter_3d"][gas] = None
self.data_processor.figs["windrose"] = None
self.data_processor.figs["wind_timeseries"] = None
# Create 3D scatter plot of flight path with gas concentration
try:
self.data_processor.figs["scatter_3d"][gas] = plotting.scatter_3d(
self.data_processor.df, gas
)
except Exception:
self.data_processor.figs["scatter_3d"][gas] = plotting.blank_figure()
# Create wind rose and time series plots
try:
self.data_processor.figs["windrose"] = plotting.windrose(self.data_processor.df)
except Exception:
self.data_processor.figs["windrose"] = plotting.blank_figure()
try:
self.data_processor.figs["wind_timeseries"] = plotting.time_series(self.data_processor.df)
except Exception:
self.data_processor.figs["wind_timeseries"] = plotting.blank_figure()
class SpatialProcessingStrategy(ABC):