Question about the high river discharge value

20 views
Skip to first unread message

Chuyang Liu

unread,
Nov 18, 2025, 12:35:38 AMNov 18
to Amanzi-ATS Users
Hi there,

Thanks again for the help with the meshing issues — after enforcing convexity I was able to run the model successfully.

After the spinup (phase 1 and phase 2), I tried to run the ATS transient model using the XML file generated by ats_input_spec. In this XML, the observations are defined as:

 '  <ParameterList name="observations" type="ParameterList">
    <ParameterList name="water_balance_computational_domain" type="ParameterList">
      <Parameter name="observation output filename" type="string" value="water_balance_computational_domain.csv"/>
      <Parameter name="delimiter" type="string" value=","/>
      <Parameter name="time units" type="string" value="d"/>
      <ParameterList name="observed quantities" type="ParameterList">
        <ParameterList name="net runoff [mol d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-water_flux"/>
          <Parameter name="region" type="string" value="external sides"/>
          <Parameter name="location name" type="string" value="face"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="direction normalized flux" type="bool" value="true"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="runoff only [mol d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-water_flux"/>
          <Parameter name="region" type="string" value="external sides"/>
          <Parameter name="location name" type="string" value="face"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <ParameterList name="modifier" type="ParameterList">
            <Parameter name="function type" type="string" value="standard math"/>
            <Parameter name="operator" type="string" value="positive"/>
            <Parameter name="amplitude" type="double" value="1.0"/>
            <Parameter name="shift" type="double" value="0.0"/>
          </ParameterList>
          <Parameter name="direction normalized flux" type="bool" value="true"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="runon only [mol d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-water_flux"/>
          <Parameter name="region" type="string" value="external sides"/>
          <Parameter name="location name" type="string" value="face"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <ParameterList name="modifier" type="ParameterList">
            <Parameter name="function type" type="string" value="standard math"/>
            <Parameter name="operator" type="string" value="negative"/>
            <Parameter name="amplitude" type="double" value="-1.0"/>
            <Parameter name="shift" type="double" value="0.0"/>
          </ParameterList>
          <Parameter name="direction normalized flux" type="bool" value="true"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="river discharge [mol d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-water_flux"/>
          <Parameter name="region" type="string" value="surface domain outlet"/>
          <Parameter name="location name" type="string" value="face"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="direction normalized flux" type="bool" value="true"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="net groundwater flux [mol d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="water_flux"/>
          <Parameter name="region" type="string" value="external sides"/>
          <Parameter name="location name" type="string" value="face"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="direction normalized flux" type="bool" value="true"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="rain precipitation [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-precipitation_rain"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="snow precipitation [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="snow-precipitation"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="surface evaporation [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-evaporation"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="snow evaporation [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="snow-evaporation"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="transpiration [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-transpiration"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="snowmelt [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="snow-melt"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="total evapotranspiration [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-total_evapotranspiration"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="canopy evaporation [m d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="canopy-evaporation"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="infiltration [mol d^-1]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-surface_subsurface_flux"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="time integrated" type="bool" value="true"/>
        </ParameterList>
        <ParameterList name="surface water content [mol]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-water_content"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="time integrated" type="bool" value="false"/>
        </ParameterList>
        <ParameterList name="snow water content [mol]" type="ParameterList">
          <Parameter name="variable" type="string" value="snow-water_content"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="time integrated" type="bool" value="false"/>
        </ParameterList>
        <ParameterList name="canopy water content [mol]" type="ParameterList">
          <Parameter name="variable" type="string" value="canopy-water_content"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="time integrated" type="bool" value="false"/>
        </ParameterList>
        <ParameterList name="air temperature [K]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-air_temperature"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="false"/>
        </ParameterList>
        <ParameterList name="incoming shortwave radiation [W m^-2]" type="ParameterList">
          <Parameter name="variable" type="string" value="surface-incoming_shortwave_radiation"/>
          <Parameter name="region" type="string" value="surface domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="average"/>
          <Parameter name="time integrated" type="bool" value="false"/>
        </ParameterList>
        <ParameterList name="subsurface water content [mol]" type="ParameterList">
          <Parameter name="variable" type="string" value="water_content"/>
          <Parameter name="region" type="string" value="computational domain"/>
          <Parameter name="location name" type="string" value="cell"/>
          <Parameter name="reduction" type="string" value="extensive integral"/>
          <Parameter name="time integrated" type="bool" value="false"/>
        </ParameterList>
      </ParameterList>
      <Parameter name="times start period stop" type="Array(double)" value="{0.0, 1.0, -1.0}"/>
      <Parameter name="times start period stop units" type="string" value="d"/>
    </ParameterList>'.

In the generated observation file, water_balance_computational_domain.csv, the column "river discharge [mol d^-1]" has extremely large values, for example
1.766064026997e+09 mol d^-1, which corresponds to approximately 1.766064026997e+09/55000 m^3/day ≈ 3.21×10^4  m^3/day, while the measured daily discharge at the outlet is in the range of 0–17 m³ d⁻¹.

Could you please advise on what might be going wrong on my end, or suggest how I should debug this discrepancy between the simulated and measured discharge? Any suggestions are appreciated.

Thanks,
Chuyang

Coon, Ethan

unread,
Nov 19, 2025, 12:18:58 AMNov 19
to Chuyang Liu, Amanzi-ATS Users
I would recommend doing a mass balance check to make sure you understand the typical magnitudes of the other quantities.  How does this value compare to P-ET?  What is the initial condition like (in saturation) -- does it look reasonable?

Back up in runs — what does discharge look like in your cyclic steadystate?  In your steadystate?  How do these compare to P-ET?

There is nothing obviously wrong at first glance in your quoted observations.

Ethan


From: ats-...@googlegroups.com <ats-...@googlegroups.com> on behalf of Chuyang Liu <CL...@lbl.gov>
Date: Monday, November 17, 2025 at 10:36 PM
To: Amanzi-ATS Users <ats-...@googlegroups.com>
Subject: [EXTERNAL] Question about the high river discharge value

This Message Is From an External Sender
This email was sent from a non-ORNL address. If suspicious, use the Report Phish button in Outlook.
 
--
You received this message because you are subscribed to the Google Groups "Amanzi-ATS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ats-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ats-users/d6e98e57-ca1d-4391-a917-e794e59184f2n%40googlegroups.com.

Chuyang Liu

unread,
Nov 25, 2025, 1:44:43 AM (9 days ago) Nov 25
to Amanzi-ATS Users
Hi Ethan,

Many thanks for your help! Please see the mass balance figure below for the transient run, generated by following the example at: https://github.com/amanzi/ats-demos/blob/ats-demos-1.6/05_ecohydrology/water_balance_pt_canopy_snow_surf.ipynb. Some definitions are updated to fix the variable name changes. As shown, ET is relatively small compared to P, and the initial conditions end up being quite wet, with large areas of high saturation. The simulated river discharge at the outlet differs in magnitude from the observed values but still yields a reasonably good R² (e.g., 0.82).

Any hints or suggestions would be greatly appreciated.
'

# process -- global water balance -- converting all to m/day

gf = dict()

gf['P'] = df['rain precipitation [m d^-1]']

gf['S'] = df['snow precipitation [m d^-1]']

# gf['ET'] = df['evapotranspiration [m d^-1]']

gf['ET'] = df['total evapotranspiration [m d^-1]'] # Fix KeyError: 'evapotranspiration [m d^-1]'

# gf['Q'] = df['runoff generation [mol d^-1]']/55500./surf_area

gf['Q'] = df['river discharge [mol d^-1]']/55500./surf_area # Fix KeyError: 'runoff generation [mol d^-1]'

gf_net = gf['P'] + gf['S'] - gf['ET'] - gf['Q']

global_water = (df['canopy water content [mol]'] + df['snow water content [mol]'] + df['surface water content [mol]'] + df['subsurface water content [mol]']) / 55500 / surf_area '
 High discharge figure1.pngHigh discharge figure2.pngHigh discharge figure3.pngHigh discharge figure4.pngHigh discharge figure5.png

Best,
Chuyang

Coon, Ethan

unread,
Nov 25, 2025, 11:28:51 AM (9 days ago) Nov 25
to Chuyang Liu, Amanzi-ATS Users
The ATS simulation looks reasonable to me — mass balances, and P + S -  ET is balanced by Q.  If we look at annual totals in the cumulative plot, you can see about 1.5 meters of water — 1m of SWE in snow, and .5 m in rain.  That’s reasonable for Colorado.

A flow rate of a garden hose is approximately 50 m^3 / day.  I suspect you misunderstand the units of your observations.

Ethan


Chuyang Liu

unread,
Nov 25, 2025, 1:27:05 PM (9 days ago) Nov 25
to Amanzi-ATS Users
Thanks for the help! I realized I had a typo in my previous post. The sentence should read: “The simulated river discharge at the outlet differs by several orders of magnitude from the observed values but still yields a reasonably good R² (e.g., 0.82).”

Right above the Phase 3 ats_vis_data.h5.0.xmf figure, there is an observed vs. simulated discharge plot at the outlet. In that plot, the observed discharge ranges from about 0–16 m^3/day, whereas the simulated discharge ranges from about 0–1.2 m^3/day.
Reply all
Reply to author
Forward
0 new messages