Machine learning application for detecting liquid droplets in mixed-phase clouds using Doppler cloud radar spectra
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.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23c664b82e041ea2b69f11dd4a14101407709194e2227625fcdefe2bda9a4421 |
|
MD5 | e371931b365d9c68e90489786cee0542 |
|
BLAKE2b-256 | 32700603f7aa9a8eec459d3e511fe6f8ab71f7b85f832b4cf46ec52480a8a39e |