Parses
rtl_power scans and finds quiet frequencies
- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| scans | ||
| src/analyzer | ||
| .gitignore | ||
| .python-version | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
MeshCore Analyzer
A utility for processing rtl_power outputs and finding channels that are quieter
Getting Started
- Install uv
- Run
uv syncto install dependencies - Run the analyzer with
uv run analyzer
Usage
Usage: analyzer [OPTIONS] COMMAND [ARGS]...
Utility for finding suitable bands for mesh networks
Options:
--help Show this message and exit.
Commands:
merge Merge rtl_power csv files
parse Analyze rtl_power csv files
Merger Usage
Usage: analyzer merge [OPTIONS] [INPUT_PATH]...
Merge multiple rtl_power csv/csv.gz files into a single csv.gz file
Positional arguments:
[INPUT_PATH]... one or more rtl_power CSV files (.csv or .csv.gz) and/or
directories of CSV files
Options:
-o, --output-file PATH CSV file to write to [required]
-p, --pattern TEXT glob pattern used when an input path is a directory
(default: matches *.csv and *.csv.gz; pass multiple
times to match more than one pattern)
-r, --recursive when an input path is a directory, also search
subfolders
--help Show this message and exit.
Parser Usage
Usage: analyzer parse [OPTIONS] [INPUT_PATH]...
Find the N quietest (lowest average power) frequency bands of a given width
across one or more rtl_power CSV logs.
Point it at a single CSV, several CSVs, and/or a folder of CSVs (e.g.
recordings taken at different times of day) and it will combine them into
one average spectrum before searching for quiet bands. Gzipped logs
(.csv.gz) are read transparently, uncompressed on the fly.
Positional arguments:
[INPUT_PATH]... one or more rtl_power CSV files (.csv or .csv.gz) and/or
directories of CSV files
Options:
-p, --pattern TEXT glob pattern used when an input path is a directory
(default: matches *.csv and *.csv.gz; pass multiple
times to match more than one pattern)
-r, --recursive when an input path is a directory, also search
subfolders
-b, --block-list PATH CSV file of frequency bands to exclude (rows:
start_freq,end_freq[,label] - e.g.
462.5625M,462.7375M,GMRS). Any candidate band
overlapping a blocked band is skipped.
-t, --top INTEGER number of quietest bands to report [default: 10]
-o, --csv-out PATH Optionally write results to this CSV file
--band-width INTEGER band width in Hz to search for [default: 500000]
--min-freq FLOAT ignore data below this frequency, in Hz [default:
902000000.0]
--max-freq FLOAT ignore data above this frequency, in Hz [default:
928000000.0]
--allow-overlap allow reported bands to overlap each other
--weight-by-samples weight every individual sample equally across all
files combined, instead of weighting every file
equally (default: every file/recording counts
equally)
--help Show this message and exit.
Blocked Frequencies
Blocked frequencies can be defined with a CSV. An example is provided below:
start_freq,end_freq,label
908.500M,909.000M,MT LongTurbo
906.750M,907.000M,MT LongFast
913.000M,913.250M,MT MediumFast
910.49375M,910.55625M,MC Default
902.000M,903.400M,AARL Lower
927.000M,928.000M,AARL Upper