Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add functions for water demands #87

Open
4 tasks done
hboisgon opened this issue May 27, 2022 · 6 comments · May be fixed by #226
Open
4 tasks done

Add functions for water demands #87

hboisgon opened this issue May 27, 2022 · 6 comments · May be fixed by #226
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@hboisgon
Copy link
Contributor

hboisgon commented May 27, 2022

Add first implementation new water demands input data for the new water demand allocation module in Wflow.Jl.

TODOs:

  • setup_domestic_demand: reproject_like of existing domestic demands grids (for now grids from Wada and Europe)
  • setup_industry_demand: reproject_like of existing industry demands grids (for now grids from Wada)
  • setup_irrigation_demand from MIRCA for irrigated areas and crop factors from FAO (and other needed data)
  • prepare a allocation map (where to look for available for each cell, based on admin level and subbasin) --> same or different per type of demand? If the same create a separate function setup_allocation_areas. If different do it inside the small setup_ functions.
@hboisgon hboisgon added the enhancement New feature or request label May 27, 2022
@verseve
Copy link
Member

verseve commented Sep 22, 2022

Wflow.jl uses critical pressure heads (cm) for root water uptake reduction (Feddes): h1, h2, h3_h, h3_l and h4. Values for different crop types can be found in literature and in software packages like SWAP (e.g. https://edepot.wur.nl/222782) and HYDRUS.
For rice (paddy) I did find the following values: 100, 55, -160, -250, -16000 based on Singh (https://edepot.wur.nl/121640).

For irrigation areas in Wflow.jl two types are available: Paddy and NonPaddy. As Wflow.jl does not work with sub-grid land cover functionality this should be based on dominant land cover.

Root fraction with depth (root distribution) has been added to the SBM concept (rootfraction) of Wflow.jl, also for natural vegetation. A good starting point is "Global Vegetation Root Distribution for Land Modeling" of Zeng (2001) and references therein:
https://journals.ametsoc.org/view/journals/hydr/2/5/1525-7541_2001_002_0525_gvrdfl_2_0_co_2.xml

@markhegnauer
Copy link
Contributor

@verseve
Copy link
Member

verseve commented Nov 13, 2023

Required input data for water demand and allocation.

Sectors domestic, industry and livestock:

  • demand_gross (gross water demand) [mm Δt⁻¹].
  • demand_net (net water demand) [mm Δt⁻¹].

Paddy (paddy irrigated crops (i.e. rice)):

  • irrigation_areas (irrigation areas) [-].
  • irrigation_efficiency (irrigation efficiency) [-].
  • h_min (minimum required water depth in the irrigated rice field) [mm], (e.g. 20 mm was used for Brantas basin).
  • h_opt (optimal water depth in the irrigated rice fields) [mm], (e.g. 50 mm was used for Brantas basin).
  • h_max (water depth when rice field starts spilling water (overflow)) [mm], (e.g. 80 mm was used for Brantas basin).
  • kvfrac (multiplication factor applied to vertical hydraulic conductivity) [-]: most irrigated paddy soils are characterized by a layer with low permeability (plow sole), in the order ~5 mm/day.
  • thickness of soil layers may need to change depending on general vertical profile of an irrigated paddy soil.

Non-paddy (non-paddy irrigated crops):

  • irrigation_areas (irrigation areas) [-].
  • irrigation_efficiency (irrigation efficiency) [-].

Input for paddy, non-paddy and other vegetation:

  • kc (crop coefficient) [-], as (monthly climatology).
  • h1, h_2, h3_high, h3_low, h4 (critical pressure heads for root water uptake reduction) [cm], see also comment.
  • alpha_h1 (root water uptake reduction at h1) [-], either 0.0 or 1.0 (root water uptake not constrained during saturated conditions).
  • rootfraction (root fraction with depth) [-], see also comment, by default a homogeneous root distribution is assumed in Wflow.

Water allocation:

  • frac_sw_used (fraction surface water used) [-], we could follow the approach in this paper.
  • areas (allocation areas) [-], see also comment.
  • frac_sw_gw_extraction ratio between surface water extraction and groundwater extration (on country level?)

@verseve
Copy link
Member

verseve commented Nov 22, 2023

I think the variable frac_sw_used (frac_sw_abstraction is probably a better term) is sufficient for Wflow, the fraction groundwater used is then (1.0 - frac_sw_used). So, do we also need frac_sw_gw_extraction?

We could indeed base this on water use statistics (e.g. from FAO, often at country level), and condition this with a map of active/productive aquifers, similar to LISFLOOD. Or we could use for example the approach described in the paper mentioned in the comment above.

@JoostBuitink JoostBuitink linked a pull request Dec 8, 2023 that will close this issue
4 tasks
@JoostBuitink JoostBuitink modified the milestones: Q4, 2024 - high priority Jan 24, 2024
@verseve
Copy link
Member

verseve commented Mar 6, 2024

An approach to check if irrigation is required during a time step for irrigation areas is to use the crop factor valid for that time step and a crop factor threshold (e.g. a value of 0.2 for NonPaddy areas and a value of 0.75 for Paddy areas used by models like PCR-GLOBWB and CWATM).

As we do not use a crop factor climatology/ time series in Wflow for water demand, another more suitable approach is to use the leaf area index time series (climatology/forcing) for determining the growing season of irrigated crops. See also the following links for more detailed information Global Variability of Simulated and Observed Vegetation Growing Season, CRESCENDO and github code.

Not sure if we need to follow this approach completely in hydromt_wflow (perhaps Eq. 2 in Peano et al. is already sufficient), but a climatology map with a parameter that indicates whether crops are growing and irrigation can be applied would be very useful.
@JoostBuitink, @hboisgon and @dalmijn what do you think of this approach?

@JoostBuitink
Copy link
Collaborator

After a discussion with @verseve, we decided the following functionality to be added to the current PR:

  • If paddy fields are present in the model, update the soil layers in the wflow model (and thus also update the c parameter):
    • Use the following default values: [50, 100, 50, 200, 800, ]. This stays close to the default values ([100, 300, 800,]), but allows us to add a layer below the paddy fields (from 15 to 20 cm depth) where we can restrict the conductivity to ensure water stays in the top 15 cm.
    • For the layer from 15 to 20 cm depth, we restrict the vertical conductivity to ~5 mm/day, by setting the kvfrac for that specific layer. For all other layers, this parameter remains 1.
  • To determine when irrigation starts, we will the approach using LAI, since (1) we already use that data in our model setup, so we don't need to use yet another dataset, and (2) it makes sense to use the LAI as a measure when a crop starts growing. We add a layer to the staticmaps (irrigation_trigger or something) that essentially flags for each pixel and month whether irrigation can start.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants