GNSS-IR Real-Time Water Level Processing
A Python-based command line tool for real-time processing of low-cost GNSS-IR (Global Navigation Satellite System Interferometric Reflectometry) water level data.
About
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).
Installation
From PyPI (recommended)
pip install gnssir-rt
From Source
For an editable install:
git clone https://github.com/purnelldj/gnssir-rt.git
cd gnssir-rt
pip install -e .
Quick Start
Here's a complete example using test data from Saint-Joseph-de-la-Rive:
Step 1: Download Test Data
# 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-data
Step 2: Process the Data
gnssir --task arcs2splines --site_dir gnssir-data/sjdlr --config gnssir-data/sjdlr/sjdlr.yaml
This will generate a plot showing one day of processed water level data.
Usage
General Command Structure
gnssir --task TASK --site_dir SITE_DIR --config path/to/config.yaml
Configuration Options
You 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]'
Help and Documentation
gnssir --help # Show all available parameters
Data
Research Dataset
The 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.10114719
Note: The download is approximately 1GB.
SNR Data Format
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 |
Contributing
We welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or sharing new site configurations, your help is appreciated.
How to Contribute
- 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
Development Setup
For development work:
pip install -e ".[dev]" # Install with development dependencies
python -m pytest # Run tests
License
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
Citation
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
Acknowledgments
- The script make_gpt.py was adapted from the gnssrefl repository
- This work builds upon the broader GNSS-IR research community's contributions
Support
- 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
Metadata
Release files for gnssir-rt 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gnssir_rt-2.0.0.tar.gz | 4.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gnssir_rt-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.7 MB
Release files / gnssir_rt-2.0.0.tar.gz
| Download URL | gnssir_rt-2.0.0.tar.gz |
|---|---|
| Size | 4.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c83daebb3ae3b97f70e538e47b0dd7c00f3fe4533224125d2fc6c88727892a3
|
|
BLAKE2b-256 checksum How to use checksums |
548abe11006e70cf118f871e313b74e6998d7b3868081163c5429fe4d4eccd43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Release files / gnssir_rt-2.0.0-py3-none-any.whl
| Download URL | gnssir_rt-2.0.0-py3-none-any.whl |
|---|---|
| Size | 4.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c4cf7812fdb24be73c8e80bb4b2234917857370a050404f60857a113b0a07aec
|
|
BLAKE2b-256 checksum How to use checksums |
87b33d38914b2ab3432a8c964fcad637472d024c2900852e6d79a20be7524093
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|