This repository implements FPDDS, a scalable and parallel auto-calibration framework for large-scale hydrologic and hydrodynamic modeling. The framework integrates parameter sampling, model execution, post-processing, and optimization into an automated pipeline — all orchestrated through Jupyter Notebooks for transparency, traceability, and reproducibility.
BASE_DIR/
├── FPDDS/
│ ├── Scripts/
│ │ ├── notebooks/ # All Python scripts (e.g., Model_run.py)
│ │ └── shapefiles/ # Shapefiles used for spatial masking/clipping
│ ├── configs/ # Ostrich config files and parameter templates (GENPARM, SOILPARM, etc.)
│ ├── best_parm/ # Best performing parameter sets selected from calibration
│ ├── obj_function/ # CSVs of objective function and other metrics
│ ├── param_save/ # Backup of each iteration's parameter files
│ ├── Linux/ # Compiled Ostrich binary (e.g., OstrichMPI)
│ ├── Source/ # Source code or templates for LIS/Ostrich if applicable
│ └── ILDAS_Auto_cal.sh # Bash script to automate model + Calibration execution
│
├── lis_input_files/ # LIS forcing and initialization NetCDF input files
│
├── output/
│ ├── LSM_IMD*/ # LIS routing output directories (from different model configs)
│ ├── processed_data*/ # Post-processed routed streamflow and merged data
│ └── error_metrix/ # Error matrix output (NSE, KGE, etc.) for each run
🚀 How to Run FPDDS
-
📥 Clone the Repository
Clone the repository into your working base directory:
git clone https://github.com/yourusername/FPDDS.git cd FPDDS -
🛠️ Set Up the Conda Environment
Create and activate a conda environment with all required libraries:
conda env create -f geo_env.yml conda activate geo_env -
📝 Configure Paths and Scripts
Open and edit the FPDDS/Scripts/notebooks/config_paths.py file.
Set all necessary base paths, filenames, and directories as variables. This ensures portability and reproducibility across systems.Modify the FPDDS/ILDAS_Auto_cal.sh shell script.
Update paths to LIS executables, data directories, and environment modules based on your HPC or local system.