Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SkimmerStatz

Skimmer/RBN analytics and SQLite-backed KPIs with fast native ingestion.

Quick Start

  • 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

Configuration (QTH / Locator)

Edit app/config/settings.json to set your station QTH:

{
  "qth": { "locator": "JN18", "lat": 48.85, "lon": 2.35 }
}
  • If locator is provided, it is converted to lat/lon and used for distance/azimuth.
  • If locator is missing/invalid, lat/lon fallback is used.

CLI Options

  • 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 by dx_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)

Aggregation Storage

  • Table: aggregates_window
    • Primary key: window_minutes, band_mhz, continent, bucket_ts
    • Metrics: count, uniques, snr_p90, distance_p90, opening_score
  • All aggregates are stored in one table with window_minutes to support multiple windows.

DXCC Coverage

  • app/ref/dxcc_prefixes.json implements 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.

Development Notes

  • 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.

GitHub via SSH

  1. Check if you have an SSH key:
    • ls ~/.ssh
  2. If you have id_rsa.pub or id_ed25519.pub, copy its content and add it in GitHub:
    • GitHub → Settings → SSH and GPG keys → New SSH key
  3. Set remote to SSH:
    • git remote set-url origin git@github.com:koalabang/SkimmerStatz.git
  4. Test connection:
    • ssh -T git@github.com (should say “Hi !”)
  5. Push:
    • git push -u origin main

Do not store tokens in commands, URLs, or repository files. Prefer SSH for day-to-day operations.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages