Skip to content

isrugeek/climate_extreme_values

Repository files navigation

Forecasting Maxima in Climate Time Series

Israel Goytom, Kris Sankaran

Project | Paper

alt data from a

Abstract

Climate change is already altering the probabilities of weather hazards. Accurate prediction of climate extremes can inform effective preparation against weather-induced stresses. Accurately Forecasting extreme weather events is a task that has attracted interest for many years. Classical and, to a lesser extent, machine learning-based approaches have handled this issue; however, such systems are hard to tune or scale. While the prediction of extremes has been the subject of investigation across several communities, including meteorology, machine learning, and statistics, it has been subject to far less scrutiny than the prediction of conditional means. In this work, we offer a systematic comparison of existing approaches on a pair of common tasks, maximum temperature, and precipitation prediction. Further, motivated by this comparison, we propose a method to forecast maxima in time series that unifies deep learning with extreme value theory.

A Pytorch implmentation for Forecasting Maxima in Climate Time Series

Dataset

Note: Please Download the dataset file from climate.weather.gc.ca, Kaggle or Subseasonal Dataset

A recipe to get started

Prerequisites

  • Linux or OSX

  • Python 3.6

  • NVIDIA GPU + CUDA CuDNN (CPU mode and CUDA without CuDNN may work with minimal modification, but untested)

  • Clone this repo:

git clone https://github.com/isrugeek/climate_extreme_values
cd climate_extreme_values

Setup python enviroment

  • to install python packages requirements.txt
pip install -r requirements.txt

Make sure to follow This to prepare the dataset, if you are using the Subseasonal dataset.

  • If you are using the Kaggle dataset you need to interpolate using interpolate.R

Run the code from the main directory which the README.md is located

Train model

-Train using train_main.py by adding suffix which model you want to train eg.python train_main.py LSTM for LSTM the three options are : LSTM, GULSTM, ENCDEC

Test Model

-Forecast using forecaster.py

main.ipynb is an interactive notebook to test the forecaster.

Note: This project is still under development