A Python-based command line tool for real-time processing of low-cost GNSS-IR (Global Navigation Satellite System Interferometric Reflectometry) water level data.
This software accompanies the research article "Real-time water levels using GNSS-IR: a potential tool for flood monitoring" by Purnell et al., published in Geophysical Research Letters (2024).
pip install gnssir-rtFor an editable install:
git clone https://github.com/purnelldj/gnssir-rt.git
cd gnssir-rt
pip install -e .Here's a complete example using test data from Saint-Joseph-de-la-Rive:
# Download the test dataset
wget https://github.com/purnelldj/gnssir-rt/raw/main/tests/data/sjdlr.zip
# Create data directory and extract to it
mkdir -p gnssir-data
unzip sjdlr.zip -d gnssir-datagnssir --task arcs2splines --site_dir gnssir-data/sjdlr --config gnssir-data/sjdlr/sjdlr.yamlThis will generate a plot showing one day of processed water level data, as shown below.
gnssir --task TASK --site_dir SITE_DIR --config path/to/config.yamlYou can either change parameters directly in a configuration file or from the command line as shown below.
gnssir --task arcs2splines --site_dir gnssir-data/sjdlr --config gnssir-data/sjdlr/sjdlr.yaml \
--azilims '[190, 230]'gnssir --help # Show all available parametersThe complete SNR dataset used in the accompanying research paper is available on Zenodo: 10.5281/zenodo.10114719
To download the dataset:
pip install zenodo_get
zenodo_get 10.5281/zenodo.10114719Note: The download is approximately 1GB.
The software expects SNR data in a specific format similar to the gnssrefl format, with the following modifications:
| Column | Description |
|---|---|
| 1 | Satellite number |
| 2 | Elevation angle (degrees) |
| 3 | Azimuth angle (degrees) |
| 4 | GPS time (instead of seconds of day) |
| 5 | L1 SNR values |
We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or sharing new site configurations, your help is appreciated.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/yourusername/gnssir-rt.git cd gnssir-rt - Create a new branch for your feature:
git checkout -b feature/your-feature-name
- Make your changes and test them thoroughly
- Commit your changes with clear, descriptive messages:
git commit -m "Add feature: description of your changes" - Push to your fork and submit a pull request
For development work:
pip install -e ".[dev]" # Install with development dependencies
python -m pytest # Run testsThis project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
If you use this software in your research, please cite:
Purnell, D., et al. (2024). Real-time water levels using GNSS-IR: a potential tool
for flood monitoring. Geophysical Research Letters.
https://doi.org/10.1029/2023GL105039
- The script make_gpt.py was adapted from the gnssrefl repository
- This work builds upon the broader GNSS-IR research community's contributions
- Issues: Report bugs or request features via GitHub Issues
- Discussions: Join community discussions in GitHub Discussions
- Email: For direct inquiries, contact the maintainers
Keywords: GNSS-IR, water level monitoring, flood detection, interferometric reflectometry, remote sensing
