Skip to content

An open-source software, CoastalWQL provides an automated end-to-end processing and analysis that encompasses an image stitching procedure independent of the scene’s texture, radiometric correction, stripe noise removal, sun glint correction, extraction of spectral information based on in-situ water quality sampling, prediction of a water qualit…

License

Notifications You must be signed in to change notification settings

pakhuiying/CoastalWQL

Repository files navigation

[Lifecycle:Maturing]

Author: Pak Hui Ying
E-mail: pakhuiying95[at]gmail[dot]com

CoastalWQL

Source: Pak et al (2024) An Open-Source Tool for Drone-Based Mapping of Coastal Turbidity Using Push Broom Hyperspectral Imagery

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)

alt text

Software preview

Dependencies

  • 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

Usage

  • 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) OR pip 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

About

An open-source software, CoastalWQL provides an automated end-to-end processing and analysis that encompasses an image stitching procedure independent of the scene’s texture, radiometric correction, stripe noise removal, sun glint correction, extraction of spectral information based on in-situ water quality sampling, prediction of a water qualit…

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published