Time Average¶
Description¶
Compute a basic time average of the base on a characteristic integration time using an online algorithm.
The treatment stores the number of accumulated iterations and the averaged base so it can be called many times to perform the averaging.
Parameters¶
- base:
Base
The input base to be averaged.
- base:
- nb_ite_averaging: int or in_attr, default= ‘in_attr’
Number of iterations over which averaging is done. If in_attr, then each zone of the base must have an attribute nb_ite_averaging. This is the number of iterations performed by the solver, which ends up with the base. In particular, it may be different from the number of instants.
- extracts_step: int, default= 1
The number of time iterations between two instants of the base. For example, if the number of physical iterations is 10, maybe you could have sampled the signal every 2 iterations so you get 5 instants in the base.
- memory_mode: bool, default= False
If True, the initial base is deleted on the fly to limit memory usage.
Preconditions¶
Zones may contain multiple instants and shared variables.
The extract timestep is assumed constant.
Postconditions¶
The output base contains one instant named ‘average’ and the shared instant from the input base.
Example¶
The following example shows a time averaging on the first 1000 iterations with an extraction step of 10.
import antares
myt = antares.Treatment('onlinetimeaveraging')
myt['base'] = base
myt['nb_ite_averaging'] = 1000
myt['extracts_step'] = 10
myt['memory_mode'] = False
base_avg = myt.execute()
Main functions¶
Example¶
import numpy as np
import antares
b = antares.Base()
b['0000'] = antares.Zone()
x, y, z = np.meshgrid(np.linspace(0.0, 1.0, 3),
np.linspace(0.0, 1.0, 3),
np.linspace(0.0, 1.0, 3))
b[0].shared['x'] = x
b[0].shared['y'] = y
b[0].shared['z'] = z
for i in range(10):
b[0]['%d'%i] = antares.Instant()
b[0][i]['v'] = np.ones(x.shape) * (i+1) * 2
myt = antares.Treatment('onlinetimeaveraging')
myt['base'] = b
myt['nb_ite_averaging'] = 20
myt['extracts_step'] = 2
base_avg = myt.execute()
print(base_avg[0]['average']['v'])