Particle release¶
Particle release is controlled by a release file. This is a text file with one row per release location per time. The name of the release file is defined in the configuration file.
The format of the line is specified in the configuration by the list
release_format
. If the type of the field is not the default float
, it
should be specified under the particle_release
heading in the configuration
file. Time is indicated by the type code time
.
There are seven reserved column names.
- mult
- Number of particles. Optional, default = 1.
- release_time
- Time of particle release with format
yyyy-mm-ddThh:mm:ss
or"yyyy-mm-dd hh:mm:ss"
. Mandatory. - X
- Grid X-coordinate of the release position
- Y
- Grid Y-coordinate of the release position
- lon
- Longitude of release position
- lat
- Latitute of release position
- Z
- Release depth in meters (positive downwards). Mandatory
Note
It is essential that the release time is interpreted as a single string. This can be done by a “T” between date and clock parts or by enclosing it with double ticks. Time components can be dropped from the end with obvious defaults.
Note
Either (X, Y) or (lon, lat) must be given, If both are present, the grid position (X, Y) is used.
Note
Using (lon, lat) requires a ll2xy
method in the gridforce.Grid
.
Additional variables should be specified in the configuration file. If their type is not
float
, the type (int
, bool
, time
) should be specified. [How about strings?]
Example:
Using the configuration:
particle_release:
# release_type, discrete or continuous
release_type: continuous
release_frequency: [1, h] # Hourly release
variables: [mult, release_time, X, Y, Z, farmid, super]
particle_variables: [release_time, farmid]
# Converters (if not float)
mult: int
release_time: time # np.datetime64[s]
farmid: int
A typical line in the release file may look like this:
5 2015-07-06T12 379.12 539.23 5.0 10041 1243.2
This means that 5 particles are released at time 2015-07-06 12:00:00
, at a
location with farmid
-label 10041, with grid coordinates (379.12, 539.23) at
5 meters depth. Each particle is a superindividual with weight 1243.2 so the
particle release corresponds to a total of 6216 individuals. The release is
repeated every hour until a later particle release anywhere (or the end of the
simulation).
Warning
Strange things may happen if particle release is not aligned with the model time stepping. The user is presently responsible for synchronizing model and release times.
Note
Entries with release_time before the start or after the stop time of LADiM are ignored. In particular, constant continuous release will not work if the release_time is before the model’s start time. (still true?)
Note
Entries in a release row after the configured fields are silently ignored. (at least should be, check).
Note
Particles released outside the model grid are ignored. A warning is logged.
Note
Particles released on land are retained in the simulation, but do not move. In particular check that particles released by longitude and latitude near the coast is in a sea cell. TODO: Provide a warning for particles initially on land.