Description
The APSIM Met module provided daily meteorological information to all modules within an APSIM simulation.
Operation
The APSIM Met Module requires parameters to specify the climate of the site for each APSIM time step. This information is included in a ‘ weather' , or ‘ met' , file.
Climate data can exist in the met file in two ways :
As
Constants or as
Daily (Column) values.
Constant Values
Climate information for the simulation site that is independent of time can be specified at the top of the data section.
Examples of how constant values can be specified are the values:
site = toowoomba
latitude = -26.8 (degrees)
shown in the example below.
Daily (Column)Values¶
Information that needs to be specified for each day can be arranged in space-delimited columns. The data columns can be arranged in any order and contain any data of any type. The line following the list of column names must be followed by a line containing the units, in brackets ‘ ()' , for the information in each column.
The only restraints are as follows:
- column headers must use the standard APSIM state variable names so that the data can be recognised by the module communications.
- The list of columns must contain adequate information for identifying time for each row.
This means that the list of columns must contain either:
‘ day' and ‘ year'
OR
‘ day_of_month' , ‘ month' and ‘ year' .
AN EXAMPLE
The file “sample.met” could then have the following:-
[weather.met.weather]
site = toowoomba
latitude = -26.8 (degrees)
| year | day | radn | maxt | mint | rain |
| () | () | (MJ/m2) | (oC) | (oC) | (mm) |
| 1996 | 65 | 20 | 29 | 20.5 | 0 |
| 1996 | 66 | 20 | 29 | 20 | 0 |
| 1996 | 67 | 20 | 29 | 21 | 0 |
| 1996 | 68 | 20 | 22.5 | 20 | 0 |
| 1996 | 69 | 20 | 27.5 | 18.5 | 0 |
| . | . | . | . | . | . |
| . | . | . | . | . | . |
| . | . | . | . | . | . |
Setting a Daily(Column) Value to a Constant Value¶
Sometimes you may want to switch off a column in your met file and replace it with a constant value.
For example you may want to instead of using the rain column in your met file, you may want to set the rain to always be a constant value of 0mm (so no rainfall).
Of course you can always just edit the met file itself and change the column values to be zero, but this is time consuming.
A faster way is to just put the constant value,
rain=0 (mm) at the top of your met file, and then rename the column heading for the rain column to something that won't be recognised as an APSIM variable,
eg.
rain
(mm)
to
xrain
(mm)Resetting Met Variables (eg Climate Change scenario)
The APSIM Met Module can reset the values of any variables specified in the met file. Both constants and column values (apart from the time specification column values) for the current timestep can be reset using standard APSIM communication techniques.
However, changing met data dynamically during a simulation must only occur at a predefined stage during daily simulation execution. See example below.
Resetting met variables at 'start_of_day' or 'end_of_day' could result in critical modules (eg Soilwat2) missing the information due to process ordering. Setting met variables at the 'preNewMet' stage (see example) will avoid this risk.
AN EXAMPLE
Most modules in APSIM get their weather data from a newmet event that is produced by the MET module, so we need to change the weather variables before this event gets sent out. The MET module produces an event that makes this easy. It is called prenewmet. This event is fired just before a newmet event. So all we have to do is to trap this event and change the weather variables.
From the manager\sample\manager.par file:
modify_met.manager.preNewmet
maxt = maxt + 2
mint = mint + 2
When the prenewmet event fires, we increase the maximum and minimum temperature by 2 degrees, which then gets propagated to all other APSIM modules when the newmet event is sent by the MET module.
Module Output Variables
The APSIM Met Module can provide the values of several state variables for reporting to an output file or use by other modules.
Name |
Units |
Description |
keyword |
as specified |
Each keyword climate constant is
available for output by the user. |
Column name |
as specified |
Each column data field is available
for output by the user. The value
for the current simulation timestep
will be returned. The time
specifiers (ie day, year,
day_of_month, month) are not
available for output. |
Day_length |
hours |
Day length (hours of sunlight) for
the current simulation day. This
value is calculated using time of
year and latitude and assumes a
civil twilight angle of 6 degrees. |