Implementing time-series ET and rooting parameters for crop rotation in ATS

42 views
Skip to first unread message

Haoyuan YU

unread,
Oct 17, 2025, 12:30:31 PMOct 17
to Amanzi-ATS Users

Hi ATS team,

I understand that ATS allows defining different regions with distinct root and ET) parameters (e.g., maximum rooting depth, Priestley–Taylor alpha, etc.).

However, I would like to simulate a corn–soybean rotation within the same plot. Is it possible to assign different parameter values at different time periods — for example, using corn parameters for two years and soybean parameters for one year (i.e., a time-varying or time-series parameter setup at “land cover types”)?

If so, what is the recommended way to achieve this in ATS?

Thanks,

Haoyuan

Bo Gao

unread,
Oct 17, 2025, 9:18:31 PMOct 17
to Haoyuan YU, Amanzi-ATS Users
Hi Haoyuan,

No, those parameters are not time dependent. I guess the way to do such parameter rotation is to checkpoint and switch between different input files.

Best,
Bo Gao 

--
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/af77e5de-100c-4ea4-abff-15433cc7d13cn%40googlegroups.com.

Haoyuan YU

unread,
Oct 18, 2025, 2:12:15 AMOct 18
to Amanzi-ATS Users
Hi Bo,

Thanks for your suggestion. I think it is a good idea. 

Best,
Haoyuan

Utkarsh Mital

unread,
Oct 23, 2025, 12:32:38 PMOct 23
to Amanzi-ATS Users
Hello,

A quick follow up to Haoyuan's question. I imagine this implies that if we wish to implement any land management scenarios (e.g., if X happens, then do Y; such as adding irrigation if soil moisture drops below a certain threshold), the way to do that in ATS would be to checkpoint and switch input files as Bo suggested?

As a side question, what is the best way to add irrigation input? As a simple workaround for sprinkler irrigation, I'm considering augmenting the precipitation_rain variable.

Thanks,
Utkarsh

Bo Gao

unread,
Oct 23, 2025, 6:29:54 PMOct 23
to Utkarsh Mital, Amanzi-ATS Users
Hi Utkarsh,

I have no experience on irrigation myself, but from the perspective of modeling only, I think the way to add irrigation is through surface water source. For instance, currently you have a surface water source from rainfall only. Now if there is irrigation, it can be considered as another component of the surface water source. This is time dependent. You can define it as a function of time. The parameters that Haoyuan mentioned are given through "land cover type", and those are static. To change those parameters by time would need to change input files. Please correct me or add to this if I have missed something or I am wrong.

Best,
Bo Gao



Utkarsh Mital

unread,
Oct 23, 2025, 6:41:54 PMOct 23
to Bo Gao, Amanzi-ATS Users
Hi Bo,

I guess the question is: does the model care how it is getting the extra surface water source? A “proper” version of the xml file would involve creation of an h5 dataset that has irrigation. But that would mean I need to ensure I am implementing the extra source term correctly in the xml file, which makes me nervous as I may introduce new errors. 

If I simply do an extra pre-processing step where I update the precipitation_rain in meteorological forcing and augment it with irrigation, that should also work fine? As far as water balance is concerned, both precipitation_rain and irrigation add water to the system. Here, I am assuming irrigation is done via sprinklers which is typically considered similar to rainfall (so this approach may not apply for all irrigation types). Is precipitation_rain used to compute any other secondary variables which could get impacted by this makeshift approach?

P.S., any thoughts on implementing land management scenarios? Would that involve creating checkpoints and switching input files?

Utkarsh

Bo Gao

unread,
Oct 23, 2025, 8:07:29 PMOct 23
to Utkarsh Mital, Amanzi-ATS Users
Hi Utkarsh,

I think although it is OK to add the irrigation rate to rain directly, use a separate irrigation component will provide more flexibility. For instance, when the time intervals and ranges for irrigation is different with precipitation, when we want irrigation at some area but no others, when we want to change the irrigation plans, etc. In such cases, we just need to revise the source from irrigation without modifying precipitations. For land management, I guess if this will change the land cover and the corresponding parameters, I guess it would need to switch input files. Maybe there are some other ideas?

Best,
Bo Gao

Coon, Ethan

unread,
Oct 24, 2025, 10:24:50 AMOct 24
to Bo Gao, Utkarsh Mital, Amanzi-ATS Users

The fundamental difference is a field controlled by an evaluator (surface-water_source) vs a parameter that is hard-coded to be a constant scalar (LandCover parameters).

 

Your irrigation case is actually much simpler – introduce a new evaluator,

 

“surface-irrigation” and then add precip to that, e.g. “surface-water_source” becomes an “additive” evaluator that sums “surface-irrigation” and “surface-precipitation”.  Or, in the case of the standard Watershed Workflow Priestley-Taylor template file:

 

      <ParameterList name="surface-water_source" type="ParameterList">

        <Parameter name="evaluator type" type="string" value="additive evaluator" />

        <Parameter name="dependencies" type="Array(string)" value="{canopy-throughfall_drainage_rain, snow-melt, surface-evaporation, surface-irrigation}" />

        <Parameter name="surface-evaporation coefficient" type="double" value="-1" />

        <Parameter name="units" type="string" value="m s^-1" />

      </ParameterList>

 

Then you can leverage the full strength of Amanzi’s functions library that computes surface-irrigation as a a function of space, time, region, or even generic h5 file.

 

Ethan

 

 

 

 

Utkarsh Mital

unread,
Nov 5, 2025, 10:10:41 PMNov 5
to Coon, Ethan, Bo Gao, Amanzi-ATS Users
Hi Ethan / Bo,

Following Ethan's suggestion, could I subsequently define surface-irrigation as follows, under main > state > evaluators? I have basically copy-pasted the format from surface-precipitation_rain. Note that I’m using ATS 1.5


<ParameterList name=surface-irrigation" type="ParameterList">
<Parameter name="evaluator type" type="string" value="independent variable" />
<ParameterList name="function" type="ParameterList">
<ParameterList name="surface domain" type="ParameterList">
<Parameter name="region" type="string" value="surface domain" />
<Parameter name="component" type="string" value="cell" />
<ParameterList name="function" type="ParameterList">
<Parameter name="function type" type="string" value="bilinear and time" />
<Parameter name="file" type="string" value="path/to/irrigation/h5/file" />
<Parameter name="time header" type="string" value="time [s]" />
<Parameter name="row header" type="string" value="y [m]" />
<Parameter name="row coordinate" type="string" value="y" />
<Parameter name="column header" type="string" value="x [m]" />
<Parameter name="column coordinate" type="string" value="x" />
<Parameter name="value header" type="string" value="irrigation [m s^-1]" />
</ParameterList>
</ParameterList>
</ParameterList>
</ParameterList>

The idea is that I can create an h5 file for irrigation input, mirroring the steps used for creating an h5 file for meteorological forcing. This would be advantageous since I’d like to impose irrigation input at a higher spatial resolution than meteorological forcing. Also, as Bo suggested, this would enable me to modify irrigation plans without messing with the precipitation_rain input.

If this looks good, will surface-irrigation be automatically dumped in the visualization files?

Thanks,
Utkarsh

Bo Gao

unread,
Nov 5, 2025, 11:02:21 PMNov 5
to Utkarsh Mital, Coon, Ethan, Amanzi-ATS Users
Hi Utkarsh,
You also need to add the "surface-irrigation" to the "surface-water_source" as a component of the surface water source, see the example from Ethan's reply. I think it can be automatically added to the visualization files as I remember that this evaluator defaults to set "visualize" to true. You can have a check of the vis h5 file after you start your run.

Best,
Bo Gao

Utkarsh Mital

unread,
Nov 5, 2025, 11:23:26 PMNov 5
to Bo Gao, Ethan Coon, Amanzi-ATS Users
Hi Bo,
Thank you for confirming!

Yes, I meant after I add the surface-irrigation to surface-water_source as suggested by Ethan. I’ll try this approach and reach out if something doesn’t work :)

Utkarsh Mital

unread,
Nov 7, 2025, 12:31:55 AMNov 7
to Bo Gao, Ethan Coon, Amanzi-ATS Users
Update: This works as expected! The mass balance checks out (I added irrigation to observations as well). The vis dump of irrigation matches irrigation input. No issues providing irrigation at a different resolution than meteorological forcing.
Reply all
Reply to author
Forward
0 new messages