HydroSTIV
Measure river surface velocity and discharge from phone video.
What it is
A native Android app that measures river surface velocity from video using Space-Time Image Velocimetry (STIV). Point a phone at moving water, draw search lines parallel to the flow, and the app builds a space-time image along each line: surface texture drifting downstream shows up as diagonal stripes, and the stripe angle -- found with a structure tensor -- is the pixel velocity. Calibration turns that into metres per second. Add depth soundings and it estimates discharge by the velocity-area method.
- Runs entirely on the phone: Jetpack Compose and CameraX. Record HD video in-app or import it; no PC, no server, no upload.
- Calibration by direct entry or by measuring a reference scale in frame, with optional perspective rectification for oblique footage and lens barrel-distortion correction.
- Per-line velocity profiles with a coherence score; results below 0.3 coherence are excluded rather than reported.
- Discharge output in m³/s and ML/d, measurement overlay on the video, session persistence, CSV export.
- Honest about what it is: a measurement tool and prototype, not a calibrated instrument. Search lines are placed by hand, and it lacks the AI robustness features of the commercial product.
Screenshots
How it works
Code and download
Android 8+, about 19 MB. Signed with the standard Android debug key: it installs fine, but a later Play Store or properly signed build will need this one uninstalled first.
MIT licensed. No agency sensor register and no key material is included. Field engineering on a live warning path, published because the reasoning may help others — not a product, no warranty.