symfluence 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- symfluence-0.5.0/.gitignore +94 -0
- symfluence-0.5.0/0_base_settings/README.md +58 -0
- symfluence-0.5.0/0_config_files/README.md +63 -0
- symfluence-0.5.0/LICENSE +674 -0
- symfluence-0.5.0/PKG-INFO +841 -0
- symfluence-0.5.0/README.md +113 -0
- symfluence-0.5.0/docs/requirements.txt +3 -0
- symfluence-0.5.0/examples/README.md +102 -0
- symfluence-0.5.0/pyproject.toml +85 -0
- symfluence-0.5.0/requirements.txt +64 -0
- symfluence-0.5.0/src/symfluence/__init__.py +9 -0
- symfluence-0.5.0/src/symfluence/cli.py +75 -0
- symfluence-0.5.0/symfluence_version.py +6 -0
- symfluence-0.5.0/utils/README.md +54 -0
- symfluence-0.5.0/utils/__init__.py +0 -0
- symfluence-0.5.0/utils/cli/__init__.py +1 -0
- symfluence-0.5.0/utils/cli/cli_argument_manager.py +3002 -0
- symfluence-0.5.0/utils/cli/external_tools_config.py +819 -0
- symfluence-0.5.0/utils/data/__init__.py +1 -0
- symfluence-0.5.0/utils/data/agnosticPreProcessor.py +2237 -0
- symfluence-0.5.0/utils/data/archive_utils.py +58 -0
- symfluence-0.5.0/utils/data/attribute_processing.py +4978 -0
- symfluence-0.5.0/utils/data/data_manager.py +1789 -0
- symfluence-0.5.0/utils/data/data_utils.py +1774 -0
- symfluence-0.5.0/utils/data/variable_utils.py +333 -0
- symfluence-0.5.0/utils/evaluation/__init__.py +2 -0
- symfluence-0.5.0/utils/evaluation/analysis_manager.py +412 -0
- symfluence-0.5.0/utils/evaluation/benchmarking.py +278 -0
- symfluence-0.5.0/utils/evaluation/calculate_sim_stats.py +322 -0
- symfluence-0.5.0/utils/evaluation/decision_analysis.py +185 -0
- symfluence-0.5.0/utils/evaluation/sensitivity_analysis.py +173 -0
- symfluence-0.5.0/utils/geospatial/__init__.py +1 -0
- symfluence-0.5.0/utils/geospatial/discretization_utils.py +1665 -0
- symfluence-0.5.0/utils/geospatial/domain_manager.py +319 -0
- symfluence-0.5.0/utils/geospatial/geofabric_utils.py +2229 -0
- symfluence-0.5.0/utils/geospatial/raster_utils.py +108 -0
- symfluence-0.5.0/utils/models/__init__.py +2 -0
- symfluence-0.5.0/utils/models/flash_utils.py +649 -0
- symfluence-0.5.0/utils/models/fuse_utils.py +3300 -0
- symfluence-0.5.0/utils/models/gr_utils.py +1184 -0
- symfluence-0.5.0/utils/models/hypeFlow.py +780 -0
- symfluence-0.5.0/utils/models/hype_utils.py +414 -0
- symfluence-0.5.0/utils/models/mesh_utils.py +306 -0
- symfluence-0.5.0/utils/models/mizuroute_utils.py +1119 -0
- symfluence-0.5.0/utils/models/model_manager.py +862 -0
- symfluence-0.5.0/utils/models/ngen_utils.py +1267 -0
- symfluence-0.5.0/utils/models/summa_utils.py +2412 -0
- symfluence-0.5.0/utils/optimization/__init__.py +2 -0
- symfluence-0.5.0/utils/optimization/calibration_targets.py +2598 -0
- symfluence-0.5.0/utils/optimization/differentiable_parameter_emulator.py +2255 -0
- symfluence-0.5.0/utils/optimization/fuse_calibration_targets.py +1088 -0
- symfluence-0.5.0/utils/optimization/fuse_optimiser.py +2186 -0
- symfluence-0.5.0/utils/optimization/fuse_parameter_manager.py +344 -0
- symfluence-0.5.0/utils/optimization/fuse_worker_functions.py +321 -0
- symfluence-0.5.0/utils/optimization/iterative_optimizer.py +6759 -0
- symfluence-0.5.0/utils/optimization/kim_optimization.py +1064 -0
- symfluence-0.5.0/utils/optimization/large_domain_emulator.py +1594 -0
- symfluence-0.5.0/utils/optimization/local_scratch_manager.py +607 -0
- symfluence-0.5.0/utils/optimization/ngen_calibration_targets.py +433 -0
- symfluence-0.5.0/utils/optimization/ngen_optimiser.py +1312 -0
- symfluence-0.5.0/utils/optimization/ngen_parameter_manager.py +721 -0
- symfluence-0.5.0/utils/optimization/ngen_worker_functions.py +279 -0
- symfluence-0.5.0/utils/optimization/optimization_manager.py +935 -0
- symfluence-0.5.0/utils/optimization/worker_scripts.py +2188 -0
- symfluence-0.5.0/utils/project/__init__.py +1 -0
- symfluence-0.5.0/utils/project/logging_manager.py +615 -0
- symfluence-0.5.0/utils/project/project_manager.py +169 -0
- symfluence-0.5.0/utils/project/workflow_orchestrator.py +441 -0
- symfluence-0.5.0/utils/reporting/reporting_utils.py +1713 -0
- symfluence-0.5.0/utils/reporting/result_vizualisation_utils.py +885 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
*.egg-info/
|
|
20
|
+
.installed.cfg
|
|
21
|
+
*.egg
|
|
22
|
+
examples/*/.ipynb_checkpoints/
|
|
23
|
+
.confluence_env
|
|
24
|
+
mpi_*
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Virtual Environment
|
|
28
|
+
venv/
|
|
29
|
+
ENV/
|
|
30
|
+
env/
|
|
31
|
+
.env/
|
|
32
|
+
.venv/
|
|
33
|
+
|
|
34
|
+
# Ignore everything in 0_config_files
|
|
35
|
+
0_config_files/*
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# But keep config_template.yaml
|
|
39
|
+
!0_config_files/config_template.yaml
|
|
40
|
+
!0_config_files/README.md
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# IDE
|
|
44
|
+
.idea/
|
|
45
|
+
.vscode/
|
|
46
|
+
*.swp
|
|
47
|
+
*.swo
|
|
48
|
+
|
|
49
|
+
# macOS system files
|
|
50
|
+
.DS_Store
|
|
51
|
+
.AppleDouble
|
|
52
|
+
.LSOverride
|
|
53
|
+
Icon
|
|
54
|
+
._*
|
|
55
|
+
.DocumentRevisions-V100
|
|
56
|
+
.fseventsd
|
|
57
|
+
.Spotlight-V100
|
|
58
|
+
.TemporaryItems
|
|
59
|
+
.Trashes
|
|
60
|
+
.VolumeIcon.icns
|
|
61
|
+
.com.apple.timemachine.donotpresent
|
|
62
|
+
|
|
63
|
+
# Jupyter Notebook
|
|
64
|
+
.ipynb_checkpoints
|
|
65
|
+
*/*/.ipynb_checkpoints/*
|
|
66
|
+
|
|
67
|
+
# Model outputs and temporary files
|
|
68
|
+
*.log
|
|
69
|
+
*.err
|
|
70
|
+
*.out
|
|
71
|
+
*.pkl
|
|
72
|
+
temp/
|
|
73
|
+
logs/
|
|
74
|
+
|
|
75
|
+
# Distribution
|
|
76
|
+
*.manifest
|
|
77
|
+
*.spec
|
|
78
|
+
|
|
79
|
+
# Unit test / coverage reports
|
|
80
|
+
htmlcov/
|
|
81
|
+
.tox/
|
|
82
|
+
.nox/
|
|
83
|
+
.coverage
|
|
84
|
+
.coverage.*
|
|
85
|
+
.cache
|
|
86
|
+
nosetests.xml
|
|
87
|
+
coverage.xml
|
|
88
|
+
*.cover
|
|
89
|
+
*.py,cover
|
|
90
|
+
.hypothesis/
|
|
91
|
+
.pytest_cache/
|
|
92
|
+
cover/*.nc
|
|
93
|
+
*.err
|
|
94
|
+
*.err
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Base Settings
|
|
2
|
+
|
|
3
|
+
This directory contains the default configuration templates and parameter files for all supported hydrological models in SYMFLUENCE.
|
|
4
|
+
These serve as **clean, validated starting points** for new projects and ensure reproducible, consistent model setup across workflows.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Structure
|
|
9
|
+
|
|
10
|
+
Each subdirectory includes model-specific base templates:
|
|
11
|
+
|
|
12
|
+
- **SUMMA/** — Parameter files, decision file, and file manager templates for SUMMA model setup
|
|
13
|
+
→ [CH-Earth SUMMA Repository](https://github.com/CH-Earth/SUMMA)
|
|
14
|
+
|
|
15
|
+
- **FUSE/** — Configuration templates and parameter definitions for FUSE model applications
|
|
16
|
+
→ [CH-Earth FUSE Repository](https://github.com/CH-Earth/FUSE)
|
|
17
|
+
|
|
18
|
+
- **mizuRoute/** — Network topology, routing parameter files, and control templates for mizuRoute
|
|
19
|
+
→ [CH-Earth mizuRoute Repository](https://github.com/CH-Earth/mizuRoute)
|
|
20
|
+
|
|
21
|
+
- **NOAH/** — Parameter files for the NOAH Land Surface Model used in **NextGen-style** workflows.
|
|
22
|
+
→ [CH-Earth NOAH Repository](https://github.com/CH-Earth/noah-lsm)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. Usage
|
|
27
|
+
|
|
28
|
+
Base settings are automatically copied into each project during model preprocessing:
|
|
29
|
+
```bash
|
|
30
|
+
./symfluence --preprocess_models --config my_project.yaml
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Copied files can then be safely modified without affecting the base templates.
|
|
34
|
+
This ensures:
|
|
35
|
+
- Clean defaults for every new project
|
|
36
|
+
- Reproducibility across model setups
|
|
37
|
+
- Isolation between experiments
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 3. Customization Guidelines
|
|
42
|
+
|
|
43
|
+
- **Avoid editing files here directly.**
|
|
44
|
+
Changes will affect all future projects.
|
|
45
|
+
Instead, modify the copies within your project directory.
|
|
46
|
+
|
|
47
|
+
- Use version control to track any changes for transparency.
|
|
48
|
+
- When adding support for new models, follow the directory structure and naming conventions used here.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 4. References
|
|
53
|
+
|
|
54
|
+
For full model documentation and parameter details:
|
|
55
|
+
- [SUMMA – Structure for Unifying Multiple Modeling Alternatives](https://github.com/CH-Earth/SUMMA)
|
|
56
|
+
- [FUSE – Framework for Understanding Structural Errors](https://github.com/CH-Earth/FUSE)
|
|
57
|
+
- [mizuRoute – River Network Routing Tool](https://github.com/CH-Earth/mizuRoute)
|
|
58
|
+
- [NOAH – Land Surface Model](https://github.com/CH-Earth/noah-lsm)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Configuration Files
|
|
2
|
+
|
|
3
|
+
This directory contains the configuration templates that control all aspects of CONFLUENCE workflows.
|
|
4
|
+
Configurations define experiment setup, model selection, data paths, and analysis parameters across the workflow—from conceptualization to evaluation.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Configuration Structure
|
|
9
|
+
|
|
10
|
+
All configurations are written in **YAML** and follow the logical sequence of the workflow.
|
|
11
|
+
Each section feeds into the next to ensure consistency and reproducibility.
|
|
12
|
+
|
|
13
|
+
### Sections
|
|
14
|
+
- **Global Settings** — Define directories, domain names, and experiment IDs.
|
|
15
|
+
- **Geospatial** — Configure watershed delineation, coordinate systems, and spatial discretization.
|
|
16
|
+
- **Model-Agnostic** — Specify preprocessing, forcing data, and format standardization.
|
|
17
|
+
- **Model-Specific** — Provide setup parameters for SUMMA, FUSE, NEXTGEN, GR, LSTM.
|
|
18
|
+
- **Evaluation** — Define performance metrics, benchmarking methods, and visualization settings.
|
|
19
|
+
- **Optimization** — Configure calibration targets, objective functions, and algorithms.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. Working with Configurations
|
|
24
|
+
|
|
25
|
+
### Creating a New Configuration
|
|
26
|
+
Start from the provided template:
|
|
27
|
+
```bash
|
|
28
|
+
cp config_template.yaml config_active.yaml
|
|
29
|
+
```
|
|
30
|
+
Edit from top to bottom:
|
|
31
|
+
1. Define global paths and domain details.
|
|
32
|
+
2. Set model and calibration parameters.
|
|
33
|
+
3. Verify settings using built-in validation tools.
|
|
34
|
+
|
|
35
|
+
### Hierarchy and Dependencies
|
|
36
|
+
Each section uses values defined in earlier ones.
|
|
37
|
+
This ensures parameter inheritance, consistent file paths, and workflow synchronization.
|
|
38
|
+
|
|
39
|
+
### Path Management
|
|
40
|
+
Default paths align with CONFLUENCE’s directory structure, but you can override them to match existing data or cluster environments.
|
|
41
|
+
|
|
42
|
+
### Multi-Model Workflows
|
|
43
|
+
You can run several models within a single configuration for intercomparison or ensemble experiments.
|
|
44
|
+
Each model block operates independently while sharing the global setup.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Best Practices
|
|
49
|
+
|
|
50
|
+
### Configuration Management
|
|
51
|
+
- Maintain one configuration per experiment or domain.
|
|
52
|
+
- Use descriptive experiment identifiers.
|
|
53
|
+
- Avoid editing active configurations—create copies for new runs.
|
|
54
|
+
|
|
55
|
+
### Documentation
|
|
56
|
+
Comment on any non-default values directly within YAML files.
|
|
57
|
+
This supports reproducibility and provides clarity for future analysis.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 4. Troubleshooting
|
|
62
|
+
- Review error messages carefully; they include direct hints for correction.
|
|
63
|
+
- The configuration template provides defaults and recommended values.
|