fix: formula report reads distribution maps from 12_visualization/distribution_maps/ instead of 11_Thematic_Map

This commit is contained in:
duxin
2026-07-09 14:49:36 +08:00
parent 5fe71917a6
commit a572b52239

View File

@ -947,7 +947,9 @@ class WaterQualityReportGenerator:
from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.text import WD_ALIGN_PARAGRAPH
vis_dir = self.visualization_dir vis_dir = self.visualization_dir
thematic_dir = self.work_dir / "11_Thematic_Map" # 分布图优先从 12_visualization/distribution_maps 找,再回退 11_Thematic_Map
dist_map_dir = vis_dir / "distribution_maps"
thematic_dir = dist_map_dir if dist_map_dir.is_dir() else self.work_dir / "11_Thematic_Map"
csv_dir = self.work_dir / "10_WaterIndex_CSV" csv_dir = self.work_dir / "10_WaterIndex_CSV"
if output_path is None: if output_path is None:
@ -956,10 +958,17 @@ class WaterQualityReportGenerator:
else: else:
output_path = Path(output_path) output_path = Path(output_path)
# 扫描实际数据量,计算进度脉冲数(非数据量本身) # 扫描实际数据量:专题图优先匹配 distribution/rendered 命名
csv_files = sorted(csv_dir.glob("*.csv")) if csv_dir.is_dir() else [] csv_files = sorted(csv_dir.glob("*.csv")) if csv_dir.is_dir() else []
tif_files = (sorted(thematic_dir.glob("*.tif")) + sorted(thematic_dir.glob("*.png")) tif_files = []
) if thematic_dir.is_dir() else [] if thematic_dir.is_dir():
tif_files = (sorted(thematic_dir.glob("*distribution*.png"))
+ sorted(thematic_dir.glob("*rendered*.png"))
+ sorted(thematic_dir.glob("*.tif"))
+ sorted(thematic_dir.glob("*.png")))
# 去重(同名文件可能多次匹配)
seen = set()
tif_files = [f for f in tif_files if f.name not in seen and not seen.add(f.name)]
n_csv = len(csv_files) n_csv = len(csv_files)
n_maps = min(len(tif_files), 20) n_maps = min(len(tif_files), 20)
n_csv_pulses = max(1, n_csv // 10) # 每 10 个 CSV 一次脉冲 n_csv_pulses = max(1, n_csv // 10) # 每 10 个 CSV 一次脉冲