feat: 各步骤产物改为原子化落盘,复用前校验 .done 完成标记

跳过条件从 Path.exists() 改为 is_file_complete(),产物成功落盘后统一补 mark_file_complete()。涉及 step1 水域掩膜、step3 去耀斑、SHP 栅格化缓存三处快路径。

step3 去耀斑新增清理分支:无 .done 标记的旧文件一律视为半成品,先删除再重跑(Kutser/Goodman/Hedley/SUGAR 四种方法一致)。

模型落盘改为 atomic_filepath:modeling_batch 批量建模与 automl_trainer 的 AutoML 结果均先写 .__wip 再原子替换,避免中断产生半个 joblib 文件。
This commit is contained in:
duxin
2026-09-15 10:34:34 +08:00
parent 75c74c644d
commit f97527598d
5 changed files with 70 additions and 19 deletions

View File

@ -824,7 +824,9 @@ class WaterQualityModelingBatch:
'metadata': metadata
}
joblib.dump(save_data, filepath)
from src.utils.util import atomic_filepath
with atomic_filepath(str(filepath)) as _tmp:
joblib.dump(save_data, _tmp)
print(f"模型已保存: {filepath}")
# ═══════════════════════════════════════════════════════════