Author: Pak Hui Ying
E-mail: pakhuiying95[at]gmail[dot]com
CoastalWQL is an open-source software tailored for UAV-based water quality monitoring with a pushbroom hyperspectral imager. It performs the following workflow:
- Sensor: Bayspec's OCI-F Hyperspectral push broom sensor
- Interactive selection of regions for image stitching
- Interactive image alignment with real-time time delay correction
- Producing false-composite images from different hyperspectral bands (default is rgb)
- Sun glint correction using SUGAR to avoid over-correction in turbid/shallow regions
- Radiometric calibration and correction
- Image registration/direct-georeferencing
- de-striping of push broom hyperspectral imagery
- Image segmentation and masking (for masking out non-water objects)
- Extraction of spectral information based on supplied water quality information (e.g. coordinates, in-situ measurements)
- Prediction of water quality map using Nechad et al (2010)'s semi-analytical algorithm
- Extraction of weather variables (wind-speed, wind-direction, air-temperature, relative humidity) (only applicable for retrieving from Singapore's weather stations for now)
python == 3.6
- conda
gdal == 3.0.2
py-xgboost == 0.90
rasterio == 1.1.0
- pip
- numpy
- pandas
- matplotlib
- sklearn
- scipy
- OpenCV
pysimplegui == 4.55.1
- Download anaconda (optional but recommended)
- Clone or download this repository into your preferred directory
- Create a virtual environment using
conda env create -f env.yml
(recommended) ORpip install -r CoastalWQL_requirements.txt
- In your preferred IDE, run
GUI_platform.py
- For testing image segmentation and masking, users can supply their own model or try out using the supplied segmentation model
xgb_segmentation.json
- For testing model prediction, users may supply their own model or try out the models in the turbidity_prediction folder
- Alternatively, run the code in the python notebook
CoastalWQL_nb.ipynb
- Example inputs are provided but hyperspectral images and spectrometer not shared on github due to the sheer size of the data (~70-80GB of images).
- Example images and spectrometer data acquired from Nanyang Lake in Nanyang Technological University are shared here
For more details on CoastalWQL's features, do read Pak et al (2024): An Open-Source Tool for Drone-Based Mapping of Coastal Turbidity Using Push Broom Hyperspectral Imagery.
For a video demonstration, click here