Simple tools for working with ScintPi and GNSS scintillation data.
This repository provides utilities and pipelines for:
- converting raw binary data to Parquet
- adding derived products (TEC, S4, sigma_phi, etc.)
- running processing workflows
- plotting ScintPi data
The Level 3 product schema and automatic quality-flag rules are documented in
docs/lvl3.md.
src/scintkit/reading/ # binary readers and data loading
src/scintkit/preprocessing/ # formatting and preprocessing
src/scintkit/services/ # core computations (TEC, S4, phase detrending)
src/scintkit/utils/ # helper utilities
src/scintkit/pipelines/ # end-to-end processing pipelines
tests/ # test scripts and example notebooks
Clone with git:
git clone https://github.com/qwsae10/scintkit.git
cd scintkitOr download as a ZIP from GitHub and extract it.
Editable install for development:
python -m pip install -e .This makes the package importable as scintkit.
You can import and run core processing functions directly.
from scintkit.pipelines.auto import process
process("example.bin.zip")This will:
- convert raw data to parquet
- apply preprocessing
- compute derived products
- output lvl3 files
The maintained station registry can identify a receiver from coordinates:
from scintkit.data import identify_station
station = identify_station(latitude=32.9919, longitude=-96.7573)
print(station["Code"]) # US-TX1It can also read legacy coordinate filenames or SC4 station prefixes:
station = identify_station(
filename="scintpi3_20241011_1200_96.7573W_32.9919N_v326f_lvl0.pq"
)The function returns the matching CSV row as a dictionary. It returns None
when no station is within 3 km. Pass max_distance_km= to change that limit.
See:
examples/compare_oct11.ipynb
This notebook shows how to:
- load raw data
- run processing steps
- compare outputs