• Keine Ergebnisse gefunden

High-Dimensional Nonlinear Data Assimilationwith the Nonlinear Ensemble Transform Filter (NETF)and its Smoother Extension

N/A
N/A
Protected

Academic year: 2022

Aktie "High-Dimensional Nonlinear Data Assimilationwith the Nonlinear Ensemble Transform Filter (NETF)and its Smoother Extension"

Copied!
34
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

High-Dimensional Nonlinear Data Assimilation

with the Nonlinear Ensemble Transform Filter (NETF) and its Smoother Extension

Lars Nerger

,

Paul Kirchgessner,

Alfred Wegener Institute, Bremerhaven, Germany

Julian Tödter, Bodo Ahrens

University of Frankfurt, Frankfurt, Germany NMEFC, Beijing, China, November 9, 2017

(2)

Nonlinear Ensemble Transform Filter & Smoother

Overview

Ø Study new Nonlinear Ensemble Transform Filter – NETF (Tödter & Ahrens, MWR, 2015)

Ø Extend NETF for smoothing

Ø Test filter and smoother in realistic high-dimensional

idealized ocean data assimilation experiments

(3)

Kalman and Nonlinear Filters

(4)

Nonlinear Ensemble Transform Filter & Smoother

• represent state and its error by ensemble of states

• Forecast:

• Integrate ensemble with numerical model

• Analysis:

• update ensemble mean

• update ensemble perturbations

(both can be combined in a single step)

• Ensemble Kalman filters & NETF: Different definitions of

• weight vector

• Transform matrix

Ensemble filters – ensemble Kalman filters & NETF

X

w ˜

W

x

a

= x

f

+ X

0f

w ˜ X

0a

= X

0f

W

N

(5)

Nonlinear Ensemble Transform Filter & Smoother

a

The Ensemble Kalman Filter (EnKF, Evensen 94)

Ensemble

Analysis step:

Update each ensemble member

Kalman filter

5 EnKF

Init

x

a0

⌅ R

n

, P

a0

⌅ R

nn

(41) { x

a(l)0

, l = 1, . . . , N } (42) x

a0

= 1

N

N

l=1

x

a(l)0

⇥ x

t0

(43)

P ˜

a0

:= 1

N 1

N

l=1

⇤ x

a(l)0

x

a0

⌅⇤

x

a(l)0

x

a0

T

⇥ P

a0

(44)

P

a0

= LL

T

, L ⌅ R

nq

(45) x

a(i)0

= x

a0

+ Lb

(i)

, b

(i)

⌅ R

q

(46)

⇤ N (0, 1) (47)

Forecast

x

a(l)i

= M

i,i 1

[x

a(l)i 1

] +

(l)i

(48)

Analysis

{ y

ko(l)

, l = 1, . . . , N } (49) x

a(l)k

= x

fk(l)

+ K ˜

k

y

ko(l)

H

k

x

fk(l)

⌥⌅

(50) x

a(l)k

= x

fk(l)

+ K ˜

k

y

o(l)k

H

k

x

fk(l)

(51) K ˜

k

= P ˜

fk

H

Tk

H

k

P ˜

fk

H

Tk

+ R

k

1

(52) K

k

= P

fk

H

Tk

H

k

P

fk

H

Tk

+ R

k

1

(53)

H

k

P

fk

H

Tk

+ R

k

⌅ R

mm

(54) P ˜

fk

= 1

N 1

N

l=1

⇤ x

fk(l)

x

fk

⌅⇤

x

fk(l)

x

fk

T

(55)

x

ak

:= 1 N

N

l=1

x

a(l)k

(56)

P ˜

ak

:= 1

N 1

N

l=1

⇤ x

a(l)k

x

ak

⌅⇤

x

a(l)k

x

ak

T

(57)

5

5 EnKF

Init

x

a0

⌅ R

n

, P

a0

⌅ R

nn

(41) { x

a(l)0

, l = 1, . . . , N } (42) x

a0

= 1

N

N

l=1

x

a(l)0

⇥ x

t0

(43)

P ˜

a0

:= 1

N 1

N

l=1

⇤ x

a(l)0

x

a0

⌅⇤

x

a(l)0

x

a0

T

⇥ P

a0

(44)

P

a0

= LL

T

, L ⌅ R

nq

(45) x

a(i)0

= x

a0

+ Lb

(i)

, b

(i)

⌅ R

q

(46)

⇤ N (0, 1) (47)

Forecast

x

a(l)i

= M

i,i 1

[x

a(l)i 1

] +

(l)i

(48)

Analysis

{ y

ko(l)

, l = 1, . . . , N } (49) x

a(l)k

= x

fk(l)

+ K ˜

k

y

o(l)k

H

k

x

fk(l)

⌥⌅

(50) x

a(l)k

= x

fk(l)

+ K ˜

k

y

o(l)k

H

k

x

fk(l)

(51) x

a(l)k

= x

fk(l)

+ K

k

y

(l)k

H

k

x

fk(l)

(52) K ˜

k

= P ˜

fk

H

Tk

H

k

P ˜

fk

H

Tk

+ R

k

1

(53) K

k

= P

fk

H

Tk

H

k

P

fk

H

Tk

+ R

k

1

(54)

H

k

P

fk

H

Tk

+ R

k

⌅ R

mm

(55) P ˜

fk

= 1

N 1

N

l=1

⇤ x

fk(l)

x

fk

⌅⇤

x

fk(l)

x

fk

T

(56)

x

ak

:= 1 N

N

l=1

x

a(l)k

(57)

P ˜

ak

:= 1

N 1

N

l=1

⇤ x

a(l)k

x

ak

⌅⇤

x

a(l)k

x

ak

T

(58)

5 EnKF

Init

x

a0

⌅ R

n

, P

a0

⌅ R

nn

(41) { x

a(l)0

, l = 1, . . . , N } (42) x

a0

= 1

N

N

l=1

x

a(l)0

⇥ x

t0

(43)

P ˜

a0

:= 1

N 1

N

l=1

⇤ x

a(l)0

x

a0

⌅⇤

x

a(l)0

x

a0

T

⇥ P

a0

(44)

P

a0

= LL

T

, L ⌅ R

nq

(45) x

a(i)0

= x

a0

+ Lb

(i)

, b

(i)

⌅ R

q

(46)

⇤ N (0, 1) (47)

Forecast

x

a(l)i

= M

i,i 1

[x

a(l)i 1

] +

(l)i

(48)

Analysis

{ y

o(l)k

, l = 1, . . . , N } (49) x

a(l)k

= x

fk(l)

+ K ˜

k

y

o(l)k

H

k

x

fk(l)

⌥⌅

(50) x

a(l)k

= x

fk(l)

+ K ˜

k

y

o(l)k

H

k

x

fk(l)

(51) x

a(l)k

= x

fk(l)

+ K

k

y

k(l)

H

k

x

fk(l)

(52) K ˜

k

= P ˜

fk

H

Tk

H

k

P ˜

fk

H

Tk

+ R

k

1

(53) K

k

= P

fk

H

Tk

H

k

P

fk

H

Tk

+ R

k

1

(54) H

k

P

fk

H

Tk

+ R

k

⌅ R

mm

(55) P ˜

fk

= 1

N 1

N

l=1

⇤ x

fk(l)

x

fk

⌅⇤

x

fk(l)

x

fk

T

(56)

P

fk

:= 1

N 1

N

l=1

⇤ x

fk(l)

x

fk

⌅⇤

x

fk(l)

x

fk

T

(57)

x

ak

:= 1 N

N

l=1

x

a(l)k

(58)

P ˜

ak

:= 1

N 1

N

l=1

⇤ x

a(l)k

x

ak

⌅⇤

x

a(l)k

x

ak

T

(59)

5

5 EnKF

Init

x

a0

⌅ R

n

, P

a0

⌅ R

nn

(41) { x

a(l)0

, l = 1, . . . , N } (42) x

a0

= 1

N

N

l=1

x

a(l)0

⇥ x

t0

(43)

P ˜

a0

:= 1

N 1

N

l=1

⇤ x

a(l)0

x

a0

⌅⇤

x

a(l)0

x

a0

T

⇥ P

a0

(44)

P

a0

= LL

T

, L ⌅ R

nq

(45) x

a(i)0

= x

a0

+ Lb

(i)

, b

(i)

⌅ R

q

(46)

⇤ N (0, 1) (47)

Forecast

x

a(l)i

= M

i,i 1

[x

a(l)i 1

] +

(l)i

(48)

Analysis

{ y

o(l)k

, l = 1, . . . , N } (49) x

a(l)k

= x

fk(l)

+ K ˜

k

y

ko(l)

H

k

x

fk(l)

⌥⌅

(50) x

a(l)k

= x

fk(l)

+ K ˜

k

y

ko(l)

H

k

x

fk(l)

(51) x

a(l)k

= x

fk(l)

+ K

k

y

k(l)

H

k

x

fk(l)

(52) K ˜

k

= P ˜

fk

H

Tk

H

k

P ˜

fk

H

Tk

+ R

k

1

(53) K

k

= P

fk

H

Tk

H

k

P

fk

H

Tk

+ R

k

1

(54) H

k

P

fk

H

Tk

+ R

k

⌅ R

mm

(55) P ˜

fk

= 1

N 1

N

l=1

⇤ x

fk(l)

x

fk

⌅⇤

x

fk(l)

x

fk

T

(56)

P

fk

:= 1

N 1

N

l=1

⇤ x

fk(l)

x

fk

⌅⇤

x

fk(l)

x

fk

T

(57)

x

ak

:= 1 N

N

l=1

x

a(l)k

(58)

P ˜

ak

:= 1

N 1

N

l=1

⇤ x

a(l)k

x

ak

⌅⇤

x

a(l)k

x

ak

T

(59)

5

Ensemble

covariance matrix

Ensemble mean (state estimate)

Expensive to compute

(6)

Nonlinear Ensemble Transform Filter & Smoother

Efficient use of ensembles

Kalman gain

K ˜

k

= ˜ P

fk

H

Tk

H

k

P ˜

fk

H

Tk

+ R

k

1

K ˜

k

= ⇣

P ˜

fk

1

+ H

T

R

1

H

1

H

T

R

1

Alternative form (Sherman-Morrison-Woodbury matrix identity)

Looks worse: matrices need inversion

n ⇥ n

K ˜

k

= X

0

h

(N 1)I + X

0T

H

T

R

1

HX

0

i

1

X

0T

H

T

R

1

However: with ensemble

Inversion of matrix

(Ensemble perturbation matrix )

P ˜

fk

= (N 1)

1

X

0

X

0T

N ⇥ N

X

0

= X X ¯

(7)

• Ensemble Transform Kalman filter:

• Transform matrix

• Mean update weight vector

(depends on R and y)

• Transformation of ensemble perturbations

(depends only on R, not y)

ETKF (Bishop et al., 2001)

A

1

= (m 1)I + (HX

0f

)

T

R

1

HX

0f

˜

w = A(HX

0f

)

T

R

1

y Hx

f

W = p

(m 1)A

1/2

N

N

(8)

Nonlinear Ensemble Transform Filter & Smoother

• Avoid changing ensemble members (‘particles’)

• Instead: give particles a weight at change it at the analysis step

• Initial weight: 1/N for all particles

• Weights are given by statistical likelihood of an observation

• Example: With Gaussian observation errors (for each particle i):

• Ensemble mean state computed with weights

• This update does not assume any distribution of the state errors (and is not limited to Gaussian distributations)

Particle filters – fully nonlinear ensemble filters

˜

w

i

⇠ exp ⇣

0.5(y Hx

fi

)

T

R

1

(y Hx

fi

) ⌘

x

a

= x

f

+ X

0f

w ˜ = X

f

w ˜

(9)

• Ensemble Kalman:

• Transformation according to KF equations

• NETF (Tödter & Ahrens, MWR, 2015)

Ø Mean update from Particle Filter weights: for all particles i

Nonlinear ensemble transform filter - NETF

Ø Ensemble update

• Transform ensemble to fulfill analysis covariance (like KF, but not assuming Gaussianity)

• Derivation gives

( : mean-preserving random matrix; useful for stability) (Almost same formulation: Xiong et al., Tellus, 2006)

W = p

m ⇥

diag( ˜ w) w ˜ w ˜

T

1/2

˜

w

i

⇠ exp ⇣

0.5(y Hx

fi

)

T

R

1

(y Hx

fi

) ⌘

p N

(10)

Nonlinear Ensemble Transform Filter & Smoother

• Mean state update

• Analysis covariance matrix

with

Derivation of NETF

x

a

= x

f

+ X

0f

w ˜ = X

f

w ˜

P

a

= X

i=1,m

˜

w

i

(x

fi

x

a

)(x

fi

x

a

)

T

W = p

m ⇥

diag(w) w ˜ w ˜

T

1/2

⇤ P

a

= 1

m X

f

W

2

(X

f

)

T

X

i=1,N

N

p N

(11)

• ETKF parameterizes ensemble distribution by a Gaussian distribution

• NETF uses particle filter weights to ensure correct update of ensemble mean and covariance

• Filter update:

• in ETKF is linear in observations

• in NETF is nonlinear in observations

Difference of ETKF and NETF

˜

w = A(HX

0f

)

T

R

1

y Hx

f

˜

w

i

⇠ exp ⇣

0.5(y Hx

fi

)

T

R

1

(y Hx

fi

) ⌘

(12)

Nonlinear Ensemble Transform Filter & Smoother

• Smoother: Update past ensemble with future observations

• Rewrite ensemble update as

• Filter:

Ensemble Smoothers – ETKS & NETS

X

ak|k

= X

fk|k 1

W ˆ

k

analysis time Observations used up to time

• Smoother at time

Ø works likewise for ETKS and NETS Ø also possible for localized filters

X

ai|k

= X

fi|k 1

W ˆ

k

i < k

See, e.g., Nerger, Schulte & Bunse-Gerstner, QJRMS 140 (2014) 2249–2259

(13)

Experiments with small Lorenz-96 model

(14)

Nonlinear Ensemble Transform Filter & Smoother

Configuration of Lorenz-96 model experiments

Lorenz-96:

• 1-dimensional period wave

• Chaotic dynamics

Configuration for assimilation experiments

• State dimension: 80

• Observed: 40 grid points

• Time steps between analysis steps: 8

• Double-exponential observation errors (for even stronger nonlinearity)

• Experiment length: 5000 time steps

• Observation error standard deviation: 1

➜ this is a difficult case for the assimilation

www.data-assimilation.net

(15)

• Performance for small model (Lorenz-96)

• NETF beats ETKF for ensemble size larger 30

Performance of NETF – Lorenz-96

20 30 40 50 60 70

ensemble size 1.1

1.2 1.3 1.4 1.5 1.6 1.7 1.8

MRMSE

EKTF filter NETF filter

(16)

Nonlinear Ensemble Transform Filter & Smoother

• Time period over which smoothing is performed: smoother lag

Typical behavior with nonlinear models

• Fast reduction of error short lag

• Error increase for large lag (caused by nonlinarity)

➜ There is an optimal lag with minimum error

Appliction of smoother

0 50 100 150 200

Lag (time steps) 1

1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45

MRMSE

LETKS LNETS

L. Nerger, S. Schulte, A. Bunse-Gerstner (2014) QJR. Meteorol. Soc. 140: 2249

(17)

• Performance for small model (Lorenz-96)

• Blue: Smoother

• NETS beats ETKS for ensemble size 40 and larger

• Smoother slightly stronger for ETKS

• NETS better than ETKF filter for N=70

Performance of NETF – Lorenz-96

20 30 40 50 60 70

ensemble size 0.9

1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8

MRMSE

EKTF filter ETKS smoother NETF filter NETS smoother

(18)

Nonlinear Ensemble Transform Filter & Smoother

NETF/NETS with

high-dimensional ocean model

(19)

Assimilation into NEMO

European ocean circulation model

Model configuration

• box-configuration “SEABASS”

• ¼o resolution

• 121x81 grid points, 11 layers (state vector ~300,000)

• wind-driven double gyre (a nonlinear jet and eddies)

• medium size SANGOMA benchmark

True sea surface height at 1st analysis time

Longitude (degree)

Latitide (degree)

−60 −55 −50 −45 −40 −35 −30

24 28 32 36 40

44 −0.6

−0.4

−0.2 0 0.2 0.4 0.6

True sea surface height at last analysis time

Longitude (degree)

Latitide (degree)

−60 −55 −50 −45 −40 −35 −30

24 28 32 36 40

44 −0.6

−0.4

−0.2 0 0.2 0.4 0.6

(20)

Nonlinear Ensemble Transform Filter & Smoother

PDAF: A tool for data assimilation

PDAF - Parallel Data Assimilation Framework

§ a program library for ensemble data assimilation

§ provide support for parallel ensemble forecasts

§ provide fully-implemented & parallelized filters and smoothers (EnKF, LETKF, NETF, EWPF … easy to add more)

§ easily useable with (probably) any numerical model

(applied with NEMO, MITgcm, FESOM, HBM, TerrSysMP, …)

§ run from laptops to supercomputers (Fortran, MPI & OpenMP)

§ first public release in 2004; continued development

§ ~250 registered users; community contributions Open source:

Code, documentation & tutorials at http://pdaf.awi.de

L. Nerger, W. Hiller, Computers & Geosciences 55 (2013) 110-118

(21)

single program

Indirect exchange (module/common) Explicit interface

state time

state

observations

mesh data

Model

initialization time integration post processing

Ensemble Filter

Initialization analysis

ensemble transformation

Observations

quality control obs. vector obs. operator

obs. error

Core of PDAF

Logical separation of assimilation system

modify parallelization

Nerger, L., Hiller, W. Software for Ensemble-based DA Systems –

(22)

Nonlinear Ensemble Transform Filter & Smoother

Extending a Model for Data Assimilation

Extension for data assimilation

revised parallelization enables ensemble forecast

plus:

Possible model-specific

adaption:

for NEMO:

handle leapfrog time

stepping

Start

Stop Do i=1, nsteps

Initialize Model

Initialize coupler Initialize grid & fields

Time stepper

in-compartment step coupling

Post-processing

Model

single or multiple executables coupler might be separate program

Initialize parallel.

Aaaaaaaa

Aaaaaaaa aaaaaaaaa

Stop

Initialize Model

Initialize coupler Initialize grid & fields

Time stepper

in-compartment step coupling

Post-processing Init_parallel_PDAF

Do i=1, nsteps Init_PDAF

Assimilate_PDAF Start

Initialize parallel.

(23)

Features of online-coupled DA program

• minimal changes to model code when combining model with filter algorithm

• model not required to be a subroutine

• no change to model numerics!

• model-sided control of assimilation program (user-supplied routines in model context)

• observation handling in model-context

• filter method encapsulated in subroutine

• complete parallelism in model, filter, and ensemble integrations

Aaaaaaaa Aaaaaaaa aaaaaaaaa

Start

Stop

Initialize Model

generate mesh Initialize fields

Time stepper

consider BC Consider forcing

Post-processing init_parallel_pdaf

Do i=1, nsteps init_pdaf

assimilate_pdaf

(24)

Nonlinear Ensemble Transform Filter & Smoother

Online coupling: Minimal changes to NEMO

Add to mynode (lin_mpp.F90) just before init of myrank

#ifdef key_USE_PDAF

CALL init_parallel_pdaf(0, 1, mpi_comm_opa)

#endif

Add to nemo_init (nemogcm.F90) at end of routine

#ifdef key_USE_PDAF

CALL init_pdaf()

#endif

Add to stp (step.F90) at end of routine

#ifdef key_USE_PDAF

CALL assimilate_pdaf()

#endif

Modify dyn_nxt (dynnxt.F90)

#ifdef key_USE_PDAF

IF((neuler==0 .AND. kt==nit000).OR.assimilate)

#else

Aaaaaaaa Aaaaaaaa aaaaaaaaa

Start

Stop

Initialize Model

generate mesh Initialize fields

Time stepper

consider BC Consider forcing

Post-processing init_parallel_pdaf

Do i=1, nsteps init_pdaf

assimilate_pdaf

Referenzen

ÄHNLICHE DOKUMENTE

Initial estimate of sea surface height (SSH) for the SEIK filter with ensemble size N = 8 (left) and true initial SSH field (right)... Comparison of the behavior of the SEIK

prescribed state estimate and error covariance matrix approximately by a stochastic ensemble of model states?. Forecast: Evolve each of the ensemble member states with the

Abstract. The theoretical investigation of sum and difference frequency generation in thin surface layers with rotational symmetry leads to formulas which connect the

In nonlinear systems, the analysis moments of the local ensemble transform Kalman filter (LETKF) [1] are biased due to the Gaussian assumption for prior density

nade next to the valley-temple of Hatshepsut functioned as a bark sanctuary during the festival since its axis is orientated along the former causeway which was then used as a

Both the aspect ratio Γ of the domain and the wave number q of the periodic pattern are dynamically selected, as shown in figure 5(a) for the case of a smooth, diffuse control

To assess the effect of partial water immersion on the mechanical characteristics of resting UT and TA muscles the measurements were made, and compared, when the subject was

In order to investigate the role of the quinone moiety as a relevant scaffold in azaanthracenone natural products, manip- ulation of the redox potential of the quinone motif was