Quick Start¶
The easiest way to start using the package is to install it using pip install rainfallqc.
To use RainfallQC in a project, a polars dataframe can be directly input to the QC checks like:
import polars as pl
import rainfallqc.gauge_checks
data = pl.read_csv("path/to/your/rain_gauge_data.csv")
flags = rainfallqc.gauge_checks.check_intermittency(data, target_gauge_col="rain_mm")
All quality control checks in the RainfallQC package begin with check_
Content overview¶
RainfallQC contains six modules:
gauge_checks- For detecting abnormalities in summary and descriptive statistics.comparison_checks- For detecting abnormalities by comparing to benchmark data.timeseries_checks- For detecting abnormalities in patterns of the data record.neighbourhood_checks- For detecting abnormalities based on measurements in neighbouring gauges.subhourlyqc_checks- An extension for IntenseQC to be applied to sub-hourly rainfall data.pypwsqc_filters- For applying quality assurance protocols and filters for rainfall data.
You can find a jupyter notebook with an easy-to-follow example here
Which checks are suitable for my data’s temporal resolution?¶
As you can imagine, not all quality control checks are suitable for all temporal resolutions. Therefore, we have created a table that shows which checks are suitable for which temporal resolutions, and which can be applied after aggregating data (“agg”) to a coarser temporal resolution.
Short name |
Long name |
<15-min |
15-min |
hourly |
daily |
monthly |
|---|---|---|---|---|---|---|
QC1 |
✓ |
✓ |
✓ |
✓ |
✓ |
|
QC2 |
✓ |
✓ |
✓ |
✓ |
✓ |
|
QC3 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC4 |
✓ |
✓ |
✓ |
☓ |
☓ |
|
QC5 |
✓ |
✓ |
✓ |
✓ |
✓ |
|
QC6 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC7 |
✓ |
✓ |
✓ |
✓ |
✓ |
|
QC8 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC9 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC10 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC11 |
✓ |
✓ |
✓ |
☓ |
☓ |
|
QC12 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC13 |
agg |
agg |
✓ |
✓ |
☓ |
|
QC14 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC15 |
agg |
agg |
✓ |
✓ |
☓ |
|
QC16 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC17 |
✓ |
✓ |
✓ |
☓ |
☓ |
|
QC18 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC19 |
✓ |
✓ |
✓ |
☓ |
☓ |
|
QC20 |
agg |
agg |
agg |
agg |
✓ |
|
QC21 |
✓ |
✓ |
✓ |
✓ |
☓ |
|
QC22 |
✓ |
✓ |
✓ |
✓ |
✓ |
|
QC23 |
✓ |
✓ |
✓ |
✓ |
✓ |
|
QC24 |
agg |
agg |
agg |
✓ |
☓ |
|
QC25 |
agg |
agg |
agg |
agg |
✓ |
|
HQC_UK1hr |
✓ |
✓ |
☓ |
☓ |
☓ |
|
HQC_UK24hr |
✓ |
✓ |
☓ |
☓ |
☓ |
|
HQC_UK24hr_rolling |
✓ |
✓ |
☓ |
☓ |
☓ |
|
HQC_streaks_20mm |
✓ |
✓ |
☓ |
☓ |
☓ |
|
SHQC_freqResChecker |
✓ |
✓ |
☓ |
☓ |
☓ |
|
SHQC_subH_checkr |
✓ |
✓ |
☓ |
☓ |
☓ |
|
FZ |
✓ |
✓ |
✓ |
✓ |
☓ |
|
SO |
✓ |
✓ |
✓ |
☓ |
☓ |