Evaluates deep learning models for spatial precipitation downscaling by measuring both static reconstruction accuracy and dynamic temporal evolution of rainfall patterns. It probes whether models can capture realistic meteorological properties like heavy rain coverage, cluster movement, and transition speeds. Use when the user wants to benchmark on RainNet, or asks about evaluating this task. Reports PEM.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill rainnet-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Rainnet Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-rainnet-eval)More formats (shields.io, HTML) on the badges page.
---
name: rainnet-eval
description: Evaluates deep learning models for spatial precipitation downscaling by measuring both static reconstruction accuracy and dynamic temporal evolution of rainfall patterns. It probes whether models can capture realistic meteorological properties like heavy rain coverage, cluster movement, and transition speeds. Use when the user wants to benchmark on RainNet, or asks about evaluating this task. Reports PEM.
metadata:
skill_kind: dataset_eval
source_arxiv: 2012.09700
bibtex_key: chen2020rainnet
confidence: high
---
# rainnet-eval
> RainNet: A Large-Scale Imagery Dataset and Benchmark for Spatial Precipitation Downscaling — Chen et al. (2020) (arXiv:2012.09700, 2020)
## What this evaluates
Evaluates deep learning models for spatial precipitation downscaling by measuring both static reconstruction accuracy and dynamic temporal evolution of rainfall patterns. It probes whether models can capture realistic meteorological properties like heavy rain coverage, cluster movement, and transition speeds.
## Datasets
- **RainNet** — total 62400; splits: test (-1)
## Metrics
- `PEM` **(primary)** — range: other
- Precipitation Error Measure. Normalizes four reconstruction metrics (MPPE, HRRE, CPMSE, AMMD) by their Annual Mean Observations (AMO) to compute PBIAS, then averages them: PEM = 0.25 * Σ(|Metric_i| / |AMO_i|).
- `PDEM` — range: other
- Precipitation Dynamics Error Measure. Normalizes two dynamic metrics (HRTS, CMD) by their AMO to compute PBIAS, then averages them: PDEM = 0.5 * Σ(|Metric_i| / |AMO_i|).
## Input / output format
**Input**: Low-resolution spatial precipitation maps (rainfall intensity in mm/hour) across multiple time steps.
**Output**: High-resolution spatial precipitation maps (downscaled rainfall intensity in mm/hour) matching the ground truth resolution and time steps.
## Scoring recipe
```python
def compute_pem(pred, gt):
pem = 0.0
for m in ['MPPE', 'HRRE', 'CPMSE', 'AMMD']:
amo = get_amo(m) # Annual Mean Observation for metric m
pem += 0.25 * abs(compute_metric(m, pred, gt)) / amo
return pem
def compute_pdem(pred, gt):
pdem = 0.0
for m in ['HRTS', 'CMD']:
amo = get_amo(m)
pdem += 0.5 * abs(compute_metric(m, pred, gt)) / amo
return pdem
```
## Common pitfalls
- Using standard image super-resolution metrics (e.g., PSNR, SSIM) which fail to capture meteorological dynamics and temporal misalignment.
- Ignoring the need to normalize raw metrics by their Annual Mean Observations (AMO) before weighting, leading to scale-dominated scores.
- Evaluating single-frame outputs without considering temporal derivatives, which misses the dynamic precipitation properties the benchmark targets.
## Evidence (verbatim from paper)
> In order to further simplify the application of indices, we finally abstract them into two weighted and summed metrics: Precipitation Error Measure (PEM) and Precipitation Dynamics Error Measure (PDEM). We first align the dimensions of these two groups of metrics respectively. The first group of metrics (MPPE, HRRE, CPMSE, AMMD) is normalized, weighted , and summed to get the precipitation error measure (PEM). According to[[17]], all the metrics are transferred to Percent Bias (PBIAS) to be suitable for metrics weighting. The original definition of PBIAS is the bias divided by observation, as $PBIAS\=|Q_{model}-Q_{obs}|/|Q_{obs}|$. Here we rewrite the original metrics to PBIAS by dividing the metrics with annual mean observations of the original variables (AMO), as $PBIAS_{i}^{PEM}\=|Metrics_{i}^{PEM}|/|AMO_{i}^{PEM}|$, $Metrics_{i}^{PEM}\={MPPE,HRRE,CPMSE,AMMD}$. ... The metrics then are ensembled to a single metric (PEM) with equal weight, as $PEM\=\sum_{i}0.25\cdot PBIAS_{i}^{PEM}$. Following the same procedure, we then ensemble the second group of dynamic metrics (HRTS and CMD) to a single metrics $PDEM\=\sum_{i}0.5\cdot PBIAS_{i}^{PDEM}$.
## Citation
```bibtex
@misc{chen2020rainnet,
title={RainNet: A Large-Scale Imagery Dataset and Benchmark for Spatial Precipitation Downscaling},
author={Chen et al. (2020)},
year={2020},
note={arXiv:2012.09700}
}
```
- arXiv: 2012.09700
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!