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 pandas as pd
|
||||||
import yaml
|
import yaml
|
||||||
|
import plotly.graph_objects as go
|
||||||
|
|
||||||
from src.gasflux import background,plotting,processing,reporting,interpolation,pre_processing,gas
|
from src.gasflux import background,plotting,processing,reporting,interpolation,pre_processing,gas
|
||||||
|
|
||||||
@ -123,9 +124,22 @@ class InSituSensorStrategy(SensorStrategy):
|
|||||||
def process(self):
|
def process(self):
|
||||||
logger.info("Processing in-situ (point) data")
|
logger.info("Processing in-situ (point) data")
|
||||||
for gas in self.data_processor.gases:
|
for gas in self.data_processor.gases:
|
||||||
self.data_processor.figs["scatter_3d"][gas] = None
|
# Create 3D scatter plot of flight path with gas concentration
|
||||||
self.data_processor.figs["windrose"] = None
|
try:
|
||||||
self.data_processor.figs["wind_timeseries"] = None
|
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):
|
class SpatialProcessingStrategy(ABC):
|
||||||
|
|||||||
Reference in New Issue
Block a user