Opened 13 years ago

Closed 10 years ago

#246 closed enhancement (fixed)

Generalised R-matrix

Reported by: Ian Culverwell Owned by: cburows
Priority: normal Milestone: 8.0
Component: ropp_1dvar Version: 4.1
Keywords: R matrix Cc:

Description

We should consider the possibility of implementing R(lat, season) (eg by adopting what's done in OPS).

Change history (8)

comment:1 by Ian Culverwell, 13 years ago

Owner: set to cburows
Status: newassigned

comment:2 by cburrows, 13 years ago

The R-matrix used operationally at the Met Office is latitudinally dependent, and currently this is implemented in ROPP (ropp_1dvar/errors). Seasonal dependence is not currently used at the Met Office, so this will only be implemented in ROPP once it has been scientifically trialled.

comment:3 by Ian Culverwell, 12 years ago

Milestone: 6.07.0

comment:4 by cburrows, 11 years ago

Milestone: 7.08.0

Research is planned on the optimisation of observation errors at the Met Office, so the outcome of this research will probably supersede the previously planned implementation. Postponing to ROPP 8.0 (i.e. to implement the findings from this research).

comment:5 by cburrows, 10 years ago

Consider a seasonal sinusoidal scaling of the usual observation errors. This would have no effect by default, but parameters could be set by a control file to specify the amplitude of the correction, a constant offset and the 'phase shift' (i.e. a solstice?).

Further work would be needed to determine sensible values or decide if a more sophisticated form of seasonal dependence is required.

comment:6 by cburrows, 10 years ago

Work on this has been carried out on this branch.

The approach decided on is a factor that scales the sigma values, prior to construction of the R matrix based on whichever correlations are specified. This currently affects all levels equally and therefore doesn't include the full complexity of the approach by Scherllin-Pirscher et al, doi:10.5194/amt-4-1875-2011. This scaling is switched off by default. The scaling factor takes the following form:

scaling factor = 1 + amplitude * COS(2pi * (season + phase)) + offset

The values for 'amplitude', 'phase' and 'offset' are zero by default and can be specified in a 1dvar configuration file. 'Season' is calculated in the code and takes a value between 0 and 1 depending on the fraction of the way through the year when the observation occurs. Similarly, 'phase' is a value between 0 and 1 which specifies the phase shift of the sinusoidal seasonal variation based on the fraction of the way through the year. If the error scaling results in negative sigma values, the original values are reverted to and a warning message is displayed. Guidance in the configuration files suggests using default observation errors for the season which has the smallest errors, so that the scaling and offset are used together to increase the errors for the rest of the year to avoid negative sigmas. If 'amplitude' is set to zero, 'offset' can be used to simply scale the observation error which may be useful on its own.

This has been coded consistently for both refractivity and bending angle.

If this is found to be useful, vertical variation of the scaling factor may be considered in the future.

Testing has shown that the scaling behaves as expected, and in a 1D-Var test, if the observation sigmas are increased due to the seasonal scaling, the 1D-Var solution is closer to the background.

comment:7 by Ian Culverwell, 10 years ago

This was merged into the ROPP80_prototype branch at r4232.

comment:8 by Ian Culverwell, 10 years ago

Resolution: fixed
Status: assignedclosed

Works OK in practice, so closing ticket. Can be re-opened if users want or suggest further developments.

Note: See TracTickets for help on using tickets.