Contest & RBN Apps¶
Four Go binaries for downloading and ingesting amateur radio contest logs and Reverse Beacon Network spot data.
contest-download¶
Downloads public Cabrillo logs from CQ and ARRL contest websites. Supports
15 contest series with configurable year/mode filtering and rate limiting.
Part of ionis-apps (Go binary).
contest-download v3.0.2 — Contest Log Downloader
Usage: contest-download [flags]
Downloads public Cabrillo logs from CQ and ARRL contest websites.
Good neighbor: sequential requests, configurable delay, resume-friendly.
-contest string
Contest key (use --list to see options, or 'all') (default "all")
-delay duration
Delay between HTTP requests (default 3s)
-dest string
Destination directory (default "/mnt/contest-logs")
-dry-run
Fetch indexes and build manifests only, no log downloads
-list
List available contests and exit
-mode string
Download only this mode: ph, cw (empty = all modes)
-refresh
Re-fetch index pages even if manifest exists
-timeout duration
HTTP request timeout (default 1m0s)
-year int
Download only this year (0 = all years)
Contests:
cq-ww CQ WW CQ modes: ph, cw years: 2005-2025
cq-wpx CQ WPX CQ modes: ph, cw years: 2008-2025
cq-ww-rtty CQ WW RTTY CQ modes: (single mode) years: 2009-2024
cq-wpx-rtty CQ WPX RTTY CQ modes: (single mode) years: 2012-2025
cq-160 CQ 160 CQ modes: ph, cw years: 2022-2025
ww-digi WW Digi CQ modes: (single mode) years: 2019-2025
arrl-dx-cw ARRL DX CW ARRL modes: (single mode) years: 2018-2025
arrl-dx-ph ARRL DX Phone ARRL modes: (single mode) years: 2018-2025
arrl-10m ARRL 10m ARRL modes: (single mode) years: 2018-2024
arrl-160m ARRL 160m ARRL modes: (single mode) years: 2018-2024
arrl-ss-cw ARRL SS CW ARRL modes: (single mode) years: 2018-2024
arrl-ss-ph ARRL SS Phone ARRL modes: (single mode) years: 2018-2024
arrl-rtty ARRL RTTY RU ARRL modes: (single mode) years: 2018-2025
arrl-digi ARRL Digital ARRL modes: (single mode) years: 2022-2025
iaru-hf IARU HF ARRL modes: (single mode) years: 2018-2025
Examples:
contest-download --list
contest-download --contest cq-ww --year 2024 --mode cw
contest-download --contest arrl-dx-cw --year 2024
contest-download --dry-run
contest-download --delay 5s
contest-ingest¶
Walks contest log directories, parses Cabrillo V2/V3 headers and QSO lines,
normalizes bands via ADIF lookup, and bulk-inserts into contest.bronze.
Optionally enriches wspr.callsign_grid with grid locators.
Part of ionis-apps (Go binary).
contest-ingest v3.0.2 — Parse Cabrillo contest logs into ClickHouse
Usage: contest-ingest [flags]
Walks --src/{contest}/{yearmode}/*.log, parses Cabrillo headers
and QSO lines, normalizes band via ADIF lookup, and inserts into
ClickHouse using ch-go native protocol with LZ4 compression.
-batch int
Rows per INSERT batch (default 100000)
-contest string
Process only this contest key (empty = all)
-db string
ClickHouse database (default "contest")
-enrich
Also insert GRID-LOCATOR into wspr.callsign_grid
-host string
ClickHouse host:port (default "192.168.1.90:9000")
-src string
Source directory with {contest}/{yearmode}/*.log (default "/mnt/contest-logs")
-table string
ClickHouse table (default "bronze")
-workers int
Parallel file workers (default 8)
Examples:
contest-ingest --contest cq-ww --workers 4
contest-ingest --enrich
contest-ingest --src /mnt/contest-logs --host 10.60.1.1:9000
rbn-download¶
Downloads daily ZIP archives of CW/RTTY spots from the Reverse Beacon Network.
Covers the full archive from 2009 to present (~6,183 files, ~21 GB).
Part of ionis-apps (Go binary).
rbn-download v3.0.2 — Reverse Beacon Network Archive Downloader
Usage: rbn-download [flags]
Downloads daily ZIP archives of CW/RTTY spots from the RBN.
Each ZIP contains a CSV with 13 columns (callsign, freq, SNR, etc.).
Good neighbor: sequential requests, configurable delay, resume-friendly.
-delay duration
Delay between HTTP requests (default 3s)
-dest string
Destination directory (default "/mnt/rbn-data")
-dry-run
Show what would be downloaded, don't fetch
-from string
Start date (YYYY-MM-DD) (default "2009-02-21")
-list
List available year ranges and estimated sizes
-timeout duration
HTTP request timeout (default 2m0s)
-to string
End date (YYYY-MM-DD, default: yesterday)
-year int
Download only this year (0 = all years)
Data source: https://data.reversebeacon.net/rbn_history/
Archive range: 2009-02-21 to present (~6,183 files, ~21 GB)
Examples:
rbn-download --list
rbn-download --year 2024
rbn-download --from 2024-01-01 --to 2024-12-31
rbn-download --dry-run
rbn-download --delay 5s
rbn-ingest¶
Streams RBN daily ZIP archives into ClickHouse. Handles all three CSV format
eras (11-column 2009–2010, 13-column 2011+) with automatic detection.
Part of ionis-apps (Go binary).
rbn-ingest v3.0.2 — Stream RBN ZIP archives into ClickHouse
Usage: rbn-ingest [flags]
Reads daily ZIP files from --src/{year}/*.zip, parses CSV,
normalizes band via ADIF lookup, and inserts into ClickHouse
using ch-go native protocol with LZ4 compression.
Handles all three RBN CSV format eras:
2009-2010: 11 columns (no speed/tx_mode)
2011+: 13 columns (speed + tx_mode)
-batch int
Rows per INSERT batch (default 100000)
-db string
ClickHouse database (default "rbn")
-host string
ClickHouse host:port (default "192.168.1.90:9000")
-src string
Source directory with {year}/*.zip (default "/mnt/rbn-data")
-table string
ClickHouse table (default "bronze")
-workers int
Parallel ZIP workers (default 8)
-year int
Process only this year (0 = all)
Examples:
rbn-ingest --year 2024 --workers 4
rbn-ingest --workers 8
rbn-ingest --src /mnt/rbn-data --host 10.60.1.1:9000