Saved in:
| Main Authors: | , |
|---|---|
| Format: | Recurso digital |
| Language: | |
| Published: |
Zenodo
2025
|
| Online Access: | https://doi.org/10.5281/zenodo.17035869 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Table of Contents:
- <p>This repository contains the codes and scripts for the study <em>“Machine Learning-based Representation of Model Error and Observation Error with estimated Cross-Correlation in Data Assimilation”</em>. The framework integrates machine learning with data assimilation to better represent model error covariance, observation error covariance, and their cross-correlation structures.</p> <p> </p> <p><strong>Usage</strong></p> <p>1. This repository provides the trained model along with the corresponding normalization parameters.</p> <p>• generator_best.keras: a trained ML model for predicting the model error fields</p> <p>• final_generator_R.keras: a trained ML model (U-Net / GAN based) for predicting the observation error covariance matrix.</p> <p>• R_norm_params.npz: normalization parameters for R-matrix, containing R_mean and R_std.</p> <p>• obs_norm_params.npz: normalization parameters for observation vectors, containing mean and standard deviation of observations.</p> <p>• model_mean.npy / model_std.npy: normalization parameters for the model state variables.</p> <p>• delta_mean.npy / delta_std.npy: normalization parameters for model error fields.</p> <p>2. Training scripts are included(R_train.py , model_train.py), but the training data are not provided here.</p> <p>• The training data are generated from the Lorenz model.</p> <p>• To retrain, please run the Lorenz model to create your own dataset.</p> <p>3. DA <strong> </strong>Programs</p> <p>• main_DAcycle.py: the main assimilation cycle program, which controls the data assimilation loop.</p> <p>• DA_Lorenz.py: the assimilation algorithm implementation.</p> <p>• da_parameters.py: the assimilation parameter configuration file, where users can set assimilation window, localization radius, inflation factor.</p> <p>• 3000ini_data.mat: ensemble of initial states.</p> <p>• Other related programs are Lorenz model components .These must be used together when running the assimilation programs.</p> <p> </p> <p>How to create train dataset:</p> <p>1. Run the Lorenz model for long integrations</p> <p>• Use Lorenz05.py to integrate the Lorenz model for a sufficiently long time.</p> <p>• At each time step, save the state variables at different scales.</p> <p>2. Define truth, model, and error</p> <p>• Mixed-scale fields are regarded as the truth.</p> <p>• Large-scale variables are regarded as the model output (background).</p> <p>• Small-scale variables are treated as the model error source.</p> <p>3. For model error training (model_train.py)</p> <p>• Input<strong>:</strong> model output (large-scale).</p> <p>• Target: model error field (Small-scale).</p> <p>• This dataset is used to train generator_best.keras.</p> <p>4. For observation error covariance training (R_train.py)</p> <p>• Generate observation sequences of length 50 from the truth run.</p> <p>• Add noise to simulate observation error.</p> <p>• Input<strong>:</strong> observation sequences (length = 50).</p> <p>• Target<strong>:</strong> corresponding observation error covariance matrices (R).</p> <p>• This dataset is used to train final_generator_R.keras.</p>