Difference between revisions of "Nonlinear Filtering for Data Assimilation of SemiLagrangian Ocean Glider Data"
Line 2:  Line 2:  
The goal of this project is to develop efficient techniques for assimilating glider data into nonlinear ocean models. First, it will involve taking current particle filtering data assimilation techniques for 2D ocean models and scaling them to work on higher dimensional, more realistic, and more complex models—such as models with unknown time varying strengths of vortices—in a computationally feasible way. To start, these techniques will focus on assimilating data from tracers which only move with the flow, unlike gliders which can maneuver themselves. Then, the next task is to develop techniques for assimilating gliderlike data (instead of tracer data) into these models and utilizing modelbased prediction to help inform future flight paths of the glider. The final task will be to scale the ocean model to include a third spatial dimension and adapting the previous method to inform the glider's future flight path in three dimensions.  The goal of this project is to develop efficient techniques for assimilating glider data into nonlinear ocean models. First, it will involve taking current particle filtering data assimilation techniques for 2D ocean models and scaling them to work on higher dimensional, more realistic, and more complex models—such as models with unknown time varying strengths of vortices—in a computationally feasible way. To start, these techniques will focus on assimilating data from tracers which only move with the flow, unlike gliders which can maneuver themselves. Then, the next task is to develop techniques for assimilating gliderlike data (instead of tracer data) into these models and utilizing modelbased prediction to help inform future flight paths of the glider. The final task will be to scale the ocean model to include a third spatial dimension and adapting the previous method to inform the glider's future flight path in three dimensions.  
−  
−  
= Outline/Timeline of Research =  = Outline/Timeline of Research = 
Revision as of 20:13, 3 February 2011
Contents
Nonlinear Filtering for Data Assimilation of SemiLagrangian Ocean Glider Data
The goal of this project is to develop efficient techniques for assimilating glider data into nonlinear ocean models. First, it will involve taking current particle filtering data assimilation techniques for 2D ocean models and scaling them to work on higher dimensional, more realistic, and more complex models—such as models with unknown time varying strengths of vortices—in a computationally feasible way. To start, these techniques will focus on assimilating data from tracers which only move with the flow, unlike gliders which can maneuver themselves. Then, the next task is to develop techniques for assimilating gliderlike data (instead of tracer data) into these models and utilizing modelbased prediction to help inform future flight paths of the glider. The final task will be to scale the ocean model to include a third spatial dimension and adapting the previous method to inform the glider's future flight path in three dimensions.
Outline/Timeline of Research
1/24/11
Info
The experiment_script.m
from this version is, again, a script that performs an experiment to look at how the particle filter performs with different noise parameters and time step size. I used time steps of Δt = 1.0, 1.5, 2.0, 3.0 and noise standard deviation σ = 0.02, 0.03, 0.05. The tracer started at the location 0.3 − 0.6i. The vortices both have a strength of 2π. The strengths of the vortices are known for this experiment.
Notes
 Strengths are known.
 Small step size of 1/200 is used for integration (instead of 1/100 which was used previously).
Files
Directory ~/research/1_13_11/
Filename  Description 

experiment_script.m

Driver script for running numerous simulations of the particle filter. This version runs the particle filter with time steps of Δt = 1.0, 1.5, 2.0, 3.0 and noise standard deviation of σ = 0.02, 0.03, 0.05. The tracer started at the location 0.3 − 0.6i. The vortices both have a strength of 2π. All variables saved in workspace.mat . Number of failures (error in vortex position of greater than 1) is saved in N_f.mat and average error is saved in d.mat .

two_point_vortex_particle_filter.m

Generic function for performing a single simulation using the particle filter. Vortex strengths are known. Allows arbitrary number of observations, arbitrary time steps, arbitrary number of particles, arbitrary strengths for vortices. Can only handle two vortices. Returns a time series of the errors between the weighted mean of the cloud and the true state of the system. Also, returns a time series of the variances of the weighted distributions of particles for each small time step. 
SRK4.m

Numerical RungeKutta integration for stochastic differential equations. Function f.m is the deterministic part. Function g.m is the stochastic part.

f.m

Deterministic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

g.m

Stochastic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

H.m

Observation operator. Here, it maps the entire state vector to a two vector containing just the first two entries (the tracer location) of the state vector. 
R.m

Fitness function for determining weights of particles after comparison with an observation. 
1/20/11
Info
The experiment_script.m
from this version is a script that performs an experiment to look at how the particle filter performs with different noise parameters and time step size. I used time steps of Δt = 1.0, 1.5, 2.0 and noise standard deviation σ = 0.02, 0.03, 0.05. The tracer started at the location 0.3 − 0.6i. The vortices both have a strength of 2π. Results are poor; they are much worse than those from Chris's paper using the same parameters. In my experiment the strengths of the vortices were unknown, but in Chris's they were known. Next, I will run the same experiment with the strengths known.
Notes
 Strengths were unknown, but in Chris's paper they were known.
 May need more particles. I used 400 (the same number used in Dr. Spiller's paper).
Files
Directory ~/research/1_13_11/
Filename  Description 

experiment_script.m

Driver script for running numerous simulations of the particle filter. This version runs the particle filter with time steps of Δt = 1.0, 1.5, 2.0 and noise standard deviation of σ = 0.02, 0.03, 0.05. The tracer started at the location 0.3 − 0.6i. The vortices both have a strength of 2π. All variables saved in workspace.mat . Number of failures (error in vortex position of greater than 1) is saved in N_f.mat and average error is saved in d.mat .

two_point_vortex_particle_filter.m

Generic function for performing a single simulation using the particle filter. Vortex strengths are unknown. Allows arbitrary number of observations, arbitrary time steps, arbitrary number of particles, arbitrary strengths for vortices. Can only handle two vortices. Returns a time series of the errors between the weighted mean of the cloud and the true state of the system. Also, returns a time series of the variances of the weighted distributions of particles for each small time step. 
SRK4.m

Numerical RungeKutta integration for stochastic differential equations. Function f.m is the deterministic part. Function g.m is the stochastic part.

f.m

Deterministic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

g.m

Stochastic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

H.m

Observation operator. Here, it maps the entire state vector to a two vector containing just the first two entries (the tracer location) of the state vector. 
R.m

Fitness function for determining weights of particles after comparison with an observation. 
1/19/11
Info
The main changes in this version are mostly just code clean ups. Previously, an entirely different cloud of particles (with different realizations of the random noise process used during integration) was used for the Lagrangian frame, instead of just appropriately rotating the cloud to get the Lagrangian frame. The particle filter now uses the same cloud for plotting the movement of the cloud in both frames, but simply rotates the axes through time according to the constant angular velocity of the rotation of the vortices. Also, now the particle filter now computes and records a time series of the variances of the weighted distributions of particles (for each state variable).
Notes
 The particle filter still only handles 2 vortices.
 I need to make a script to extract all the given/assumed system parameters used in the experiment and output them into a nice, neat, easily readable file.
Files
Directory ~/research/1_13_11/
Filename  Description 

experiment_script.m

Driver script for running numerous simulations of the particle filter. All variables saved in workspace.mat . Error time series for the weighted mean of the particle cloud are saved in errors.mat . Time series of the variances of the distributions of particles are saved in variances.mat .

two_point_vortex_particle_filter.m

Generic function for performing a single simulation using the particle filter. Vortex strengths are unknown. Allows arbitrary number of observations, arbitrary time steps, arbitrary number of particles, arbitrary strengths for vortices. Can only handle two vortices. Returns a time series of the errors between the weighted mean of the cloud and the true state of the system. Also, returns a time series of the variances of the weighted distributions of particles for each small time step. 
SRK4.m

Numerical RungeKutta integration for stochastic differential equations. Function f.m is the deterministic part. Function g.m is the stochastic part.

f.m

Deterministic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

g.m

Stochastic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

H.m

Observation operator. Here, it maps the entire state vector to a two vector containing just the first two entries (the tracer location) of the state vector. 
R.m

Fitness function for determining weights of particles after comparison with an observation. 
1/13/11
Info
This version marks the start of Spring 2011 research. I have turned the particle filter script into a generic function that takes the system and filter parameters as arguments. It is restricted to just two vortices, but allows for different strengths. Also, the vortex strengths are unknown to the particle filter. I also have included the experiment_script.m
script which runs numerous simulations of the particle filter. The resulting error time series are saved in errors.mat
and all the variables are saved in workspace.mat
.
Notes
 The variances for the initial distribution of particles is still hardcoded into
two_point_vortex_particle_filter.m
instead of being arguments.  The variance (actually st. dev) of the stochastic part of the differential equation is hardcoded into
g.m
instead of being an argument to the particle filter. I'm not sure which is more appropriate, so I'm keeping it ing.m
for now.
Files
Directory ~/research/1_13_11/
Filename  Description 

experiment_script.m

Driver script for running numerous simulations of the particle filter. All variables saved in workspace.mat . Error timeseries for the weighted mean of the particle cloud are saved in errors.mat .

two_point_vortex_particle_filter.m

Generic function for performing a single simulation using the particle filter. Vortex strengths are unknown. Allows arbitrary number of observations, arbitrary time steps, arbitrary number of particles, arbitrary strengths for vortices. Can only handle two vortices. Returns a time series of the errors between the weighted mean of the cloud and the true state of the system. 
SRK4.m

Numerical RungeKutta integration for stochastic differential equations. Function f.m is the deterministic part. Function g.m is the stochastic part.

f.m

Deterministic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

g.m

Stochastic part of the stochastic differential equation describing the system used in two_point_vortex_particle_filter.m .

H.m

Observation operator. Here, it maps the entire state vector to a two vector containing just the first two entries (the tracer location) of the state vector. 
R.m

Fitness function for determining weights of particles after comparison with an observation. 
Fall 2010
Info
This directory contains all files used in Fall 2010.
 It contains a script for a particle filter with resampling applied to the two point vortex system with equal and known vortex strengths.
 It contains a script for a particle filter with resampling applied to the two point vortex system with different, but known, vortex strengths.
 It contains a script for a particle filter with resampling applied to the two point vortex system with different and unknown vortex strengths.
 It contains a numerical RungeKutta integration routine for stochastic differential equations.
Files
Directory ~/research/Fall_2010