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:
@ -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):
|
||||
|
||||
Reference in New Issue
Block a user