2. NEWS¶
Contents
10 Year Anniversary¶
We started CWatM in April 2016. Next year we have our 10 Year Anniversary. We are planning a conference at IIASA, Laxenburg, Austria in June 2026.
Stay tuned for the next announcements!
Major Updates¶
October 2025¶
added a sophisticated way of calculating snow with SnowClim: https://gmd.copernicus.org/articles/15/5045/2022/gmd-15-5045-2022.html
September 2025¶
we update the Main repro of Github (just to go then straight to development again)
we update the testing suite, source code documentation, checked for PEP8
fixed the -c (check data option)
July 2025¶
we added wetland processs to cope with yearly variabible flooding of wetlands
June 2025¶
we added another alternative way to calculate potential evaporation with Thornthwaite
June 2024¶
we added waste water processes
June 2024¶
we added water transfer
Publication using CWatM¶
Hanus, S., Burek, P., Smilovic, M., Seibert, J., Wada, Y., & Viviroli, D. (2025). Dependence of lowland water use on mountain runoff globally: Interannual variability and future changes at seasonal scale. Earth’s Future, 13, e2025EF006407. https://doi.org/10.1029/2025EF006407
Fridman, D. , Smilovic, M. , Burek, P. , Tramberend, S. , & Kahil, T. (2025). Wastewater matters: incorporating wastewater treatment and reuse into a process-based hydrological model (CWatM v1.08). Geoscientific Model Development 18 (12) 3735-3754. 10.5194/gmd-18-3735-2025.
Hinton, R., Fridman, D. , Smilovic, M. , Willaarts, B.A. , Chunga, B., Banda, L., Macleod, K., Troldborg, M., & Kalin, R. (2025). Stakeholder-informed approach improves national modelling of water resources for a Sub-Saharan African basin. Journal of Hydrology: Regional Studies 60 e102574. 10.1016/j.ejrh.2025.102574.
Müller Schmied, H., Gosling, S.N., Garnsworthy, M., Müller, L., Telteu, C.-E., Ahmed, A.K., Andersen, L.S., Boulange, J., Burek, P. , Chang, J., Chen, H., Gudmundsson, L., Grillakis, M., Guillaumot, L., Hanasaki, N., Koutroulis, A., Kumar, R., Leng, G., Liu, J., Liu, X., et al. (2025). Graphical representation of global water models. Geoscientific Model Development 18 (8) 2409-2425. 10.5194/gmd-18-2409-2025.
Zhao, F., Nie, N., Liu, Y., Yi, C., Guillaumot, L. , Wada, Y., Burek, P. , Smilovic, M. , Frieler, K., Buechner, M., Schewe, J., & Gosling, S.N. (2025). Benefits of Calibrating a Global Hydrological Model for Regional Analyses of Flood and Drought Projections: A Case Study of the Yangtze River Basin. Water Resources Research 61 (3) e2024WR037153. 10.1029/2024WR037153.
Kalthof, M.W.M.L., de Bruijn, J. , de Moel, H., Kreibich, H., & Aerts, J.C.J.H. (2025). Adaptive behavior of farmers under consecutive droughts results in more vulnerable farmers: a large-scale agent-based modeling analysis in the Bhima basin, India. Natural Hazards and Earth System Sciences 25 (3) 1013-1035. 10.5194/nhess-25-1013-2025.
Hanus, S. , Burek, P. , Smilovic, M. , Seibert, J., & Viviroli, D. (2024). Seasonal variability in the global relevance of mountains to satisfy lowland water demand. Environmental Research Letters 19 (11) e114078. 10.1088/1748-9326/ad8507
Palazzo, A. , Kahil, T. , Willaarts, B. , Burek, P. , van Dijk, M. , Tang, T. , Magnuszewski, P., Havlík, P. , Langan, S. , & Wada, Y. (2024). Assessing sustainable development pathways for water, food, and energy security in a transboundary river basin. Environmental Development 51 e101030
Heinicke, S., Volkholz, J., Schewe, J., Gosling, S.N, Müller Schmied, H., Zimmermann, S., Mengel, M., Sauer, I.J, Burek, P. , Chang, J., Kou-Giesbrecht, S., Grillakis, M., Guillaumot, L., Hanasaki, N., Koutroulis, A., Otta, K., Qi, W., Satoh, Y., Stacke, T., Yokohata, T., et al. (2024). Global hydrological models continue to overestimate river discharge. Environmental Research Letters 19 (7) e074005. 10.1088/1748-9326/ad52b0
Becher, O., Smilovic, M. , Verschuur, J., Pant, R., Tramberend, S. , & Hall, J. (2024). The challenge of closing the climate adaptation gap for water supply utilities. Communications Earth & Environment 5 (1) e356. 10.1038/s43247-024-01272-3
Awais, M. , Vinca, A. , Byers, E. , Frank, S. , Fricko, O. , Boere, E., Burek, P. , Poblete Cazenave, M., Kishimoto, P.N. , Mastrucci, A. , Satoh, Y., Palazzo, A. , McPherson, M., Riahi, K. , & Krey, V. (2024). MESSAGEix-GLOBIOM nexus module: integrating water sector and climate impacts. Geoscientific Model Development 17 (6) 2447-2469. 10.5194/gmd-17-2447-2024
Fridman, D., Smilovic, M., Burek, P., Tramberend, S., and Kahil, T.: Wastewater matters: Incorporating wastewater reclamation into a process-based hydrological model (CWatM v1.08), Geosci. Model Dev. Discuss. [preprint], https://doi.org/10.5194/gmd-2024-143 in review
Wolkeba, F.T., Mekonnen, M.M., Brauman, K.A. et al. Indicator metrics and temporal aggregations introduce ambiguities in water scarcity estimates. Sci Rep 14, 15182 (2024). https://doi.org/10.1038/s41598-024-65155-5
Smilovic, M. , Burek, P. , Fridman, D. , Guillaumot, L., de Bruijn, J. , Greve, P., Wada, Y. , Tang, T. , Kronfuss, M., Hanus, S., Tramberend, S. , & Kahil, T. (2024). Water circles—a tool to assess and communicate the water cycle. Environmental Research Letters 19 (2) e021003. 10.1088/1748-9326/ad18de
Palazzo, A. , Kahil, T. , Willaarts, B. , Burek, P. , van Dijk, M. , Tang, T. , Magnuszewski, P., Havlík, P. , Langan, S. , & Wada, Y. (2024). Assessing sustainable development pathways for water, food, and energy security in a transboundary river basin. Environmental Development e101030. 10.1016/j.envdev.2024.101030
Becher, O., Smilovic, M. , Verschuur, J., Pant, R., Tramberend, S. , & Hall, J. (2024). The challenge of closing the climate adaptation gap for water supply utilities. Communications Earth & Environment 5 (1) e356. 10.1038/s43247-024-01272-3
Heinicke, S., Volkholz, J., Schewe, J., Gosling, S.N, Müller Schmied, H., Zimmermann, S., Mengel, M., Sauer, I.J, Burek, P. , Chang, J., Kou-Giesbrecht, S., Grillakis, M., Guillaumot, L., Hanasaki, N., Koutroulis, A., Otta, K., Qi, W., Satoh, Y., Stacke, T., Yokohata, T., et al. (2024). Global hydrological models continue to overestimate river discharge. Environmental Research Letters 19 (7) e074005. 10.1088/1748-9326/ad52b0
Matevž Vremec, Peter Burek, Luca Guillaumot, Jesse Radolinski, Veronika Forstner, Markus Herndl, Christine Stumpp, Michael Bahn, Steffen Birk, Sensitivity of montane grassland water fluxes to warming and elevated CO2 from local to catchment scale: A case study from the Austrian Alps, Journal of Hydrology: Regional Studies,Volume 56,2024,101970,ISSN 2214-5818,https://doi.org/10.1016/j.ejrh.2024.101970.(https://www.sciencedirect.com/science/article/pii/S2214581824003197)
Hanus, S., Schuster, L., Burek, P., Maussion, F., Wada, Y., and Viviroli, D.: Coupling a large-scale glacier and hydrological model (OGGM v1.5.3 and CWatM V1.08) – towards an improved representation of mountain water resources in global assessments, Geosci. Model Dev., 17, 5123–5144, https://doi.org/10.5194/gmd-17-5123-2024
Dione, P.M., Faye, C., Mohamed, A. et al. Assessment of the impact of climate change on current and future flows of the ungauged Aga-Foua-Djilas watershed: a comparative study of hydrological models CWatM under ISIMIP and HMF-WA. Appl Water Sci 14, 163 (2024). https://doi.org/10.1007/s13201-024-02219-
Gnann, S., Reinecke, R., Stein, L., Wada, Y. , Thiery, W., Müller Schmied, H., Satoh, Y., Pokhrel, Y., Ostberg, S., Koutroulis, A., Hanasaki, N., Grillakis, M., Gosling, S. N., Burek, P. , Bierkens, M.F.P., & Wagener, T. (2023). Functional relationships reveal differences in the water cycle representation of global water models. Nature Water 1 1079-1090. 10.1038/s44221-023-00160-y
Greve, P., Burek, P. , Guillaumot, L. , van Meijgaard, E., Aalbers, E., Smilovic, M. , Sperna-Weiland, F., Kahil, T. , & Wada, Y. (2023). Low flow sensitivity to water withdrawals in Central and Southwestern Europe under 2 K global warming. Environmental Research Letters 18 (9) e094020. 10.1088/1748-9326/acec60
de Bruijn, J. , Smilovic, M. , Burek, P. , Guillaumot, L. , Wada, Y. , & Aerts, J.C.J.H. (2023). GEB v0.1: a large-scale agent-based socio-hydrological model – simulating 10 million individual farming households in a fully distributed hydrological model. Geoscientific Model Development 16 (9) 2437-2454. 10.5194/gmd-16-2437-2023.
Valencia, R., Guillaumot, L. , Sahu, R.K. , Nam, C., Lierhammer, L., & Máñez Costa, M. (2023). An assessment of water management measures for climate change adaptation of agriculture in Seewinkel. Science of the Total Environment 885 e163906. 10.1016/j.scitotenv.2023.163906.
Kallio, M., Guillaume, J.H.A., Burek, P. , Tramberend, S. , Smilovic, M. , Horton, A.J., & Virrantaus, K. (2022). Unpacking dasymetric modelling to correct spatial bias in environmental model outputs. Environmental Modelling & Software 157 e105511. 10.1016/j.envsoft.2022.105511.
Guillaumot, L. , Smilovic, M. , Burek, P. , de Bruijn, J. , Greve, P., Kahil, T. , & Wada, Y. (2022). Coupling a large-scale hydrological model (CWatM v1.1) with a high-resolution groundwater flow model (MODFLOW 6) to assess the impact of irrigation at regional scale. Geoscientific Model Development 15 (18) 7099-7120. 10.5194/gmd-15-7099-2022.
Satoh, Y., Yoshimura, K., Pokhrel, Y., Kim, H., Shiogama, H., Yokohata, T., Hanasaki, N., Wada, Y. , Burek, P. , Byers, E. , Müller Schmied, H., Gerten, D., Ostberg, S., Gosling, S.N., Boulange, J.E.S., & Oki, T. (2022). The timing of unprecedented hydrological drought under climate change. Nature Communications 13 (1) e3287. 10.1038/s41467-022-30729-2.
Okaali, D.A., Kroeze, C., Medema, G., Burek, P. , Murphy, H., Tumwebaze, I.K., Rose, J.B., Verbyla, M.E., Sewagudde, S., & Hofstra, N. (2021). Modelling rotavirus concentrations in rivers: Assessing Uganda’s present and future microbial water quality. Water Research 204 e117615. 10.1016/j.watres.2021.117615.
Telteu, C.-E., Müller Schmied, H., Thiery, W., Leng, G., Burek, P. , Liu, D., Boulange, J., Andersen, L., Grillakis, M., Gosling, S., Satoh, Y., Rakovec, O., Stacke, T., Chang, J., Wanders, N., Shah, H., Trautmann, T., Mao, G., Hanasaki, N., Koutroulis, A., Pokhrel, Y., Samaniego, L., Wada, Y. , Mishra, V., Liu, J., Döll, P., Zhao, F., Gädeke, A., Rabin, S., & Herz, F. (2021). Understanding each other’s models: an introduction and a standard representation of 16 global water models to support intercomparison, improvement, and communication. Geoscientific Model Development 14 (6) 3843-3878. 10.5194/gmd-14-3843-2021.
Vinca, A. , Parkinson, S. , Byers, E. , Burek, P. , Khan, Z., Krey, V. , Diuana, F., Wang, Y., Ilyas, A., Köberle, A.C., Staffel, I., Pfenninger, S., Muhammad, A., Rowe, A., Schaeffer, R., Rao, N. , Wada, Y. , Dhilali, N., & Riahi, K. (2019). The Nexus Solutions Tool (NEST): An open platform for optimizing multi-scale energy-water-land system transformations. Geoscientific Model Development Discussions 13 (3) 1095-1121. 10.5194/gmd-2019-134
Pokhrel, Y., Felfelani, F., Satoh, Y., Boulange, J., Burek, P. , Gädeke, A., Gerten, D., Gosling, S.N., Grillakis, M., Gudmundsson, L., Hanasaki, N., Kim, H., Koutroulis, A., Liu, J., Papadimitriou, L., Schewe, J., Müller Schmied, H., Stacke, T., Telteu, C.-E., Thiery, W., Veldkamp, T., Zhao, F., & Wada, Y. (2021). Global terrestrial water storage and drought severity under climate change. Nature Climate Change 11 226-233. 10.1038/s41558-020-00972-w.
Boulange, J., Hanasaki, N., Satoh, Y., Yokohata, T., Shiogama, H., Burek, P. , Thiery, W., Gerten, D., Müller Schmied, H., Wada, Y. , Gosling, S.N., Pokhrel, Y., & Wanders, N. (2021). Validity of estimating flood and drought characteristics under equilibrium climates from transient simulations. Environmental Research Letters 16 (10) e104028. 10.1088/1748-9326/ac27cc.
Reinecke, R., Müller Schmied, H., Trautmann, T., Andersen, L.S., Burek, P. , Flörke, M., Gosling, S.N., Grillakis, M., Hanasaki, N., Koutroulis, A., Pokhrel, Y., Thiery, W., Wada, Y. , Satoh, Y., & Döll, P. (2021). Uncertainty of simulated groundwater recharge at different global warming levels: a global-scale multi-model ensemble study. Hydrology and Earth System Sciences 25 (2) 787-810. 10.5194/hess-25-787-2021.
Satoh, Y., Shiogama, H., Hanasaki, N., Pokhrel, Y., Boulange, J.E.S., Burek, P. , Gosling, S.N., Grillakis, M., Koutroulis, A., Müller Schmied, H., Thiery, W., & Yokohata, T. (2021). A quantitative evaluation of the issue of drought definition: a source of disagreement in future drought assessments. Environmental Research Letters 16 (10) e104001. 10.1088/1748-9326/ac2348.
Tramberend, S. , Burtscher, R. , Burek, P. , Kahil, T. , Fischer, G., Mochizuki, J. , Greve, P., Kimwaga, R., Nyenje, P., Ondiek, R., Nakawuka, P., Hyandye, C., Sibomana, C., Luoga, H.P., Matano, A.S., Langan, S. , & Wada, Y. (2021). Co-development of East African regional water scenarios for 2050. One Earth 4 (3) 434-447. 10.1016/j.oneear.2021.02.012.
Long, D., Yang, W., Scanlon, B.R., Zhao, J., Liu, D., Burek, P. , Pan, Y., You, L., & Wada, Y. (2020). South-to-North Water Diversion stabilizing Beijing’s groundwater levels. Nature Communications 11 (1) 10.1038/s41467-020-17428-6.
Greve, P., Burek, P. , & Wada, Y. (2020). Using the Budyko Framework for Calibrating a Global Hydrological Model. Water Resources Research 56 (6) 10.1029/2019WR026280.
Wang, M., M. Strokal, P. Burek, C. Kroeze, L. Ma and A. B. G. Janssen (2019). “Excess nutrient loads to Lake Taihu: Opportunities for nutrient reduction.” Science of the Total Environment 664: 865-873.
Wang, M., T. Tang, P. Burek, P. Havlík, T. Krisztin, C. Kroeze, D. Leclère, M. Strokal, Y. Wada, Y. Wang and S. Langan (2019). “Increasing nitrogen export to sea: A scenario analysis for the Indus River.” Science of The Total Environment: 133629.
He, X., Feng, K., Li, X., Craft, A., Wada, Y. , Burek, P. , Wood, E., & Sheffield, J. (2019). Solar and wind energy enhances drought resilience and groundwater sustainability. Nature Communications 10 e4893. 10.1038/s41467-019-12810-5.
Additional selected publications¶
Burek, P., Y. Satoh, G. Fischer, M. T. Kahil, A. Scherzer, S. Tramberend, L. F. Nava, Y. Wada, S. Eisner, M. Flörke, N. Hanasaki, P. Magnuszewski, B. Cosgrove, D. Wiberg and A. P. D. W. Bill Cosgrove (2016). Water Futures and Solution - Fast Track Initiative (Final Report). IIASA, Laxenburg, Austria.
Greve, P., L. Gudmundsson, B. Orlowsky and S. I. Seneviratne (2016). “A two-parameter Budyko function to represent conditions under which evapotranspiration exceeds precipitation.” Hydrology and Earth System Sciences 20(6): 2195-2205.
Kahil, M. T., S. Parkinson, Y. Satoh, P. Greve, P. Burek, T. I. E. Veldkamp, R. Burtscher, E. Byers, N. Djilali, G. Fischer, V. Krey, S. Langan, K. Riahi, S. Tramberend and Y. Wada (2018). “A Continental-Scale Hydroeconomic Model for Integrating Water-Energy-Land Nexus Solutions.” Water Resources Research 54(10): 7511-7533.
Satoh, Y., T. Kahil, E. Byers, P. Burek, G. Fischer, S. Tramberend, P. Greve, M. Flörke, S. Eisner, N. Hanasaki, P. Magnuszewski, L. F. Nava, W. Cosgrove, S. Langan and Y. Wada (2017). “Multi-model and multi-scenario assessments of Asian water futures: The Water Futures and Solutions (WFaS) initiative.” Earth’s Future 5(7): 823-852.
Tang, T., M. Strokal, M. T. H. van Vliet, P. Seuntjens, P. Burek, C. Kroeze, S. Langan and Y. Wada (2019). “Bridging global, basin and local-scale water quality modeling towards enhancing water quality management worldwide.” Current Opinion in Environmental Sustainability 36: 39-48.
Tramberend, S., R. Burtscher, P. Burek, T. Kahil, G. Fischer, J. Mochizuki, Y. Wada, R. Kimwaga, P. Nyenje, R. Ondiek, N. Prossie, C. Hyandye, C. Sibomana and S. Langan (2019). East Africa Future Water Scenarios to 2050. IIASA Research Report. Laxenburg, Austria, IIASA.
Vinca, A., S. Parkinson, E. Byers, P. Burek, Z. Khan, V. Krey, F. A. Diuana, Y. Wang, A. Köberle, I. Staffel, S. Pfenninger, A. Muhammad, A. Rowe, R. Schaeffer, N. Rao, Y. Wada, N. Djilali and K. Riahi (2019). The Nexus Solutions Tool (NEST): An open platform for optimizing multi-scale energy-water-land system transformations.
Wada, Y., M. Flörke, N. Hanasaki, S. Eisner, G. Fischer, S. Tramberend, Y. Satoh, M. T. H. van Vliet, P. Yillia, C. Ringler, P. Burek and D. Wiberg (2016). “Modeling global water use for the 21st century: the Water Futures and Solutions (WFaS) initiative and its approaches.” Geoscientific Model Development 9(1): 175-222.
Wada, Y., T. Gleeson and L. Esnault (2014). “Wedge approach to water stress.” Nature Geosci 7(9): 615-617.
Github Version History¶
Note
Kfrost = np.where(self.var.Tavg < 0, 0.08, self.var.Kfrost) fixed the way Thornthwaith ET is calculated and ThermalIndex is readmeteo fixed calculation of snow evaporation , not doing it twice
fixed output for monthly, yearly when precipitation unit is “second since” in timestep.py
move read thermalindex for Thornwaith evaporation to readmeteo insted evapoPot
added output for soil moisture fraction theta in landcover.py
- added in [options]
usepySnowClim -> if pySnowClim should be used
stopaftersnow -> only runs till snow (no discharge)
added section [pySnowclim]
changed self.var.Qair to either huss or rhs (instead qair for both)
- in read_meteo
read Tdew if SnowClim is used and Tdew is available
if snowClim then cacluate always evapoPot (meteo files are read anyway)
calculate missing meteo variables in evapoPot.py if pySnowClim is used
- in Snow-frost.py
added SnowClim change from https://github.com/aranhax/CWatM/tree/pySnowclim_coupling
replace metpy lib with own calculation
put additional libraries from SnowClim only if SnowClim is used (with importlib)
added documentation of function as numpydoc to all modules checked for pep8 waterdemand is shortened
Wastewater, command areas, and source-sector abstraction fractions
changed the ouput of checks (for run_cwatm.py settings.ini -c)
changed the output of checks if you run_cwatm.py settings.ini -c
added some more functionality to checks
added: put settings.fuile and list of inputfiles in metadata of discharge netcdf changed: made output of checks .csv compatible and put dates of inputs in
Fix error in load_reservoirs_from_excel when trying to update an existing reservoir without specifiying the reservoir type.
deleted all variable info in hydro files -> will be added later again added a yaml in github/workflow to create an actual version file with github hash added some more pytests
some fix to run test one after the other in data_handling.py
move /toolkit/pytesting to /pytest
checked soildepth calculation
bugfix for ldd.nc (model was sometimes not working when using a ldd.nc instead of ldd.map)
new wetlands routine in reaservoirs
metaxml now always read in from model folder cwatm
pytest checked and added some tests
check that soil water content is >=0
evaporationPot pet_modus=4 no longer needs PSurf, and loads dem pet_modus=5 loads latitude readmeteo allows for PET_modus not to be in the settings file (backwards compatible) soil corrects multiply to divide for ET_crop_Irr_paddy_fraccrop
fixed: ETpot approach Priestly added: precipitation_sn as variable: = precipitation + snow correction with snow factor
if a reservoir from Excel is not in the mask map extent, skip this reservoir-> import if you only want to run a subbasin
added messages if lake/res in excel is not in map extent
added values for added lakes (from excel) for initial values
new reservoir coordinates are checked before
moved from waterdemand to reservoir
added reservoirs to Excel
changed water transfer with different rulesets
2024¶
-Crop-specific transpiration and the a/p ratio have been updated. -new output variables to allow for monthtot and annualtot outputs and comparison with other products -ET_crop_Irr_# -ET_crop_nonIrr_# -ET_crop_Irr_fraccrop_# -ET_crop_nonIrr_fraccrop_# -irr_crop_#
Added a few more authors
Update options for crop transpiration disaggregation
update_modflowpreprocess
Update wastewater extensive threshold
Revert “update_modflowpreprocess”
This reverts commit b4670111fcf83a839b6962eb7963ee131cdf3470. * Revert “update_modflowpreprocess” This reverts commit b4670111fcf83a839b6962eb7963ee131cdf3470. * Revert “Update wastewater extensive threshold” This reverts commit 9d476fc9ef8351009af1f58a6bc95eecedaee33a. * update extensive treatment thershold
Fixes that clarify reading the observations file dates should be dd/mm/yyyy
For numpy2, np.nan replaces np.NaN
-runpy.sh changed from backwards to forward slashes -waterBodyBuffer defined even without water demand to allow for lakeResStorage_buffer variable output
-Resolved syntax messages -Corrected fossil water component in Water circles -Commented settings_calibration.txt
fix found while running the Tisza 1 min model Co-Authored-By: mategyorgy <165912677+mategyorgy@users.noreply.github.com>
included the necessary option reportOldTss = True
removed necessary “lobith” heading title in the second column for observations: any headers for the observation file will do, as the first row is no longer read.
updated dates in lobith2006
EvapoChannel in CWatM has bee changed to unit Metres from unit M3. This is the associated Watercycle update.
Puts the value of lakeResStorage into all cells covered by the waterbody
Crop and reservoir updates
Reservoir transfers are now input with 366-day schedules. The previous version of a static daily transfer has been deprecated. Reservoir transfers, inwards or outwards, are activated when reservoir_transfers = True in the text settings file. Choose the waterbody ID of the giving and receiving reservoirs and the amount, either as a fraction of live storage (values ≤ 1) or in cubic metres (values > 1). Waterbody ID 0 represents the infinite outside source/sink. Outward transfers are added to industrial demand/use. Reservoir transfers occur daily, with Giving reservoirs transferring water to associated Receiving reservoirs. The amount of water transferred is determined by the associated fraction of live storage of the Giving reservoir, and the available space in the Receiving reservoir. If the Giving reservoir ID is 0 (Representing an outside source/sink), the water amount refers to the Receiving reservoir. Reservoirs can both receive and give to several reservoirs, and transfers are executed in the order they appear in the Excel sheet.
readmeteo/datahandling: cleaned the reading of meteomaps -> put a lot of information gathering in the initial instead of dynamic Put it a way of asynchr loading of meteo data (but outcommented) because it is not working
Bugfix: EvapWaterBodyM had some missing values. If for some reason the water fraction is 0 but the cell is assigned to a lake/res then a missing values can happen
Instead of the last day of a period, the first day of a period is taken e.g. 1/2/2023 instead of 28/2/2023 Bugfix for EvapWaterBodyM and totalET_WB. EvapWaterBodyM had some missing values, because in same cases the fraction of water = 0 but it the cell is classified as a lake.
Instead of the last day of a period, the first day of a period is taken e.g. 1/2/2023 instead of 28/2/2023 Bugfix for EvapWaterBodyM and totalET_WB. EvapWaterBodyM had some missing values, because in same cases the fraction of water = 0 but it the cell is classified as a lake.
Instead of the pcraster tss default out put for timeseries is now a .csv format with real date If you want to use th old output OPTION: reportOldTss = False - Changed unit for netcdf for month and year. Pandas does not recognize “Month since …”. So instead of month it is “”Day since …” with the first day of a month (or year) - Removed from OPTION: (now default)
writeNetcdfStack = True, reportMap = True, reportTss = True
save netcdf only the valid cells in Option (faster save and load for split global run)
netcdfasindex = True - If GitPython is installed as a library - the git version is recorded in .nc and .csv - Snow: Snowcover fraction of each cell can be output: SnowFraction
Bugfix: totalET_WB (total act evapotrans + evapo from rivers and lakes/res) was wrongly computed) , now fixed (hopefully)
EvapoChannel was in unit [m3] before-> now changed to [m] (as all the other evaporation terms)
EvapWaterBodyM is now the evaporation of a lake/reservoir for each gridcell (before it was the summed up evaporation of a lake at the outlet point)
add option maps_cut_individually
Although using a convolute of different spatial extent and then correcting this in CWatM is prone to errors, I hope this additional line could help prevent unnoticed errors when using NC inputs that have different spatial extents.
to use self.var.cropKC also in irrigation.py
cwatm_initial.py: a evaporation initial is included: loads 12 maps of kc factors and 12 maps for interception for each vegetation Interception+ evaporation: major change: instead of reading maps every 10 days - 12 maps are loaded in the initial part for evaporation kc-crops in terception and daily kc and interception is interpolated from monthly values soil: remove reading dz_rel (relative elevation) and put it into snow_frost.py readmeteo: possibility to use radiation for snow with EMO1 maps snow_frost: instead normal distribution for elevation it is using now 5 layers of dz_rel. Possibility to use lasperate maps, to use radiation also with EMO1 meteo maps capillarrise.py: changed coding of capillar rise to make it shorter (old code is still in but outcommented) Groundwater: put self.var.nonFossilGroundwaterAbs = globals.inZero in last line in initial Timestep.ini: added a 30 day counter datahandling: added reading12monthnetcdf. Changed init file reading - no smaller parts of a init file could be read in i.e only the Danube from global init file
Start including daily crop coefficients
If the crop inputs are given in days, we pre-calculate the annual cycle of crop coefficients following the standard FAO/AEZ crop coefficient timeseries of flat - linear increase - flat - linear decrease
Waterbody buffers are no longer also used as command areas – if no command area is given, command areas are set to zero. Abstractions from within waterbody buffers happen before abstractions from within command areas.
Glaciers with static land cover
reading land cover year in case static land is used for other land classes
Zonal and lift updates
Crops are planted in the remaining available space, even if the space demand exceeds the available land. Previously, if the demand was greater than availability, the demand was discarded. Now, the demand is not discarded but plants up to the remaining available land.
Watercycle updates related to zonal and lift corrections
Update zonal abstractions to restrict channel zonal to potential surface water abstractions. Lift abstractions and allocations corrected similar to the zonal abstractions.
fixing bugs in zonal_abstraction water demand
Notebook to explore land and crop areas through time and related water variables
conversion of all zone values from m to m3 and back to m for calculations
fix calculation of cell_abstractions
Lift abstractions are activated in the Abstractions circle if Lift_Irrigation (or Lift_Domestic) is included in the outputs.
Four land cover-specific crop correction factors (initialised with 1) are multiplied with the original crop_correct factor. BareSoilEvap, applicable to all land classes, is factored only by the original crop_correct. New settings include crop_correct_forest = #.# crop_correct_grassland = #.# crop_correct_irrpaddy = #.# crop_correct_irrnonpaddy = #.#
timestep.py to use meteo maps with seconds as unit (SMHI datasets) landcover.py: checked that glacier area never bigger than 1 datahandling.py: SHMI meteo data comes with lat/lon X/Y -> using X/Y coordinates and not lat/lon snow-frost.py: using glacier settings from [glaciers] in settingsfile
timestep.py to use meteo maps with seconds as unit (SMHI datasets) landcover.py: checked that glacier area never bigger than 1 datahandling.py: SHMI meteo data comes with lat/lon X/Y -> using X/Y coordinates and not lat/lon snow-frost.py: using glacier settings from [glaciers] in settingsfile
2023¶
New settings variable: scale_domestic_demand Multiplies domestic demand and potential consumption Similar to the previously introduced settings variable, scale_industrial_demand
Update unit of prec to kg m-2 s-1 = mm/s in the variable documentation.
Creating new variables - Rain_times_fracPaddy - Rain_times_fracNonPaddy
If fossil water abstractions are allowed, the running sum of variable unmetDemand (“fossil water”) is removed from total water storage (tws). This running sum of satisfied unmetDemand is now an intialisation variable, allowing for separate runs to maintain a tws change analysis with fossil water.
Percolation is prevented under frozen soils.
Open water evap. no longer includes modflow capillary rise
documentation included
.idea folder deleted and added to gitignore
Open water evap. no longer includes modflow capillary rise
documentation included
.idea folder deleted and added to gitignore
tws (total water storage) subtracts the running sum of fossil water withdrawals throughout the simulation
cleaning up notebook copies
Revised definition of reservoir_release and reservoir_supply variables to circunvent overwriting problem
- Change: If you run simulations before glaciermelt netcdf maps starts, the day of the year (doy)of first year is used
# added an option extendback to readmeteodata in datahandling.py - if True doy is used (only for glacier maps at the moment)
Change: If you run simulations before glaciermelt netcdf maps starts, the day of the year (doy)of first year is used # added an option extendback to def readmeteodata in datahandling.py and readmeteo.py - if True doy is used (only for glacier maps at the moment)
Option to include an Excel sheet “Reservoirs_supply” that holds the maximum daily fraction of live storage to satisfy command area demands. If this sheet is not supplied, the sheet “Reservoirs_downstream” will be copied.
-> changes in data_handling - function loadsetclone mixed up x and y coordinate Changed glacier handling in settingsfile - only glacier on/off in option. Other glacier control in [Glacier] ->changes in snow_frost, runoff_concentration, landcover, readmeteo
correction writing error: self.var.only_radiation instead self.var.only_radition
corrected only_radiation in readmeteo
snowmelt_radiation = True in [SNOW] default is False (if not mentioned in the settingsfile) Changed: readmeteo and snow_frost
snowmelt_radiation = True in [SNOW] default is False (if not mentioned in the settingsfile) Changed: readmeteo and snow_frost
If not only_radiation calc_evaporation = False and includeGlaciers = False
change snow_frost.py - using rsds and rsdl meteorological input data to calculate snow melt from radiation
change readmeteo.py - loading always rsds and rsdl data, not only if ETpot has to be calculated
changed t5.cpp and globals.py to be used with MacOs (t5.cpp has to be compiled first)
change snow_frost.py - using rsds and rsdl meteorological input data to calculate snow melt from radiation
change readmeteo.py - loading always rsds and rsdl data, not only if ETpot has to be calculated
changed t5.cpp and globals.py to be used with MacOs (t5.cpp has to be compiled fist)
self.var.includeIndusDomesDemand = True only if checkOption(‘includeWaterDemand’) and ‘includeIndusDomesDemand’ not in Options nor set to True in Options. This was creating a scenario where CWatM was calling self.environmental_need.dynamic() but not self.environmental_need.initial()
Allows one to set the initial groundwater storage as a value/map [metres] by adding storGroundwater = value or path to map in the settings file within the [GROUNDWATER] section. Note that this is only used when load_initial = False, and relevant for the linear reservoir representation of groundwater (non-modflow).
Allows Header and Column to be removed from the calibration settings file
total water storage (tws) now subtracts unmetDemand (fossil water), only relevant when limitAbstraction = False. This streamlines looking at changes in tws, such as comparisons with GRACE.
/ instead of \ in the folder structure accommodates Mac
If the system is Darwin, t5_mac.so (a compiled t5.cpp) is used.
On a mac, this was created with the following two commands g++ -c -fPICÂ t5.cpp -o t5.o g++ -shared -o t5.so t5.o
If a excel sheet for reservoir is used with ID of lakes but this id are not in the basin it crashed it is now checking if the id can be found in the excel
2 fixes for runtime warning : irrigation and waterdemand: fixed division by zero
initcondition: initmaps are stored in self.var.initmap for all runs during calibration line 293 was outcommented: self.var.initmap = {}
Change run_cwatm.py in the mainfolder: added import mainwarm to be used by calibration Waterdemand.py: line 1908ff
self.var.reservoir_releases[dateVar[‘doy’]-1] -> put in dateVar[‘doy’]-1 -> it runs from 0-365 and works in leap year
np.put(resStorage_maxFracForIrrigation, self.var.decompress_LR, resStorage_maxFracForIrrigationC) -> to have decompressed data
- lakes_reservoirs.py: line 600
self.var.reservoir_releases[dateVar[‘doy’]-1] -> dateVar[‘doy’]-1 -> from 0 to 365
Scaling industrial demand through the settings file Updates to the selfvar Excel
change readnetcdf2 function for glaciers
glacier input data for a basin simulation can either be given as global data which has to be cut to basin extent or glacier map that equals basin extent and does not need to be cut
Reservoir operations are overridden if reservoir levels are above the flood limit
Reservoir operations are overridden if reservoir levels are above the flood limit
-Calibration settings simplified -Prepared to read all columns of observations csv
-Calibration (single) included in Toolkit -Watercycle exercise updated
Removing ElevationMin and ElevationMean from snow_frost, currently not used
snow-frost: corrected method for snow in higher altitude
-Command areas and buffer area developments have been merged -If buffer areas overlap, ensures that the reservoir is inside its own command area
Correct to make reservoirs satisfy demand up to 3% of live storage if not included in the Excel sheet.
With reservoir_releases_in_Excel_settings = True, inside Excel_settings_file, the sheet Reservoirs_downstream, dictates the daily fractional release of live storage for reservoirs for downstream and demands (for now).
mainly publication.rst
-Update to allow for negative command areas (set to 0) -Removed deprecated ‘basin_transfers_daily_operations’ option -Updated variable units Excel -Updated Reservoir notebook for abstraction
-Updates to Notebooks, including new variables -Lost fossil water development can now be removed with the option fossil_water_treated_normally = True in OPTIONS
Add an initial pit latrines version & fix bugs with reservoir type 4 in wastewater module
Moving includeWastewaterPits out of includeWaterDemand, as used in landcoverType, potentially without water demand
Always create self.var.lakeResInflowM_2 and self.var.lakeResOutflowM_2
introduce pit latrines
-SnowMelt, IceMelt, & iceEvap are new variables -Small documentation changes
Introducing new wastewater features and a seawater desalination feature
-Toolkit includes new and updated notebooks -sector-, source- GW abstractions included for settings limitabstraction = False, Modflow = False
-thetar/thetas/ksat_fact -Ice and snow melt separated for outputs
Fixed minor bugs emerged in win testing, added more feedback to the user. Updated the readme.txt
-Watercycles and NetCDF Notebooks in Toolkit -Initialising variables ———————————————
Including initialization variables to allow for such outputs in case water demand is not activated
Bug fix in irrigation agents
Initialize variables
Remove deprecated basin transfers through NetCDF
Allow usability with Reservoir and lakes turned off
Change default behaviour of restricted reservoirs and lakes
Updates wastewater * fix bug in wastewater to reservoirs. * shift to an excel settings for wastewater. * allow many-to-many relationship between WWTP and reservoirs * add capacity to reclaim wastewater using command areas and sector-source abstraction fraction. * introduce seawater desalination features - coupled with sector-source abstraction fraction.
-Updates to tutorials -Import flopy and xmipy only with modflow -Removed xlrd and openpyxl
Crop disaggregation updates and organising
irr_crop[c] and Yield_(non)Irr[c] updated
growth stage length used instead of end month of growth stage
another complex solver included
updates to list_all_variables.py to catch variables in evaporation.py
Old commits¶
Changes Glaciers & Downscaling Interpolation Method
Deprecation warnings for string syntax have been relaxed Crop-specific evaporation’s bare soil evaporation contribution has been corrected
kron option replacing peter for interpolation pytesting
the bilinear interpolation method always needs to set a buffer around the maskmap to get consistent interpolation results. This works fine as long as the MaskMap (the modelled extent) is smaller than the meteo input. If the MaskMap includes the boundary of the meteo input, no data for the buffer exists. In this case, an artifical buffer needs to be constructed by repeating the same row/column. This is a rare occasion if you use global input data sets, but can occur. To know if the model extent (MaskMap) reaches the boundary of the meteo input set, the readmeteodata() function needs to output this information, which is then used in the downscaling2() function. The disadvantage is that you have an additional parameter that readmeteodata() needs to output
Add peter’s interpolation method to the downscaling2 function, so that the user can choose between ‘spline’ (currently used for CWatM public repo), ‘bilinear’ downscaling implemented by Sarah which does not depend on extent of model domain or ‘peter’ which is Peter’s new interpolation function. Probably we should rename ‘peter’ but I thought Peter might have a name idea for it.
include an option to include only melt on glaciers and not rain on glaciers for runs with glaciers, to assess the fraction of glacier melt vs rain on glacier in runoff using two different simulations. Another use case for this option is if you only have a single input data set for glacier runoff that does not differentiate between melt and rain or does only contain glacier melt.
include an option to include only melt on glaciers and not rain on glaciers for runs with glaciers, to assess the fraction of glacier melt vs rain on glacier in runoff using two different simulations. Another use case for this option is if you only have a single input data set for glacier runoff that does not differentiate between melt and rain or does only contain glacier melt.
Some bug fixes, smaller changes in
Fuse
Improvements to the crop-specific distribution of transpiration and irrigation
Including lifts into abstraction fractions
Allows reservoir transfers to be in m3 or fraction of live storage
run_cwatm.py cwatm_dynamic.py cwatm_initial.py
routing_kinematic.py water_demand.py water_quality1.py
evaporationPot.py: introduced a new calculation with less variables to you new dataset EMO (JRC) readmeteo.py: introduced a new calculation with less variables to you new dataset EMO (JRC)
some bug fixes in output.py timestep.py data_handling.py
-Updated List_all_variables.py -readme included in variable_documentation -Updated variable names, descriptions, and units -General organising
Separation of groundwater modules with/out MODFLOW
-ðŸžZonal abstractions option for limitAbstraction=False - General organising
Reservoir transfers
Wastewater into reservoir-transfers
fix two mistakes in implementation of interpolation method option
the default interpolation option is the old one in CWatM using spline interpolation. Instead a bilinear interpolation can now be used. The advantage is that values of gridcells will be the same even if mask map has a different extent.
-self.var.waterBodyTyp and self.var.resYear are created always, not only for modflow or includeType4 -organising, commenting, and including PEP spacing and line length coding conventions
Make self.var.resYear available for cases where res type 4 is used.
CWatM now plays -without includeWastewater in the settings file, and -without type 4 waterbodies
Fix readmeteo and include pytesting
Wastewater no irrigation restriction
Allows for settings file not to include options basin_transfers_daily_operations and reservoir_transfers
Basin transfers, inwards or outwards, can be performed using the reservoir transfers development, choosing waterbody ID 0 for the outside source/sink. Outwards transfers are added to industrial demand/use.
Giving reservoirs transfer water to associated Receiving reservoirs, daily as the associated fraction of live storage of the Giving reservoir, depending on available space in the Receiving reservoir. If the giving reservoir ID is 0 (Ocean), the fraction of live storage of the Receiving reservoir is used instead. Reservoirs can receive or give to several reservoirs.
reservoir transfers = True activates the Excel reservoir transfers. Transfers are performed in the order they are in the Excel sheet.
Basin transfers are first applied with the daily rule through the netCDF if basin_transfers_daily_operations = True.
This reverts commit 9f7149506edac29eb29a4976aff5bd91c30ed0c9.
fix mistake in updated snow_frost.py
add option to save git commit in output files
Rounding errors occurred when mask is given as a .map, then the x and y coordinates should not be rounded, otherwise ldd.nc might be interpreted wrong (this happened for the Fraser river. I am not sure whether this works on all basins
update readmeteo.py to initialize glacier melt and precipitation
change, so that glacier area can be excluded from modelling in CWatM, glacier area is first subtracted from grassland fraction
add option to include glacier runoff. Glacier runoff is added to runoff in each grid cell and if runoff concentration is enabled runoff of glaciers is concentrated.
this include changes to - snow redistribution procedure in CWatM - option to partition precipitation between two thresholds relatively between snow and rain - option to make seasonalsnowmelt coefficient work for southern hemisphere - options to exclude area of glaciers from modelling
-Modflow thickness can now be a map -Organising of water_demand module
-Transfer water between reservoirs using the Excel sheet reservoir_transfers in cwatm_settings.xlsx. -Designate the giver and receiver waterBodyIDs, and designate a maximum daily fraction of live storage (giver) to be sent. This is sent as long as there is space in the receiver reservoir. -Activate with option reservoir_transfers in the settings.
Mikhail
-relaxSWagent and relaxGWagent are created in the init file when a source-specific agent request is present and relax is activated -irrigation_agent_GW_request_month_m3 replaces irrigation_agent_GW_withdrawal_request_month_m3 -irrigation_agent_SW_request_month_m3 replaces irrigation_agent_SW_withdrawal_request_month_m3 -domestic_agent_SW_request_month_m3 replaces domestic_agent_GW_withdrawal_request_month_m3 -domestic_agent_GW_request_month_m3 replaces domestic_agent_GW_withdrawal_request_month_m3
-Option relax_abstraction_fraction_initial -Fixes allowing sectorSourceAbstractionFractions=False -Option use_complex_solver_for_modflow -Safety threshold limiting pumping at 2% storage. -Bugfix allows only active reservoirs to satisfy command area demands. -Leakage can occur without canals – command areas without canals experience leakage throughout the command area. -Option activate_domestic_agents -Option activate_irrigation_agents -Option relax_irrigation_agents -Settings domestic_agent_GW_withdrawal_request_month_m3 REPLACES gw_agentsUrban_month_m3 -Settings domestic_agent_SW_withdrawal_request_month_m3 REPLACES sw_agentsUrban_month_m3 -Settings irrigation_agent_GW_withdrawal_request_month_m3 REPLACES gw_agents_month_m3 -Settings irrigation_agent_SW_withdrawal_request_month_m3 REPLACES sw_agents_month_m3 -self.var.swAbstractionFraction_domestic REPLACES self.var.swAbstractionFraction_nonIrr
Create maps with crop names in the title Bug fix: Initialize irr_Paddy_month=0 for any day of the month
-Groundwater: Conductivity and specific yield as maps -Irrigation: Increase by a fraction -Relax automatic groundwater abstractions over command areas
Updates related to reservoirs, crops, source- and sector-specific abstraction fractions, and agents
Add: Modflow6.2.2 for Linux and Win 64 Add: preprocessing_forModFlow
create a basin.tif (and a ups.tif) to be used as maskmap. Because some users struggle to do their own maskmap
Fix: some of the issues from Jens
fix: remove steady state modflow in readmeteo, dynamics, data handling add: check if modflow6 directory is valid (does not check for files)
includeIndusDomesDemand True as Standard Deleted: includeIndusDomesDemand, ModFlow_modelV5.py
library panda,xlrd, openpyxl loaded with importlib only if includeCrops = True
Groundwater - library flopy, xmipy loaded with importlib only if modflow_coupling = True - modflow_coupling = True back to OPTIONs - include verbose in Groundwater_Modflow to make run not so noisy
General - new layout for documentation - output during run goes in same line
include libraries flopy, xmipy via importlib (only use if modflow is used)
not tested with pytest but runburgenland
Crops - include libraries panndas,xlrd, openpyxl via importlib (only use if crop specific version is used)
General - less talkaktive (less lines of text in the beginning) - included new methods for new calibration (meteo data in memory)
Luca cwatm modflow6
Modifications on soil.py (prefFlow and subperc3toGW) and on transient.py (now on compute capillar_index from gw_outflow, and recharge is applied only on unsaturated ModFlow cells.
Keep modflow cells if more than 50% of the area is inside the cwatm mask
Updates to Modflow-CWatM conversion
Cleaning the code Making the code more general in case settings file are different Some documentation
Including leakage and pumping
add: pytest groundwater modflow test for Rhine
add: pytest groundwater modflow test for Rhine
try 8
try 7
try 5
try 4
try 3
try 2
add: .travis.yml, codecov and pytest xml docu
chg: uplad tutorial exercise 1
Including missing ‘.var’ for irrPaddyDemand and irrNonpaddyDemand. Allows for limitAbstraction = True.
add: pytest checks error handling
Fix: some waterbalance routines in each module
Add: dis_outlet as discharge only at the outlet points
Add: dis_outlet as discharge only at the outlet points
add print hello world
chg: docu/sourcecode.rst changed the graphic to display the modules
Add: water_demand.py in water_demand (moved from __init__) CHG: change file encoding to uft-8 again
improve error handling when file does exist but another error was raised
Add: import GNU to run_cwatm
Add: import GNU to run_cwatm
Split water demand
Updates for channel abstraction and groundwater module
self.var restructure
Simplify run_cwatm.py
all variables to model.var
2: Milly and Dunne method 3: Yang et al. Penman Montheith correction method
-Updated decomress to decompress2 -ammendments to allow for water demand=False, Moflow=True.
Changing initial values from 0 to globals.inZero Changing variable Pumping_daily to pumping
usingAllocSegments will eventually be removed. For now, allowing it to be removed from settings file.
new: put documentation for docu in docu chg: changed pytesting fix: fixed find closest option if option is misspelled
self.var.sumlakeResOutflow was previously not including outflow from reservoirs
‘sometimes_closed’ feature has been removed.
make cwatm installable from pip and then runnable as a command-line utility
fix: some date problems using 360 days
fix: included metanetcdf.xml in cwatm folder chk: in case there is not metanetcdf at the location defined in settingsfile -> look into cwatm folder fix; include metaxml into setu
soildepth[0] = 0.05m
Once MODFLOW has run, reset the summed up self.var.modflowPumpingM
Groundwater demand is now distributed to all underlying MODFLOW cells, and the package pyproj is no longer necessary.
Allocation segments has been turned into using_reservoir_command_areas and significantly changed, and is now included in the settings file in [OPTIONS]. Some updates to use MODFLOW for groundwater demand.
Previously, the code included landcover commands as an experiment related to the FUSE project that have been removed.
The alternative option for setting root fractions has been cleaned up. If rootFrac in [OPTIONS] is set to False, then the root distribution in a soil layer is equal to its relative contribution to the soil column. For example, if soil layer 1 is 10% of the soil column, then 10% of the roots are in soil layer 1. In the settings file, rootFrac has been moved into the [OPTIONS] section.
act_gw was previously double counting
soildepth_modflow is no longer factored by the weight used for recharge.
Groundwater now begins at the bottom of the soil layers, instead of at the surface.
Channel abstractions were previously potentially too large as the lake and reservoir abstractions were also being removed.
self.var.act_SurfaceWaterAbstract includes channel abstractions as well as abstractions from lakes and reservoirs, and we must, therefore, remove these lake and reservoir abstractions before subtracting from the channel.
In waterdemand.py: self.var.act_SurfaceWaterAbstract = self.var.act_SurfaceWaterAbstract + self.var.act_bigLakeResAbst + self.var.act_smallLakeResAbst
The abstractions from lakes and reservoirs have already been dealt with by removing these amounts from their storages in the waterdemand module. The water abstractions from the channel are thus the surface water abstractions subtract the lake and reservoir abstractions.
Add: CWatM can use different calendar as meteo input e.g 360 days Chg: improved setting mask in global dataset and meteoset Todo: meteo datasets should have days from , make this flexible to minutes, …
chg: calculting the position of the area map inside meteomaps, global data sets
Chg: Changed cwatm3.py and globals.py to run with pytest
Chg: Changed cwatm3.py and globals.py to run with pytest
Chg: Changed some internal structure to make it run with pytest.ini (cwatm3.py, output.py, globals.py, datahandling.py, etc.) New: A version which can be tested with a pytest framework
# Conflicts # source_py3/management_modules/data_handling.py
For the option usingAllocSegments, cells not within allocation zones are now to be input as <=0. Previously, the arbitrary number 65535 was used.
Negative values for unmet_div_ww are now avoided where unmetDemand exceeds act_totalWaterWithdrawal.
For the option not LimitAbstraction, act_irrConsumption[2] and [3] are now updated.
Previously, act_irrConsumption[2] and [3] were initialized at 0 and not updated.
Further details
In the Soil module
# availWaterInfiltration = water net from precipitation (- soil - interception - snow + snowmelt) + water for irrigation
availWaterInfiltration = availWaterInfiltration + self.var.act_irrConsumption[No]
Since act_irrConsumption[No] was maintained at 0, the irrigation water was being withdrawn, but this water was not updating the available water for infiltration. This resulted in repeated near-maximum withdrawals while the soil water was only updated with water net from precipitation.
Fix: all valid ldd values included
This reverts commit 76f7978d4576d2f1f52e3a90ef9b51d3664de002.
fix, added colon
Update
Moving features into Settings file.
update
attempt 3: update personal fork
rootFraction was causing challenges when the third layer was made to be the minimum of 0.05
This reverts commit 06579a4c5f28cf5a2c55511cf39108fa93bbc71b.
This reverts commit ef22dc4eb16486242eb0d52b53ae54752108fb80.
This reverts commit 870f805e69770fbb1a2f81a8e29f8267f65f96ab.
This reverts commit 178e73c005783a6332de120fbd5e1fafce27b8e0.
Settings file Water demand
Allows suppressing downstream reservoir discharge during specific months.
This prevents reservoir water from being released downstream during specific months, here set as after October and before June. Settings files similarly edited.
A test commit, editing the document including comments and parameter values.
Add: output as catchment sum or avg Add: douc is updated
New: more checks to prevent white space in paths Fix: try to remove all compiled code
New: more checks to prevent whitespaces in pathes
allocSegments updated landcoverType TotalAvlWater updated.
chk data handling: saving netcdf with modflow resolution
chk: library for groundwater flopy only loaded when ModFlow is used
Fix: ldd with 1km reso was not working: changed kinematic, and kinematic_sub and lake_reservoirs Fix: read_meteo was not reading meteo
add: docu added to data.rst
chk: checks
add: cwatmexe.zip include rhine_basin.zip - a whole package now: executable cwatm + test case
Update evaporation.py
We maintaining from now on Python 3.7 version
Chg: Put the downscaling functions in fron of readmeteo: no longer internal functions of readmeteo Fix: Cleaned the code, removed not used functions Chg: Improved the documentation, especially the autodocu of source code
Add python: added a report command to report data as .map or .tif for debugging
New: replaced pcraster framework by own framework Removed folder pcraster2 New: added save conditions for warmstart -> you can add a 10d or 6m or 2y after the first date -> the initial data will be saved every 10d (or whatever number), or 6 month or 2 year
New: Building a executable .exe with Python 3 seems to work as well. Further testing -> 2019 an installation setup will be produced using cx_freeze and Inno setup to make an easy start on Windows (no Python background will be required for CWATM users)
Fix: fixed a bug in waterdemand - livestock was loaded every timestep
Waterdemand update
new flag: usemeteodownscaling in [meteo] for using meteo downscaling Fix: can now use rivernetwork as map or tif again (ldd.map) changes in initial and data_handling
added calibration tutorial, to be extended
new: using a cover map to put addition values in
Modified reading processes of water use data because data cover specific period. If data does not cover a year, first or end year is allocate.
Chg: output of tss from 3-d variable e.g actualET[1]
- chk: changed environmental flow (EF)settings file -
loading EF is now in water demand
chg: added the sum of ET_actual again
Comment an equivalent derivation of potential transpiration.
To develop including the effect of initiatives that reduce evaporation, such as mulching.
Changed waterbodies in large and small lakes and reservoirs
e.g using only meteo data set for the Rhine.
- Add: included irrigation efficiency and return flow from irrigation
- at the moment using a single map of irrigation efficiency, but
will be replaced by a map stack
small lakes
calc environmental flow
5 arcmin version
downscale 30min meteo dataset to 5min
Working on : water deamnd , not working at the moment
fix: looks for > 1e20 and -1e20 in each map and change these to standard zero value (default =0)
Add: maxtopwater in prg and settings.ini Fix: calibration routine
add: error handling for output maps
chg: soil especially paddy and non paddy irrigation bug: checked water balance
- chg: meteo maps do not have to be merge before -> stack of maps can
be used
add: inflow to a catchment (still to work on)
chk: a few more error handlings added
new: put in a lot of checks for the settingsfile e.g. check True and false (not mispelled like ture). Check timing, check output variables chk: a lot more error messages are given out if something is wrong chk: output netcdf time is calculate in advanced in order to reduce size of output netcdf -> data_handling line 789 sets it to this value Todo: landcover.ty and soil.py has been modified a lot, some further testing and cleaning of old unnecessary lines is needed
new: snow evaporation included new: Calibration routine added
fix: output as a time series without header with the option -h new: readme.md for github
change calc of arno beta
changed how arno beta is calculated
GNU v.3 license 6/4/2017 Laxenburg, Austria
fixed reading maskmap from rectangle
removed pcraster GIS commands
new output routine for time series
Budyko output.html
corrected bug in snow modules
corrected bug in init read/save module
WORKING on lakes/reservoirs
TODO: bug in reading maskmap from coordinates
Checks ok : soil , groundwater, routing, waterdemand Missing: reservoirs, sum up to catchments
Output on screen
Checked routing - working :)
soil, groundwater, waterdemand
snow frost