Variational assimilation: method & technicalities Claude Fischer & Patrick Moll, CNRM/GMAP, Météo-France Overview of some principles of VAR assimilation as applied in our NWP systems Principle of VAR (in as short as possible …) 4D variational assimilation : Search for the model trajectory approaching best the available observations => iterative minimization process - 3D variational assimilation : a « reduced » version of 4DVAR => no time integration, all obs are considered valid for time t1 X X1 X = vector of model variables X3 X4 X2 t0 t1 (analysis) t2 t Picture view of 4D-VAR assimilation obs Jo previous forecast analysis Jo obs xb background Jb xa t0=9h obs corrected forecast Jo t1=12h Assimilation window t2=15h General formulation of 4D-VAR in NWP systems Full (Nonlinear) cost function: T J ( w ) ( w ) B1 w i 0 ( (di ) ) R1 ( (di ) ) J b J o n T w (x xb) o ) (di yi H i ( M i (x )) Linearized cost function (k=outer loop): T J ( w k ) ( w k ) B1 w k i 0 (Gi Li w k (di )k 1) R 1 (Gi Li w k (di )k 1) n T Incremental formulation (I) Cost function: J ( w k ) ( w k ) B1 w k T n i 0 (Gi Li w k * (di )k 1) R 1 (Gi Li w k * (di )k 1) T w k is the « simplified » (low resolution) increment at outer loop k and w w k ) (w (di )k 1 yio H i ( M i (xk 1)) wk *( b k b k b wk 1) with w k Trajectory (analysis) updates: I a b I b ( ) ( wk S k wk ) xk xk 1 S k wk wk S k (xb) Incremental formulation (II) To pre-condition the problem, an additional change of variable is performed: χ k B1/ 2 wk CHAVAR New cost function: J (χ k ) χ k B1 χ k T i 0 (Gi Li B χ k (di )k 1) R1 (Gi Li B1/ 2 χ k (di )k 1) n 1/ 2 CHAVARIN T Incremental 4D-Var algorithm (ECMWF documentation) 3D-VAR – LAM - (I) Cost function => no model integration => M i (x) Id / and / Li Id J ( w k ) ( w k ) B1 w k T 0 i 0 (Gi w k * (di )k 1) R 1 (Gi w k * (di )k 1) T There is no time window (1 timeslot) and only one outer loop and k 1 wk* wk (di )k 1 yio H i (xk 1) Analysis updates => no « simplification » operator ! => the increment is computed on the same grid than the background: xk xk 1 w k 3D-VAR – LAM - (II) To pre-condition the problem, an additional change of variables is Performed (4D-VAR == 3D-VAR): χ k B1/ 2 wk CHAVAR New cost function: J (χ k ) χ k B1 χ k T i 0 (Gi B χ k (di )k 1) R1 (Gi B1/ 2 χ k (di )k 1) 0 1/ 2 CHAVARIN T Computation of Jo in 4D-VAR 1 * (d ) ) * ( J i 0 (Gi Li w k (di )k 1) R Gi Li w k i k 1 o T n where (di )k 1 yio H i ( M i (xk 1))are the « high resolution » departures. These high resolution departures are computed during high the resolution integrations and stored in the ODB files. In practice, one computes: o o (zi )k 1 (yi Gi Li w k *) yi (yio H i ( M i (xk 1)) Low Resol. depart. - Obs. + High Resol. depart. Computation of Jo in LAM 3DVAR * (d ) ) * ( J (G w (d ) ) R G w o T 0 i 0 i k i k 1 1 i k i k 1 With k=1 and i=0 only and: (di )k 1 yio H i (xk 1) are the « high resolution » departures. The departures are computed only once, during high the screening step and stored in the ODB files. In the code, one computes like for incremental 4D-VAR: o o (zi )k 1 (yi Gi w k *) yi (yio H i (xk 1)) « Low Resol. » depart.- Obs. + « High Resol. » depart. Chain of operations in a VAR minimisation loop (SIM4D) compute trajectory (take Xb in 3D-VAR) read k : i, (di )k 1 (stored in ODB) (*) compute Jb and its gradient compute TL of Jo: G i w k * And store (Gi wk * (di )k 1) in the ODB compute AD of Jo: 1 * (d ) ) Y ( ( ) i0 Gi R *GT i wk i k 1 compute J: ( w k ) .Y Z 0 T call minimizer; go to (*) until convergence Major messages to keep in mind: 3D-VAR is a reduced (« simpler ») version of 4D-VAR Aladin 3D-VAR is a code installed inside the global IFS/Arpège code (as we will see in the last slides) Back to application … with pictures ! SURFACE OBSERVATIONS FOR ALADIN-France Assimilation of Reflectivity : Observation operator implemented in the 3DVar ALADIN/AROME model level Ze N dq dj dr r j q z h • Simulated Reflectivity of factor in « beamhydrometeors volum bv» Bi-linear interpolation the simulated (T,q, qr, qs, qg) • Compute « radar reflectivity » on each model level Z e 10 log ( (r ). f 4 (q , j ).dr.dq .dj ) (r ) j ( D, r ).Nj( D, r )dD j rain, snow... 0 bv Resolution volum, ray path : standard refraction (4/3 Earth’radius) Backscattering crossray section: Resolution volume, path: standard refraction (4/3 Earth’s neglected) radius) Rayleigh (attenuation Diameter of particules Antenna’s radiation pattern: gaussian function for main lobe Microphysic Scheme in (side lobes neglected) AROME Courbure derrière le front froid: cassure trop nette dans Apparition de bande étroite de front froid: moins intense et ALADIN (à l’arrière, développement de la convection légèrement plus sud dans ALADIN. dans la traîne ou pseudo-limite dans ALADIN) The VAR assimilation in Ald/Aro: scripting sequence Observations are taken +/- 3 h around base time in Aladin; +/- 1.5 h in Arome Analysis time = background time and no « high » / « low » resolution Full analysis sequence (altitude fields): Full ODB database enters Screening => computes departures and performs QC and first-guess check ODB base is compressed (~ keep only active data in the output ODB) Variational analysis: minimization of cost function Write out analysis file Technical aspects about the LAM VAR code inside the IFS The observation operators in the variational cost function We have seen that the Jo part of the cost function can be finally written : Jo(x) = (yik – Hik [xb])TRik-1(yi – Hik [xb]) Where Hik is the observation operator for obs n° k of type n° i. The operator Hik is subdivided into a sequence of operators, each one of which performs part of the transformation from control variable to observed parameters : • Conversion from control variable to model variables • Inverse spectral transforms put the model variables on the gridpoint space • A horizontal interpolation provides vertical profiles of model variables at observation locations • Vertical integration if necessary (hydrostatic equation for geopotential, radiative transfer equation for radiances…) • Vertical interpolation to the level of the observations The observation operators in the variational cost function Horizontal interpolations : • A 12-point bi-cubic or 4-point bi-linear horizontal interpolation gives vertical profiles of model variables at observation locations. The surface fields are interpolated bilinearly to avoid spurious maxima and minima Vertical interpolations : it depends on the variable • Linear in pressure for temperature and specific humidity • Linear in logarithm of pressure for wind • Linear in logarithm of pressure for geopotential (performed in terms of departures from the ICAO standard atmosphere). New operator until a few years, specific to Météo-France, better consistent with hydrostatism. • Vertical interpolations for surface observations (T2m, V10m, Hu2m) are done consistently with the physics of the model The observations in the variational cost function Adjoints of the observation operators The solution of the minimisation problem is given by J(xa)=0 At each step of the descent algorithm, J has to be computed : J(x) =2B-1(x-xb) – 2HTR-1(y – H[xb]) Where HT is the the adjoint (transpose) of the the observation operator (or the tangent linear of the observation operator when it is non-linear). It means that the adjoints of the obs operators have to be computed, which is easy for the interpolations, but more difficult for the vertical integrations, in particular for the radiative transfer equation or other operators containing non differentiable processes. DIRECT AND ADJOINT OBSERVATION OPERATORS X (model var.) X …………. … Chain of direct operators . . H1 H1* H2 H2* Hn …………. Hn* Chain of adjoint operators ymod Jo y Jo ymod Chain of operations in a VAR minimisation loop (SIM4D) compute trajectory (take Xb in 3D-VAR) read k : i, (di )k 1 (stored in ODB) (*) compute Jb and its gradient compute TL of Jo: G i w k * And store (Gi wk * (di )k 1) in the ODB compute AD of Jo: 1 * (d ) ) Y ( ( ) i0 Gi R *GT i wk i k 1 compute J: ( w k ) .Y Z 0 T call minimizer; go to (*) until convergence Global // LAM code interfacing for VAR Simulator and model: obshortl obsvtl ecoupl1 Jb=; Jb=2 cpgtl H.dx einv_trans edir_trans espcmtl Minimisation dx=B1/2. H.dx Var inner loop J=Jb+Jo; J (SIM4D) GradJo=H*.R-1. (y-H(x)-H.dx) Jo=B1/2. GradJo Global // LAM code interfacing for VAR Architecture: obshortl Slightly different code: LELAM key coupling Completely different code Fully shared dataflow between IFS and Aladin (especially in gridpoint space), but quite separate dimensioning and addressing in spectral buffers (spherical versus bi-Fourier). Coupling code is of course only LAM. Global // LAM code interfacing for VAR Change of variable: chavarin cvar2in sqrtbin cvaru3i jgcori cv2spa ejgvcori ejghcori jgnrsi cvargptl ebalstat ebalvert spa1=ylvazx%lamcv*tmeanuver addbgs etransinv_jb etransdir_jb Phasing of LAM 3D-VAR ODB & bator need to work (almost same as Arpège, plus LAMFLAG) At every new cycle with IFS, a careful inspection of B-matrix setup and change of variable routines, SPECTRAL_FIELDS and CONTROL_VECTOR structures, specific observation-related code is needed (~ 1 week of work). Additionally, TL and AD LAM code may need to be checked. LAM 3D-VAR does not use multi-incremental I/O prepared for IFS-Arpège: no WRMLPPADM/RDFPINC, no SAVMINI/GETMINI, NUPTRA>1, « traj » recomputation of innovations Thank you for your attention