65 lines
1.4 KiB
Python
65 lines
1.4 KiB
Python
"""全局配置常量"""
|
|
from pathlib import Path
|
|
|
|
# 项目根目录
|
|
ROOT = Path(__file__).parent.parent.parent
|
|
|
|
# 数据目录
|
|
DATA_RAW = ROOT / "data" / "raw"
|
|
DATA_PROCESSED = ROOT / "data" / "processed"
|
|
DATA_EXTERNAL = ROOT / "data" / "external"
|
|
|
|
# 输出目录
|
|
OUTPUT_MODELS = ROOT / "outputs" / "models"
|
|
OUTPUT_FIGURES = ROOT / "outputs" / "figures"
|
|
OUTPUT_LOGS = ROOT / "outputs" / "logs"
|
|
|
|
# 研究城市坐标 (纬度, 经度)
|
|
CITIES = {
|
|
"jiaozuo": {"lat": 35.24, "lon": 113.22, "name": "焦作"},
|
|
"zhengzhou": {"lat": 34.75, "lon": 113.62, "name": "郑州"},
|
|
}
|
|
|
|
# ERA5 配置
|
|
ERA5_START_YEAR = 2010
|
|
ERA5_END_YEAR = 2024
|
|
ERA5_VARIABLES = [
|
|
"2m_temperature",
|
|
"2m_dewpoint_temperature",
|
|
"surface_pressure",
|
|
"10m_u_component_of_wind",
|
|
"10m_v_component_of_wind",
|
|
"total_precipitation",
|
|
]
|
|
|
|
# 模型配置
|
|
LOOKBACK_DAYS = 14
|
|
BATCH_SIZE = 16
|
|
LEARNING_RATE = 1e-3
|
|
MAX_EPOCHS = 200
|
|
EARLY_STOP_PATIENCE = 15
|
|
HIDDEN_DIM = 128
|
|
LSTM_LAYERS = 2
|
|
ATTENTION_HEADS = 4
|
|
DROPOUT = 0.3
|
|
|
|
# 风险等级阈值 (体感温度 °C)
|
|
RISK_THRESHOLDS = {
|
|
"low": 32,
|
|
"medium": 35,
|
|
"high": 38,
|
|
"severe": 38,
|
|
}
|
|
|
|
# 时间尺度预测窗口 (天)
|
|
PREDICTION_WINDOWS = {
|
|
"short": 3,
|
|
"medium": 7,
|
|
"long": 30,
|
|
}
|
|
|
|
# 确保目录存在
|
|
for d in [DATA_RAW, DATA_PROCESSED, DATA_EXTERNAL,
|
|
OUTPUT_MODELS, OUTPUT_FIGURES, OUTPUT_LOGS]:
|
|
d.mkdir(parents=True, exist_ok=True)
|