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.
Files changed (70) hide show
  1. symfluence-0.5.0/.gitignore +94 -0
  2. symfluence-0.5.0/0_base_settings/README.md +58 -0
  3. symfluence-0.5.0/0_config_files/README.md +63 -0
  4. symfluence-0.5.0/LICENSE +674 -0
  5. symfluence-0.5.0/PKG-INFO +841 -0
  6. symfluence-0.5.0/README.md +113 -0
  7. symfluence-0.5.0/docs/requirements.txt +3 -0
  8. symfluence-0.5.0/examples/README.md +102 -0
  9. symfluence-0.5.0/pyproject.toml +85 -0
  10. symfluence-0.5.0/requirements.txt +64 -0
  11. symfluence-0.5.0/src/symfluence/__init__.py +9 -0
  12. symfluence-0.5.0/src/symfluence/cli.py +75 -0
  13. symfluence-0.5.0/symfluence_version.py +6 -0
  14. symfluence-0.5.0/utils/README.md +54 -0
  15. symfluence-0.5.0/utils/__init__.py +0 -0
  16. symfluence-0.5.0/utils/cli/__init__.py +1 -0
  17. symfluence-0.5.0/utils/cli/cli_argument_manager.py +3002 -0
  18. symfluence-0.5.0/utils/cli/external_tools_config.py +819 -0
  19. symfluence-0.5.0/utils/data/__init__.py +1 -0
  20. symfluence-0.5.0/utils/data/agnosticPreProcessor.py +2237 -0
  21. symfluence-0.5.0/utils/data/archive_utils.py +58 -0
  22. symfluence-0.5.0/utils/data/attribute_processing.py +4978 -0
  23. symfluence-0.5.0/utils/data/data_manager.py +1789 -0
  24. symfluence-0.5.0/utils/data/data_utils.py +1774 -0
  25. symfluence-0.5.0/utils/data/variable_utils.py +333 -0
  26. symfluence-0.5.0/utils/evaluation/__init__.py +2 -0
  27. symfluence-0.5.0/utils/evaluation/analysis_manager.py +412 -0
  28. symfluence-0.5.0/utils/evaluation/benchmarking.py +278 -0
  29. symfluence-0.5.0/utils/evaluation/calculate_sim_stats.py +322 -0
  30. symfluence-0.5.0/utils/evaluation/decision_analysis.py +185 -0
  31. symfluence-0.5.0/utils/evaluation/sensitivity_analysis.py +173 -0
  32. symfluence-0.5.0/utils/geospatial/__init__.py +1 -0
  33. symfluence-0.5.0/utils/geospatial/discretization_utils.py +1665 -0
  34. symfluence-0.5.0/utils/geospatial/domain_manager.py +319 -0
  35. symfluence-0.5.0/utils/geospatial/geofabric_utils.py +2229 -0
  36. symfluence-0.5.0/utils/geospatial/raster_utils.py +108 -0
  37. symfluence-0.5.0/utils/models/__init__.py +2 -0
  38. symfluence-0.5.0/utils/models/flash_utils.py +649 -0
  39. symfluence-0.5.0/utils/models/fuse_utils.py +3300 -0
  40. symfluence-0.5.0/utils/models/gr_utils.py +1184 -0
  41. symfluence-0.5.0/utils/models/hypeFlow.py +780 -0
  42. symfluence-0.5.0/utils/models/hype_utils.py +414 -0
  43. symfluence-0.5.0/utils/models/mesh_utils.py +306 -0
  44. symfluence-0.5.0/utils/models/mizuroute_utils.py +1119 -0
  45. symfluence-0.5.0/utils/models/model_manager.py +862 -0
  46. symfluence-0.5.0/utils/models/ngen_utils.py +1267 -0
  47. symfluence-0.5.0/utils/models/summa_utils.py +2412 -0
  48. symfluence-0.5.0/utils/optimization/__init__.py +2 -0
  49. symfluence-0.5.0/utils/optimization/calibration_targets.py +2598 -0
  50. symfluence-0.5.0/utils/optimization/differentiable_parameter_emulator.py +2255 -0
  51. symfluence-0.5.0/utils/optimization/fuse_calibration_targets.py +1088 -0
  52. symfluence-0.5.0/utils/optimization/fuse_optimiser.py +2186 -0
  53. symfluence-0.5.0/utils/optimization/fuse_parameter_manager.py +344 -0
  54. symfluence-0.5.0/utils/optimization/fuse_worker_functions.py +321 -0
  55. symfluence-0.5.0/utils/optimization/iterative_optimizer.py +6759 -0
  56. symfluence-0.5.0/utils/optimization/kim_optimization.py +1064 -0
  57. symfluence-0.5.0/utils/optimization/large_domain_emulator.py +1594 -0
  58. symfluence-0.5.0/utils/optimization/local_scratch_manager.py +607 -0
  59. symfluence-0.5.0/utils/optimization/ngen_calibration_targets.py +433 -0
  60. symfluence-0.5.0/utils/optimization/ngen_optimiser.py +1312 -0
  61. symfluence-0.5.0/utils/optimization/ngen_parameter_manager.py +721 -0
  62. symfluence-0.5.0/utils/optimization/ngen_worker_functions.py +279 -0
  63. symfluence-0.5.0/utils/optimization/optimization_manager.py +935 -0
  64. symfluence-0.5.0/utils/optimization/worker_scripts.py +2188 -0
  65. symfluence-0.5.0/utils/project/__init__.py +1 -0
  66. symfluence-0.5.0/utils/project/logging_manager.py +615 -0
  67. symfluence-0.5.0/utils/project/project_manager.py +169 -0
  68. symfluence-0.5.0/utils/project/workflow_orchestrator.py +441 -0
  69. symfluence-0.5.0/utils/reporting/reporting_utils.py +1713 -0
  70. 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.