File size: 3,130 Bytes
a74054f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
"""

Configuration settings for the hydrological GNN pipeline.

Centralized configuration following SRP.

"""
from pathlib import Path
from typing import List

# Project root
PROJECT_ROOT = Path(__file__).parent.parent.parent

# Data directories
DATA_DIR = PROJECT_ROOT / "datasets"
WATERSHED_RISLE = DATA_DIR / "Watersehd_risle" / "Watershed_Risle.shp"
WATERSHED_EURE = DATA_DIR / "Watershed_Eure" / "Watershed_Eure.shp"
WATERSHED_MERGED = DATA_DIR / "Risle_Eure_watershed" / "Risle_Eure_Watershed.shp"
ADES_DIR = DATA_DIR / "ADES"
ADES_STATIONS = ADES_DIR / "groundwater_stations.csv"
ADES_LEVELS = ADES_DIR / "groundwater_levels_watershed.csv"
IDPR_FILE = DATA_DIR / "IDPR_values.csv"
STATION_LIST = DATA_DIR / "station_list.csv"
SELECTED_STATIONS = DATA_DIR / "selected_stations.csv"

# Note: Hydrometric and SAFRAN data directories (to be populated)
HYDROMETRIC_DIR = DATA_DIR / "hydrometric"  # To be created
SAFRAN_DIR = DATA_DIR / "safran"  # To be created
DEM_DIR = DATA_DIR / "DEM"  # To be created

# Basin IDs (based on station names in station_list.csv)
BASIN_IDS = {
    "LA_RISLE": 0,   # 12 stations: "La Risle à ..."
    "LA_EURE": 1     # 13 stations: "L'Eure à ..." + "Le bras de l'Eure à ..."
}

# Total stations in study area
NUM_STATIONS = 27  # 12 Risle + 13 Eure + 2 variants

# CRS (Coordinate Reference Systems)
CRS_LAMBERT93 = "EPSG:2154"  # French national projection (shapefiles, X/Y coords)
CRS_WGS84 = "EPSG:4326"      # Geographic coordinates (lat/lon)

# Target variables (streamflow predictions)
TARGET_VARIABLES = [
    "QmnJ",   # Daily mean discharge
    "QIXnJ",  # Daily maximum instantaneous discharge
    "HIXnJ"   # Daily maximum water level
]

# SAFRAN meteorological input variables
SAFRAN_VARIABLES = [
    "DLI_Q",        # Atmospheric radiation
    "DRAINC_Q",     # Drainage
    "ETP_Q",        # Potential evapotranspiration
    "FF_Q",         # Wind speed
    "HU_Q",         # Relative humidity
    "PRELIQ_Q",     # Liquid precipitation
    "PRENEI_Q",     # Solid precipitation (snowfall)
    "RESR_NEIGE_Q", # Snowpack water equivalent
    "RUNC_Q",       # Runoff
    "SSI_Q",        # Visible radiation
    "SWI_Q",        # Soil moisture index
    "T_Q"           # Average air temperature
]

# Additional hydrometric variables (not targets but useful features)
HYDROMETRIC_FEATURES = [
    "QmM",    # Monthly mean discharge
    "QINM",   # Monthly minimum instantaneous discharge
    "QIXM",   # Monthly maximum instantaneous discharge
    "HIXM"    # Monthly maximum water level
]

# Temporal settings
TEMPORAL_WINDOW = 30  # Input window: 30 days
DATE_RANGE = ("1960-01-01", "2026-12-31")

# Normalization
NORMALIZATION_METHOD = "robust"  # Options: "standard", "minmax", "robust"

# Device configuration
DEVICE = "cuda"  # Will fall back to CPU if CUDA unavailable

# Graph construction
ALLOW_DISCONNECTED_COMPONENTS = True  # Per project requirements
SURFACE_CONNECTIVITY_ONLY = True  # Phase 1: no groundwater connections yet

# Random seed for reproducibility
RANDOM_SEED = 42