UFO
|
Function calculates individual observation errors for Satwind u and v winds dependent on an input pressure error estimate and the model wind shear. More...
#include <SatwindIndivErrors.h>
Public Member Functions | |
SatwindIndivErrors (const eckit::LocalConfiguration &) | |
~SatwindIndivErrors () | |
void | compute (const ObsFilterData &, ioda::ObsDataVector< float > &) const |
Function to calculate situation dependent observation errors for satwinds. More... | |
const ufo::Variables & | requiredVariables () const |
geovals required to compute the function More... | |
![]() | |
ObsFunctionBase (const eckit::LocalConfiguration conf=eckit::LocalConfiguration()) | |
virtual | ~ObsFunctionBase () |
Private Attributes | |
ufo::Variables | invars_ |
SatwindIndivErrorsParameters | options_ |
Additional Inherited Members | |
![]() | |
typedef float | Value_ |
Type of the values produced by the function. More... | |
Function calculates individual observation errors for Satwind u and v winds dependent on an input pressure error estimate and the model wind shear.
Definition at line 57 of file SatwindIndivErrors.h.
|
explicit |
Definition at line 31 of file SatwindIndivErrors.cc.
ufo::SatwindIndivErrors::~SatwindIndivErrors | ( | ) |
Definition at line 53 of file SatwindIndivErrors.cc.
|
virtual |
Function to calculate situation dependent observation errors for satwinds.
The errors are calculated by combining an estimate of the error in the vector, with an estimate of the error in vector due to an error in the pressure (i.e. height assignment). The latter will depend on the AMV height error and the background vertical wind shear. In the future we aim to use estimates of the vector error and height error from the data producers.
Currently the vector error estimate \(E_{vector}\) is based on the quality index (QI) (ideally model-independent) and is calculated as:
\[ E_{vector} = \text{EuMult}\left(QI \times 0.01\right) + \text{EuAdd} \]
The defaults are EuMult=-5.0 and EuAdd=7.5, which gives errors in the range from 2.5 m/s (at QI=100) to 4.5 m/s (at QI=60).
The height error estimate \(E_{p}\) is currently set by a look up table (dependent on e.g. satellite, channel, pressure level). The values are based on the RMS of model best-fit pressure minus AMV observed pressure distributions. These are calculated from several months of data.
The error in vector due to the height error, \(E_{vpress}\), is calculated as:
\[ E_{vpress} = \sqrt{\frac{\sum{W_{i}\left(v_{i}-v_{n}\right)^{2}}} {\sum{W_{i}}} } \]
where
\[ W_{i} = \exp\left(- \left( \left( p_{i} - p_{n} \right)^2 / 2E_{p}^2 \right)\right) \times dP_{i} \]
i = model level
N = number of model levels (sum over)
\(v_i\) = wind component on model level
\(v_n\) = wind component at observation location
\(p_i\) = pressure on model level
\(p_n\) = pressure at observation location
\(E_p\) = error in height assignment
\(dP_i\) = layer thickness
This is calculated separately for the u and v components giving separate u and v component errors.
\[ E_{total}^2 = E_{vector}^2 + E_{vpress}^2 \]
Implements ufo::ObsFunctionBase< float >.
Definition at line 107 of file SatwindIndivErrors.cc.
|
virtual |
geovals required to compute the function
Implements ufo::ObsFunctionBase< float >.
Definition at line 245 of file SatwindIndivErrors.cc.
|
private |
Definition at line 66 of file SatwindIndivErrors.h.
|
private |
Definition at line 67 of file SatwindIndivErrors.h.