Skimmer/RBN analytics and SQLite-backed KPIs with fast native ingestion.
- Requirements: Node.js 18+, macOS/Linux, SQLite optional.
- Install deps:
cd app && npm install
- Parse and enrich a log sample:
node src/cli/parse-log.js --file ../AggregatorLog.txt --enrich --stats --by band_mhz,continent
- Seed SQLite with aggregates:
- Default 15 min:
npm run db:seed - Single window:
node src/cli/seed-db.js --db ./skimmer.db --file ../out_enriched.json --window 30 - Multi-windows:
node src/cli/seed-db.js --db ./skimmer.db --file ../out_enriched.json --windows 5,15,60
- Default 15 min:
Edit app/config/settings.json to set your station QTH:
{
"qth": { "locator": "JN18", "lat": 48.85, "lon": 2.35 }
}- If
locatoris provided, it is converted to lat/lon and used for distance/azimuth. - If
locatoris missing/invalid,lat/lonfallback is used.
-
parse-log.js--file <path>: input log file--enrich: add DXCC, continent, region, distance, azimuth--stats: print KPIs (count, uniques, SNR mean/p90, Distance p90)--dedupe: de-duplicate bydx_call|ts_utc|freq_khz--by k1,k2: breakdown by fields (e.g.,band_mhz,continent)--filter k=v,k2=v2: filter results (equality on number/string)
-
seed-db.js--db <path>: SQLite path--file <path>: enriched JSON (newline JSON items)--window N: single aggregation window (minutes)--windows a,b,c: multiple windows (minutes)
- Table:
aggregates_window- Primary key:
window_minutes, band_mhz, continent, bucket_ts - Metrics:
count, uniques, snr_p90, distance_p90, opening_score
- Primary key:
- All aggregates are stored in one table with
window_minutesto support multiple windows.
app/ref/dxcc_prefixes.jsonimplements longest-prefix match with country/continent and lat/lon centroid.- The dataset includes common EU/AS/NA/SA/AF/OC prefixes; can be extended with more granular regional prefixes.
- Fast ingestion powered by
better-sqlite3. - Distances computed with great-circle (Haversine) from QTH to DX centroid.
- Locator conversion supports 2/4/6/8-character Maidenhead locators.
- Check if you have an SSH key:
ls ~/.ssh
- If you have
id_rsa.puborid_ed25519.pub, copy its content and add it in GitHub:- GitHub → Settings → SSH and GPG keys → New SSH key
- Set remote to SSH:
git remote set-url origin git@github.com:koalabang/SkimmerStatz.git
- Test connection:
ssh -T git@github.com(should say “Hi !”)
- Push:
git push -u origin main
Do not store tokens in commands, URLs, or repository files. Prefer SSH for day-to-day operations.