Spaces:
Running on Zero
Running on Zero
| """ | |
| 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 | |