资源简介

数据同化的经典算法,集合卡尔曼滤波算法,用Matlab写的,里面附有一些参考文献,初学者适用

资源截图

代码片段和文件信息

% function [dx A] = assimilate(prm A HA pos dy stats)
%
% Calculates correction of the ensemble mean and updates the ensemble anomalies.
%
% @param prm - system parameters
% @param A - ensemble anomalies (n x m)
% @param HA - ensemble observations (p x m)
% @param pos - coordinates of observations (p x 1)
% @param dy - vector of increments dy = y - Hx (p x 1)
% @param stats - system statistics
% @return dx - correction of the mean dx = K dy
% @return A - updated ensemble anomalies

% File:           assimilate.m
%
% Created:        23/03/2009
%
% Last modified:  19/11/2009
%
% Author:         Pavel Sakov
%                 NERSC
%
% Purpose:        Contains core code for asynchronous data assimilation with the
%                 EnKF.
%
% Description:    This procedure calculates the analysis correction and updates
%                 the ensemble by applying scheme specified by prm.method.
%                 It assumes that the system runs in the asynchronous regime
%                 i.e. that both increments ‘dy‘ and ensemble observations ‘HA‘
%                 contain values recorded at the time of observations.
%                 There are some differences with the assimilate.m that handles
%                 synchronous observations:
%                 (i) There are no batches of observations anymore. If there
%                     are too many observations - one can always use LA 
%                     localisation and conduct analysis in the ensemble space
%                 (ii) Not all schemes are available for every localisation
%                     method. Following are the lists of available schemes for 
%                     each method.
%                     * With no localisation or with LA:
%                       EnKF
%                       DEnKF
%                       ETKF
%                       Potter
%                       EnOI
%                     * With CF:
%                       EnKF
%                       DEnKF
%                       EnOI
%
% Revisions:

%                 1.10.2009 PS:
%                   -- Fixed a defect in the EnKF scheme (an extra division by
%                      sqrt(r) for D)
%                   -- Introduced CF localisation with only three schemes at
%                      the moment: EnKF DEnKF and EnOI
%                 19.11.2009 PS:
%                   -- Updated description in the file header
%                 5.8.2010 PS:
%                   -- Modified LA part to accommodate “rfactor“
%                 25/08/2010 PS:
%                   - This file formerly known as assimilate_a.m now replaced
%                     the previous (synchronous) version of assimilate.m

%% Copyright (C) 2009 Pavel Sakov
%% 
%% This file is part of EnKF-Matlab. EnKF-Matlab is a free software. See 
%% LICENSE for details.

function [dx A] = assimilate(prm A HA pos dy stats)
    
    m = prm.m;
    n = prm.n;
    r = prm.obs_variance;
    rfactor = prm.rfactor;
    p = size(HA 1);
    np = prm.n

评论

共有 条评论