Setting the weights
Keywords: class-average

Next: Definition of the output Up: Algorithm Previous: Algorithm Contents

##
Setting the weights

The Fortran type `observation` in CLASS provides a weight array (`obs%dataw`) for each observation. It has the same dimension of the abscissa and data arrays. One must take care that this array is not part of the CLASS data format, i.e. it is not saved in the observation when it is written in the output file. As a consequence, before adding any new spectrum, `AVERAGE` and `ACCUMULATE` will fill this array according to the `SET WEIGHT` method:

- `EQUAL`: the weight array is filled with 1.0 values,
- `TIME`: the weight is set to , where is the integration time in seconds, the frequency resolution in Hertz, and the system temperature in Kelvin. If the integration time is null, an error is raised.
- `SIGMA`: the weight is set to , where is the rms noise in Kelvin. If it is null or not set 2 in the observation header, an error is raised.

This value is unique for a single observation, and all the channels have the same weight. Any previous values set in `obs%dataw` are ignored and overwritten. On the other hand, the weight array of the ongoing sum is preserved. This ensures its correct ponderation in front of the input spectrum.

This method implies that all the weight arrays of the spectra of the index are recomputed from scratch before addition. If a sum (returned by a previous call to `AVERAGE` or `ACCUMULATE`) is used again as input, the memory of all spectra it comes from (their number and their different weights along all the channels) will be lost. One should take care that `AVERAG`'ing the whole index leads into different results than `AVERAG`'ing it by part! This is similar to first calculate two weighted means but then calculate a new mean from these without taking into account their weights.

Next: Definition of the output Up: Algorithm Previous: Algorithm Contents