Giter Club home page Giter Club logo

deepprecip's Introduction

GitHub Workflow Status DOI

alt text

DeepPrecip

DeepPrecip is a deep convolutional multilayer perceptron that takes active radar measurements of the lower atmosphere as input from K-band radar and returns a surface accumulation estimate. DeepPrecip was trained on 8 years of data from nine observation sites across the northern hemisphere. As a general precipitation model, it can estimate both surface rain and snow accumulation at 20-minute temporal resolution.

alt text

Installation

python scikit_learn tensorflow

If you wish to train and run your own version of DeepPrecip, you can follow the steps below. Note that Python >= 3.7 and Anaconda is required.

  git clone https://github.com/frasertheking/DeepPrecip.git
  conda env create -f req.yml
  conda activate deep_precip
  python deep_precip.py

Data

MRR, Pluvio and meteorologic files are also available via the Zenodo link: https://doi.org/10.5281/zenodo.5976046

Train/Test

For optimal performance, we do a 90/10 train/test split on the available observational datasets. However, DeepPrecip was also tested in a leave-one-site-out cross validation and shown to provide good skill at predicting precipitation on completely unseen sites. If you have access to an MRR and would like to test your own data with DeepPrecip, please feel free or reach out to me for assistance. The training study sites and periods are shown below.

sites

Run on IPU

To run DeepPrecip on IPUs, create a new IPU environment by enabling the Poplar SDK & installing the Poplar Tensorflow wheel as described in the IPU Getting Started Guide, then install the relevant requirements.

virtualenv /path/to/new/virtual/environment
source /path/to/new/virtual/environment/bin/activate
source [path_to_SDK]+/poplar-ubuntu_18_04-[poplar_ver]+[build]/enable.sh
pip install tensorflow-[ver]+[platform].whl
pip install -r ipu_requirements.txt

Next follow similar instructions as above to clone the repository and download the data:

git clone https://github.com/frasertheking/DeepPrecip.git
cd DeepPrecip
mkdir ./runs
mkdir ./checkpoints
wget https://frasertheking.com/downloads/deep_precip_example_data.zip
unzip deep_precip_example_data.zip

Then to run on IPUs, run the following command:

python deep_precip_ipu.py

Model Performance

Attached are precipitation accumulation comparisons between DeepPrecip and a collection of commonly used Z-S and Z-R relationships. For more information on how these were performed, please see our article.

res1 res2

Throughput

DeepPrecip model training throughput was also examined on a variety of different hardware setups (shown below).

Support

For support, please email the corresponding author (Fraser King) at [email protected]

License

Copyright 2022 Fraser King

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

deepprecip's People

Contributors

frasertheking avatar

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.