[ Buffer Around Sections]
Derive river width from a binary watermask and a set of sections
BAS is a simple Python-based toolbox designed to compute river widths from a space-borne watermask given a set of section (line geometries) set along the river.
Main version available on github : https://github.com/CS-SI/BAS
The toolbox works in a specific environment that can be installed through conda using the environment_bas.yml file
conda env create -f environment_bas_py38.yml # for python 3.8
# or
conda env create -f environment_bas_py310.yml # for python 3.10
# then install BAS (make sure you are in the source directory)
pip install -e .
# then try to access the entry point
run_bas -h
Using a virtual environment is strongly recommended.
If you have python-3.12 and sw1Dto2D
is already installed, then running this command will install BAS requirements
# if gdal is not yet installed
pip install GDAL==`gdal-config --version`
pip install -e .
# then try to access the entry point
run_bas -h
This entrypoint is to compute BAS widths on Surfwater-like watermasks.
# On TREX cluster load a working version of python 3.12
module load otb/9.0.0-python3.12
# then create a dedicated virtual env
python3 -m venv ${YOUR_VENV_PATH}
# you will need sw1dto2d for python 3.12
cd ${SW1DTO2D_DIR_PATH}
${YOUR_VENV_PATH}/bin/pip install -e .
# then go back to your source directory to install BAS module
cd ${BAS_DIR_PATH}
${YOUR_VENV_PATH}/bin/pip install -e .
# then try to access the entry point
source ${YOUR_VENV_PATH}/bin/activate
run_bas -h
This entrypoint is to compute BAS widths on Surfwater-like watermasks.
To run examples, use the entrypoint
run_examples
To use BAS on Surfwater-like watermasks, here is the general command
run_bas -w /path/to/water_mask.tif -dt YYYYmmddThhmmss -r /path/to/eu_sword_reaches_hb23_v16.shp -n /path/to/eu_sword_nodes_hb23_v16.shp -o /path/to/output/directory
This will only save a csv file with widths data. You can had --more_outputs
to also save the cleaned watermask and the shapefile.
Using the BAS toolbox, you can perform two tasks :
- Given a watermask (as a GeoTiff file), a set on centerline reaches (as a shapefile of LineString) and a set of sections (as a shapefile of LineString), derive the river widths along the sections
- If the sections lines are not available, using the centerline reaches (as a shapefile of LineString) and a set of segmentation points (as a shapefile of Point), you can draw the sections yourself
BAS is licensed by CS GROUP under the Apache License, version 2.0. A copy of this license is provided in the LICENSE file.