Irrigation Using Manager Scripts (APSIM 7.5 only)
Apsim 7.5 introduced a number of new manager rules to control irrigation. They cover a number of common application scenarios and do not need any scripting experience to use. You can find them in the Management tool box under Manger .NET (common tasks).
The APSIM irrigate module allows the user to:
- specify irrigation schedules spanning multiple years
- configure an automatic irrigation schedule calculated on soil moisture
- specify both schedules to be turned on or off at any time in a simulation
- apply solutes in irrigation water for redistribution via the water balance module.
The ‘apply’ command allows you to apply an irrigation in a management component in your simulation (Manager module).
The simplest way to apply an irrigation is to use the ‘apply’ command of the irrigation module.
nb. This is very similar to the ‘apply’ command of the fertiliser module.
irrigation apply amount = 50 (mm)
There are some optional arguments that you can use with the apply command.
Irrigation to runoff like rain does
By default all the irrigation enters the soil.
It is left up to the user to take the efficiency of irrigation (water lost due to method of irrigation used) into account by decreasing the amount applied when irrigating using an apply command.
However there is an option to allow an irrigation to runoff in exactly the same way that rain does. This runoff amount is added to the existing output variable for rain called ‘runoff’.
You can specify this runoff to occur with the irrigation by using the ‘will_runoff’ argument. 0 means no runoff, 1 means runoff like rain does.
irrigation apply amount = 50 (mm), will_runoff = 1
If this argument is not provided, it defaults to 0 (the irrigation does not runoff)
You can apply an irrigation to be a subsurface irrigation by using the optional ‘depth’ argument.
irrigation apply amount = 50 (mm), depth = 3000 (mm)
The SoilWater module will work out what layer of the soil that this depth corresponds to, and will put the water directly into this soil layer
Solutes in Irrigation
You can apply solutes with the irrigation by using the optional ‘no3’, ‘nh4’ and ‘cl’ arguments.
irrigation apply amount = 50 (mm), no3 = 50 (kg/ha), nh4 = 60 (kg/ha), cl = 70 (kg/ha)
nb. cl is chloride.
You can use this in conjunction with the depth argument.
irrigation apply amount = 50 (mm), depth = 3000 (mm), no3 = 50 (kg/ha), nh4 = 60 (kg/ha), cl = 70 (kg/ha)
nb. each one of these solutes is an optional argument. So you do not need to provide all three. You can provide just one or two of them if you want.
Manual and automatic schedules can be enabled and disabled within a simulation via the message system. The syntax of a standard manager message to turn off the manual irrigation schedule would be as follows:
irrigation set manual_irrigation = off
Other related data is unaffected by this switch resetting and so, for example, the automatic irrigation scheduling can be set on and off for set windows in time using a pair of if statements in the manager file.
Parameters for the automatic irrigation calculations can be reset similarly:
irrigation set crit_fr_asw = 0.9 (0-1)
irrigation set asw_depth = 150 (mm)
Working with Irrigation Allocation Budgets
The following example shows how the allocation mechanisms are utilized in the APSIM Irrigate module.
Note that only automatic irrigation scheduling and remote scheduling (eg via the manager or operations modules) is taken into account.
The mechanism cannot be used in conjunction with a manual irrigation schedule.
The example shows an annual allocation set on the first of July each year, which is applied using automatic irrigation scheduling.
automatic_irrigation = on (on/off) ! switch schedule on or off
crit_fr_asw = 0.66 (0-1) ! critical fraction of
! available soil water
! to trigger irrigation
asw_depth = 600 (mm) ! depth for available
! soil water calculations
if today = date(‘1_jul’) then
irrigation set allocation = 1000 (mm)
Working with Irrigation Efficiency
The following example shows how the irrigation efficiency is utilized in the APSIM Irrigate module.
The example shows an irrigation_efficiency setting of 75%.
This means that only 75% of the irrigation is actually being applied due to approximated losses due to evaporation, wind loss or runoff.
irrigation.irrigation_efficiency = 0.75
if today = date(‘1_jul’) then
irrigation apply amount = 50
Using APSIM Irrigate with APSIM WaterStorage
There is an option to use APSIM Irrigate in conjunction with the APSIM WaterStorage module. Please also read the documentation for APSIM WaterStorage.
APSIM Irrigate works on a ‘mm’ basis, whereas APSIM WaterStorage works on real volumes (Ml). Hence, when an irrigation application is specified in mm, an ‘area of application’ must be provided in order to calculate the required volume of water from the specified source instance of WaterStorage. As mentioned previously, whenever WaterStorage is used in a simulation for supply of irrigation water, a variable called ‘crop_area’ (ha) must be specified in the manager logic.
Irrigations using water from WaterStorage can only be initiated by using the ‘irrigation apply’ action in manager. A new optional argument called ‘source’ is added to the ‘apply’ command line to trigger the use of water from WaterStorage. The required syntax is as follows:
if day = 10 then
irrigation apply amount=10 (mm), source = dam bore dam2 ()
The argument ‘source’ specifies the sources from which to obtain the irrigation water, in preferential order. In other words, in the above example, if the dam cannot fully supply the required water, the balance will be taken from the bore. If there is still a shortage of water, then dam2 will be asked next to supply water. There is no limit to the number of sources which can be specified.
When the irrigation water is applied to the soil, it will carry the solutes makeup of the water source being used.
Irrigation Module Outputs
The Irrigation module outputs the following variables.
|irrigation||Total amount of irrigation added to profile during any timestep (mm)|
|manual_irrigation||Current state of the fixed irrigation schedule (on/off)|
|automatic_irrigation||Current state of the automatic irrigation schedule (on/off)|
|crit_fr_asw||Critical fraction of available soil water (ie. above a 15 bar lower limit) below which irrigation is automatically applied. (0-1)|
|asw_depth||Depth to which available soil water fraction is calculated. (mm)|
|allocation||Current amount of irrigation allocation available for use (mm)|
|allocation_ml||Current amount of irrigation allocation available for use (ML)|
|carry_over||Amount of irrigation allocation unused as at reset of allocation (mm) (Value will be zero for days on which allocation is not reset)|
|carry_over_ml||Amount of irrigation allocation unused as at reset of allocation (ML)|
|irr_fasw||Fraction of available soil water within the critical irrigation soil depth|
|irr_deficit||Deficit of soil water within the critical irrigation soil depth (mm)|
|irrig_loss||Losses resulting from and application of irrigation in conjunction with the irrigation_efficiency mechanism.|
|irrig_tot||Total irrigation specified, not including losses due to irrigation efficiency (mm)|
|irrigation_XXX||Applied quantity of solute XXX, (kg/ha)|