Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 76% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: isronowcasting
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 3.4 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 5 months ago · Last pushed 5 months ago
Metadata Files
Readme License Citation

README.md

Skillful Nowcasting with Deep Generative Model of Radar (DGMR)

All Contributors <!-- ALL-CONTRIBUTORS-BADGE:END --> Implementation of DeepMind's Skillful Nowcasting GAN Deep Generative Model of Radar (DGMR) (https://arxiv.org/abs/2104.00954) in PyTorch Lightning.

This implementation matches as much as possible the pseudocode released by DeepMind. Each of the components (Sampler, Context conditioning stack, Latent conditioning stack, Discriminator, and Generator) are normal PyTorch modules. As the model training is a bit complicated, the overall architecture is wrapped in PyTorch Lightning.

The default parameters match what is written in the paper.

Installation

Clone the repository, then run shell pip install -r requirements.txt pip install -e . `

Alternatively, you can also install through pip install dgmr

Training Data

The open-sourced UK training dataset has been mirrored to HuggingFace Datasets! This should enable training the original architecture on the original data for reproducing the results from the paper. The full dataset is roughly 1TB in size, and unfortunately, streaming the data from HF Datasets doesn't seem to work, so it has to be cached locally. We have added the sample dataset as well though, which can be directly streamed from GCP without costs.

The dataset can be loaded with

```python from datasets import load_dataset

dataset = load_dataset("openclimatefix/nimrod-uk-1km") ```

For now, only the sample dataset support streaming in, as its data files are hosted on GCP, not HF, so it can be used with:

```python from datasets import load_dataset

dataset = load_dataset("openclimatefix/nimrod-uk-1km", "sample", streaming=True) ```

The authors also used MRMS US precipitation radar data as another comparison. While that dataset was not released, the MRMS data is publicly available, and we have made that data available on HuggingFace Datasets as well here. This dataset is the raw 3500x7000 contiguous US MRMS data for 2016 through May 2022, is a few hundred GBs in size, with sporadic updates to more recent data planned. This dataset is in Zarr format, and can be streamed without caching locally through

```python from datasets import load_dataset

dataset = loaddataset("openclimatefix/mrms", "defaultsequence", streaming=True) ```

This steams the data with 24 timesteps per example, just like the UK DGMR dataset. To get individual MRMS frames, instead of a sequence, this can be achieved through

```python from datasets import load_dataset

dataset = load_dataset("openclimatefix/mrms", "default", streaming=True) ```

Pretrained Weights

Pretrained weights are be available through HuggingFace Hub, currently weights trained on the sample dataset. The whole DGMR model or different components can be loaded as the following:

python from dgmr import DGMR, Sampler, Generator, Discriminator, LatentConditioningStack, ContextConditioningStack model = DGMR.from_pretrained("openclimatefix/dgmr") sampler = Sampler.from_pretrained("openclimatefix/dgmr-sampler") discriminator = Discriminator.from_pretrained("openclimatefix/dgmr-discriminator") latent_stack = LatentConditioningStack.from_pretrained("openclimatefix/dgmr-latent-conditioning-stack") context_stack = ContextConditioningStack.from_pretrained("openclimatefix/dgmr-context-conditioning-stack") generator = Generator(conditioning_stack=context_stack, latent_stack=latent_stack, sampler=sampler)

Example Usage

```python from dgmr import DGMR import torch.nn.functional as F import torch

model = DGMR( forecaststeps=4, inputchannels=1, outputshape=128, latentchannels=384, contextchannels=192, numsamples=3, ) x = torch.rand((2, 4, 1, 128, 128)) out = model(x) y = torch.rand((2, 4, 1, 128, 128)) loss = F.mse_loss(y, out) loss.backward() ```

Citation

@article{ravuris2021skillful, author={Suman Ravuri and Karel Lenc and Matthew Willson and Dmitry Kangin and Remi Lam and Piotr Mirowski and Megan Fitzsimons and Maria Athanassiadou and Sheleem Kashem and Sam Madge and Rachel Prudden Amol Mandhane and Aidan Clark and Andrew Brock and Karen Simonyan and Raia Hadsell and Niall Robinson Ellen Clancy and Alberto Arribas† and Shakir Mohamed}, title={Skillful Precipitation Nowcasting using Deep Generative Models of Radar}, journal={Nature}, volume={597}, pages={672--677}, year={2021} }

This project follows the all-contributors specification. Contributions of any kind welcome!

Owner

  • Login: isronowcasting
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  Open Climate Fix Implementation of Deep Generative Model
  of Radar precipitation forecasting model
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - name: Open Climate Fix
  - given-names: Jacob
    family-names: Prince-Bieker
    email: jacob@bieker.tech
identifiers:
  - type: url
    value: 'https://github.com/openclimatefix/skillful_nowcasting'
license: MIT

GitHub Events

Total
  • Push event: 1
  • Create event: 1
Last Year
  • Push event: 1
  • Create event: 1

Dependencies

pyproject.toml pypi
requirements.txt pypi
  • antialiased_cnns *
  • datasets *
  • einops *
  • huggingface_hub ==0.21.4
  • numpy *
  • pytorch_lightning *
  • pytorch_msssim *
  • tensorflow *
  • torch *
  • torchvision >=0.11.0
  • wandb *
setup.py pypi