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