Mega-1.1 全链路路径归一化收尾(18 文件)

This commit is contained in:
DXC
2026-06-15 15:20:50 +08:00
parent a9e77d2ad0
commit 82e0b92af6
18 changed files with 69 additions and 69 deletions

View File

@ -903,7 +903,7 @@ if __name__ == '__main__':
output_path = r"E:\code\WQ\封装\test/yangdian_output.csv" # CSV格式输出文件路径
radius = 5 # 采样半径像素0表示单点采样>0表示半径内平均
flare_path = r"E:\code\WQ\封装\work_dir\2_glint\severe_glint_area.dat" # 耀斑掩膜文件路径可选None表示不使用
flare_path = r"E:\code\WQ\封装\work_dir\2_Glint_Detection\severe_glint_area.dat" # 耀斑掩膜文件路径可选None表示不使用
boundary_path ="D:\BaiduNetdiskDownload\yaobao\water_mask.dat" # 边界掩膜文件路径可选None表示不使用
source_epsg = 4326 # 源坐标系EPSG代码默认为4326 (WGS84地理坐标系)

View File

@ -810,7 +810,7 @@ if __name__ == '__main__':
output_path = r"E:\code\WQ\封装\work_dir\5_training_spectra/yangdian_output.csv" # CSV格式输出文件路径
radius = 5 # 采样半径像素0表示单点采样>0表示半径内平均
flare_path = r"E:\code\WQ\封装\work_dir\2_glint\severe_glint_area.dat" # 耀斑掩膜文件路径可选None表示不使用
flare_path = r"E:\code\WQ\封装\work_dir\2_Glint_Detection\severe_glint_area.dat" # 耀斑掩膜文件路径可选None表示不使用
boundary_path = r"D:\BaiduNetdiskDownload\yaobao\water_mask.dat" # 边界掩膜文件路径可选None表示不使用
source_epsg = 4326 # 源坐标系EPSG代码默认为4326 (WGS84地理坐标系)

View File

@ -83,7 +83,7 @@ PIPELINE_STEPS: List[StepSpec] = [
step_id="step2", method_name="step2_find_glint_area",
requires=["img_path", "water_mask_path"], produces=["glint_mask_path"],
required_input_files=["img_path", "water_mask_path"],
output_file="{work_dir}/2_glint/glint_mask.dat",
output_file="{work_dir}/2_Glint_Detection/severe_glint_area.dat",
description="耀斑区域检测",
),
StepSpec(

View File

@ -3,9 +3,9 @@
"""
自定义回归预测模块
该模块根据9_Custom_Regression_Modeling文件夹中的CSV信息批量预测水质指数。
该模块根据13_Custom_Regression文件夹中的CSV信息批量预测水质指数。
处理流程:
1. 读取9_Custom_Regression_Modeling文件夹中的CSV文件
1. 读取13_Custom_Regression文件夹中的CSV文件
2. 根据r_squared选择最佳模型指数公式+反演公式)
3. 使用指数公式计算光谱指数值
4. 使用反演公式计算水质参数值
@ -38,12 +38,12 @@ class CustomRegressionPredictor:
"""
自定义回归预测器
基于9_Custom_Regression_Modeling文件夹中的回归模型CSV文件
基于13_Custom_Regression文件夹中的回归模型CSV文件
进行水质参数的批量预测。
"""
def __init__(self,
regression_models_dir: str = "9_Custom_Regression_Modeling",
regression_models_dir: str = "13_Custom_Regression",
formula_csv_path: Optional[str] = None,
output_dir: str = "prediction_results",
log_level: int = logging.INFO):
@ -102,7 +102,7 @@ class CustomRegressionPredictor:
def load_regression_models(self) -> Dict[str, pd.DataFrame]:
"""
加载9_Custom_Regression_Modeling文件夹中的所有CSV文件
加载13_Custom_Regression文件夹中的所有CSV文件
支持的CSV格式
- 回归结果CSV包含列y_variable, x_variable, equation, r_squared
@ -621,7 +621,7 @@ def main():
parser = argparse.ArgumentParser(description='自定义回归预测模块')
parser.add_argument('--input_csv', required=True, help='输入的光谱采样CSV文件路径')
parser.add_argument('--models_dir', default='9_Custom_Regression_Modeling',
parser.add_argument('--models_dir', default='13_Custom_Regression',
help='回归模型CSV文件目录')
parser.add_argument('--output_dir', default='prediction_results',
help='预测结果输出目录')

View File

@ -28,7 +28,7 @@ class GlintDetectionStep:
max_area: Optional[int] = None,
buffer_size: Optional[int] = None,
water_mask_path: Optional[str] = None,
glint_dir: Union[str, Path] = "./2_glint",
glint_dir: Union[str, Path] = "./2_Glint_Detection",
callback: Optional[callable] = None,
) -> str:
"""

View File

@ -362,7 +362,7 @@ class ModelingStep:
raise ValueError(f"因变量列不存在: {missing_y}")
if output_dir is None:
custom_regression_dir = Path(work_dir) / "9_Custom_Regression_Modeling"
custom_regression_dir = Path(work_dir) / "13_Custom_Regression"
else:
custom_regression_dir = Path(work_dir) / output_dir
custom_regression_dir.mkdir(parents=True, exist_ok=True)

View File

@ -105,7 +105,7 @@ class PredictionStep:
models_dir: Optional[str] = None,
metric: str = "test_r2",
prediction_column: str = "prediction",
output_dir: Union[str, Path] = "./11_12_13_predictions/Machine_Learning_Prediction",
output_dir: Union[str, Path] = "./9_ML_Prediction",
callback: Optional[Callable] = None,
_report_generator=None,
_external_model=None,
@ -363,14 +363,14 @@ class PredictionStep:
if custom_regression_dir is not None:
final_regression_dir = custom_regression_dir
else:
final_regression_dir = str(Path(work_dir) / "9_Custom_Regression_Modeling")
final_regression_dir = str(Path(work_dir) / "13_Custom_Regression")
if not Path(final_regression_dir).exists():
raise ValueError(
"请先执行步骤6.75: 自定义回归分析,或提供 custom_regression_dir 参数"
)
if output_dir is None:
custom_regression_prediction_dir = Path(work_dir) / "11_12_13_predictions" / "Custom_Regression_Prediction"
custom_regression_prediction_dir = Path(work_dir) / "13_Custom_Regression" / "Custom_Regression_Prediction"
custom_regression_prediction_dir.mkdir(parents=True, exist_ok=True)
prediction_output_dir = str(custom_regression_prediction_dir)
else:

View File

@ -16,12 +16,12 @@ def generate_glint_deglint_previews(
output_dir: Optional[str] = None
) -> Dict[str, str]:
"""
生成2_glint和3_deglint文件夹中影像文件的PNG预览图
生成2_Glint_Detection和3_deglint文件夹中影像文件的PNG预览图
Args:
work_dir: 工作目录
output_subdir: 输出子目录名称
generate_glint: 是否处理2_glint文件夹
generate_glint: 是否处理2_Glint_Detection文件夹
generate_deglint: 是否处理3_deglint文件夹
output_dir: 输出目录None则使用默认

View File

@ -136,14 +136,14 @@ class WaterQualityInversionPipeline:
# 创建子目录
self.water_mask_dir = self.work_dir / "1_water_mask"
self.glint_dir = self.work_dir / "2_glint"
self.glint_dir = self.work_dir / "2_Glint_Detection"
self.deglint_dir = self.work_dir / "3_deglint"
self.processed_data_dir = self.work_dir / "4_processed_data"
self.training_spectra_dir = self.work_dir / "5_training_spectra"
self.indices_dir = self.work_dir / "6_water_quality_indices"
self.models_dir = self.work_dir / "7_Supervised_Model_Training"
self.non_empirical_models_dir = self.work_dir / "8_Regression_Modeling"
self.custom_regression_dir = self.work_dir / "9_Custom_Regression_Modeling"
self.custom_regression_dir = self.work_dir / "13_Custom_Regression"
self.sampling_dir = self.work_dir / "4_sampling"
self.prediction_dir = self.work_dir / "11_12_13_predictions"
self.visualization_dir = self.work_dir / "14_visualization"
@ -936,7 +936,7 @@ class WaterQualityInversionPipeline:
models_dir=models_dir if models_dir else str(self.models_dir),
metric=metric,
prediction_column=prediction_column,
output_dir=str(self.prediction_dir / "Machine_Learning_Prediction"),
output_dir=str(self.prediction_dir / "9_ML_Prediction"),
_report_generator=self.report_generator,
_external_model=_external_model,
_external_model_path=_external_model_path,
@ -1429,12 +1429,12 @@ class WaterQualityInversionPipeline:
generate_glint: bool = True,
generate_deglint: bool = True) -> Dict[str, str]:
"""
生成2_glint和3_deglint文件夹中影像文件的PNG预览图
生成2_Glint_Detection和3_deglint文件夹中影像文件的PNG预览图
Args:
work_dir: 工作目录如果为None则使用self.work_dir
output_subdir: 输出子目录名称
generate_glint: 是否处理2_glint文件夹
generate_glint: 是否处理2_Glint_Detection文件夹
generate_deglint: 是否处理3_deglint文件夹
Returns:
@ -2158,12 +2158,12 @@ class WaterQualityInversionPipeline:
"""
步骤12: 使用自定义回归模型进行参数预测
使用新的CustomRegressionPredictor模块基于9_Custom_Regression_Modeling文件夹中的CSV
使用新的CustomRegressionPredictor模块基于13_Custom_Regression文件夹中的CSV
根据r_squared选择最佳模型批量预测水质参数
Args:
sampling_csv_path: 采样点光谱数据CSV路径来自步骤10
custom_regression_dir: 自定义回归模型目录(9_Custom_Regression_Modeling
custom_regression_dir: 自定义回归模型目录(13_Custom_Regression
formula_csv_path: 公式CSV文件路径用于查找index_formula
coordinate_columns: 坐标列名列表,默认为['longitude', 'latitude']或自动识别
output_dir: 输出目录默认为prediction_dir
@ -2319,7 +2319,7 @@ def main():
'enabled': True # 是否启用非经验模型预测
},
'step12': {
'custom_regression_dir': None, # 自定义回归模型目录None表示使用9_Custom_Regression_Modeling
'custom_regression_dir': None, # 自定义回归模型目录None表示使用13_Custom_Regression
'formula_csv_path': None, # 公式CSV文件路径用于查找index_formula如water_quality_formulas.csv
'coordinate_columns': None, # 坐标列名None表示自动识别
'output_dir': None, # 输出目录None表示使用prediction_dir
@ -2346,7 +2346,7 @@ def main():
'generate_boxplots': True, # 是否生成箱型图
'generate_spectrum': True, # 是否生成光谱曲线图
'generate_statistics': True, # 是否生成统计图表
'generate_glint_previews': True, # 是否生成2_glint和3_deglint的PNG预览图
'generate_glint_previews': True, # 是否生成2_Glint_Detection和3_deglint的PNG预览图
'scatter_config': {
'metric': 'test_r2', # 选择最佳模型的指标
'use_enhanced': True, # 是否使用增强版散点图(带置信区间)
@ -2363,7 +2363,7 @@ def main():
'glint_preview_config': {
'work_dir': None, # 工作目录None表示使用pipeline的工作目录
'output_subdir': 'glint_deglint_previews', # 输出子目录
'generate_glint': True, # 是否处理2_glint文件夹
'generate_glint': True, # 是否处理2_Glint_Detection文件夹
'generate_deglint': True # 是否处理3_deglint文件夹
}
}