Voodoo method
Project description
VoodooNet
Predicting liquid droplets in mixed-phase clouds beyond lidar attenuation using artificial neural nets and Doppler cloud radar spectra
VOODOO is a machine learning approach based convolutional neural networks (CNN) to relate Doppler spectra morphologies to the presence of (supercooled) liquid cloud droplets in mixed-phase clouds.
Installation
Prerequisites
VoodooNet requires Python 3.10.
Before installing VoodooNet, install PyTorch according to your infrastructure. For example on a Linux machine without GPU you might run:
pip3 install torch --extra-index-url https://download.pytorch.org/whl/cpu
From PyPI
pip3 install voodoonet
Locally for development
pip3 install -e .[dev]
Usage
Make predictions using the default model and settings
import glob
import voodoonet
rpg_files = glob.glob('/path/to/rpg/files/*.LV0')
probability_liquid = voodoonet.infer(rpg_files)
Generate a training data set
Download some RPG-FMCW-94 raw files and corresponding classification files from the Cloudnet data portal API. For example, for Leipzig LIM between 2021-01-10 and 2021-01-15:
curl "https://cloudnet.fmi.fi/api/raw-files?dateFrom=2021-01-10&dateTo=2021-01-15&site=leipzig-lim&instrument=rpg-fmcw-94" | jq '.[]["downloadUrl"]' | xargs -n1 curl -O
curl "https://cloudnet.fmi.fi/api/files?dateFrom=2021-01-10&dateTo=2021-01-15&site=leipzig-lim&product=classification" | jq '.[]["downloadUrl"]' | xargs -n1 curl -O
import glob
import voodoonet
rpg_files = glob.glob('*.LV0')
classification_files = glob.glob('*classification.nc')
voodoonet.generate_training_data(rpg_files, classification_files, 'training-data-set.pt')
Alternatively, just use N random days:
import voodoonet
voodoonet.generate_training_data_for_cloudnet('leipzig-lim', 'training-data-set.pt', n_days=5)
Train a VoodooNet model
import voodoonet
pre_computed_training_data_set = 'training-data-set.pt'
voodoonet.train(pre_computed_training_data_set, 'trained-model.pt')
Make predictions using the new model
import glob
import voodoonet
from voodoonet.utils import VoodooOptions
rpg_files = glob.glob('/path/to/rpg/files/*.LV0')
options = VoodooOptions(trained_model='new_model.pt')
probability_liquid = voodoonet.infer(rpg_files, options=options)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for voodoonet-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1cfbe63f670e39873a1cefddbdcb4ff3dc736a1db49a10e0b612ee0f8b63799 |
|
MD5 | 40c3635579b9cb9c730a340ca654a6d8 |
|
BLAKE2b-256 | ea95916f0dfb6dfc059b35a5947461a7ca16c47bcced558bc646ed5acd43e5ea |