Coder Social home page Coder Social logo

liuchao95 / deeplearningmjo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from antoine-delaunay/deeplearningmjo

0.0 0.0 0.0 101 KB

Repository containing the code of "Interpretable Deep Learning for Probabilistic MJO Prediction" by A. Delaunay and H.M. Christensen (2022)

License: GNU General Public License v3.0

Python 100.00%

deeplearningmjo's Introduction

Interpretable Deep Learning for Probabilistic MJO Prediction

This repository contains the code used for the paper "Interpretable Deep Learning for Probabilistic MJO Prediction" by A. Delaunay and H. M. Christensen (2022).

Abstract

The Madden–Julian Oscillation (MJO) is the dominant source of sub-seasonal variability in the tropics. It consists of an Eastward moving region of enhanced convection coupled to changes in zonal winds. It is not possible to predict the precise evolution of the MJO, so sub-seasonal forecasts are generally probabilistic.

We present a deep convolutional neural network (CNN) that produces skilful state-dependent probabilistic MJO forecasts. Importantly, the CNN’s forecast uncertainty varies depending on the instantaneous predictability of the MJO. The CNN accounts for intrinsic chaotic uncertainty by predicting the standard deviation about the mean, and model uncertainty using Monte-Carlo dropout.

Interpretation of the CNN mean forecasts highlights known MJO mechanisms, providing confidence in the model. Interpretation of forecast uncertainty indicates mechanisms governing MJO predictability. In particular, we find an initially stronger MJO signal is associated with more uncertainty, and that MJO predictability is affected by the state of the Walker Circulation.

Disclaimer

This code is not suitable for a use on a conventional laptop (e.g. memory or CPU capacity). The authors decline any responsibility associated with the use of this repository.

License

This repository is provided under the GNU General Public License v3.0.

Dependencies

Packages used in their latest version as of 09/08/2021:

Repository structure

NB: Files directories and other variables must be adapted to your environment and needs in all the scripts

The repository is organised as follows:

  • CNN

The CNN folder contains the files to build a model and a dataset (once the input fields have been first preprocessed following Wheeler and Hendon) and train the CNN. CompareFeatures compares the performance of the CNN with different subsets of input features and requires to have trained before different CNNs beforehand.

	- Dataset.py
	- Model.py
	- Preprocessing.py
	- Train.py
	- CompareFeatures.py 
  • Analysis

The Analysis folder contains the necessary files to preprocess the S2S reforecasts ".txt" files to obtain a forecast dataframe for each lead time, to compute and compare (Log-score and Error-drop) the CNN and dynamical models. PreprocessingDynamical and AnalysisDynamical must be run once per model to obtain the scores of each model. Then PlotMetrics and PlotSpreadDiagram plots all the scores on a common plot.

	- AnalysisCNN.py
	- AnalysisDynamical.py
	- PreproprocessingDynamical.py
	- PlotMetrics.py
	- PlotSpreadDiagram.py
  • Interpretation

The Interpretation folder contains the necessary files to interpret the network's behaviour and the predictability of the forecasts. The signals can be computed by running Train followed by ComputeSignal. The Maritime Continent, Predictability and SignalMeans plots can be run with the associated files but AnalysisCNN must have been run beforehand.

	- MaritimeContinent
		- PlotMC.py
	- PatternNet
		- Train.py
		- ComputeSignal.py
		- patterns.py
		- PatternNetworks.py
		- PatternLayers.py
	- Predictability
		- PlotPredictability.py
	- SignalMeans
		- PlotSignalMeans.py

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.