This project proposes a community-driven, version-controlled approach where all cleaning decisions are explicitly recorded and auditable.
Why?
Cleaning tide gauge data is often:
manual
poorly documented
hard to reproduce
difficult to review or share
Concept
The core idea of ioc_cleanup is declarative cleaning.
Instead of scripts or notebooks, all cleaning decisions are:
- Explicit
- Version controlled
- Human-readable
- Reviewable
Cleaning logic lives entirely in JSON files.
Why it matters
This methodology allows:
- Flagging:
- bad or corrupt data (timestamp / data ranges)
- sensor breakpoints
- singular phenomena (e.g. tsunamis, meteo-tsunamis, seiches, or unidentified events)
- Reproducible cleaning
- Transparent and traceable decisions stored in plain JSON
- Peer review of cleaning decisions via GitHub
- Easy extension to any other datasets (e.g. GESLA, NDBC)
- Gradual growth in station coverage through community contributions
Transformations
Each station/sensor pair is described by a JSON file located in:
These files define the transformation from raw data → clean signal by declaring:
- valid time windows
- dropped timestamps
- dropped ranges
- breakpoints
- notes and metadata
More details in the JSON format
Dataset Details
Cleaned Stations
Download the database as a csv: cleaned_ioc_stations.csv
Coverage
Data availability
Ratio of data removed
Note
The above figures have been generated with the helper functions in scripts/ folder:
download_ioc.pyto download IOC stationsgenerate_stations_csv.pyto build the cleaned stations dataset from thetransformationsfolder and the IOC station dataset (from step 1)generate_maps.pyto create maps and graphs for the online documentationsave_cleaning_scenarios.pyto create the time series graphs used in the online documentation
Steps 3 and 4 require to have run step 1 for all cleaned IOC stations.