Files for processing raw data from the tidal tilting flume 'The Metronome' in Python
The main branch has the following sub-branches, with the following files:
Contains demo scripts to load data from the dataset paper (to be submitted)
Contains all relevant metadata for each of the experiments, required as input for the python demo scripts below. Each scripts follows the Yoda repository directory structure
Demo script to load laserscan DEMs
Demo script to load 1Hz Overhead orthomosaics
Demo script to load DSLR orthomosaics
Demo script to load PIV Overhead orthomosaics
Demo script to load interval Overhead orthomosaics
Demo script to load water depth maps derived from 1Hz Overhead orthomosaics, including masks
Demo script to load water depth maps derived from interval Overhead orthomosaics, including masks
Computes orthomosaics from overhead series through base model alignment and combines them into a single timelapse video
Computes a single orthomosaics from a specified overhead series (Experiment ...; cycle .....)
Computes water depth maps (or derived elevation) from overhead orthomosaics through the random forest models and combines them into a single timelapse video
Contains the function that translate and Overhead series into an orthomosaic
Contains the function that debayers raw overhead imagery and the functions that transform RGB orthomosaics into various color spaces
Contains the function that creates the timelapse of Overhead series orthomosaics
Contains the function that creates the timelapse of Overhead series water depth maps (or derived elevation) through Random Forest models
Contains the function that flattens arrays of Overhead data require to create an orthomosaic
Computes DEMs from laserscans through Base model geometry-based laserscan method and plots them in three possible ways.
Computes DoDs from two different DEMs. It is compatible for different DEM methods
Translates our NetCDF format to a GeoTIFF compatible for GIS applications
Contains the functions that translate gridded laserscan data into DEMs through Base model geometry-based laserscan method
Contains the function that translates our NetCDF format to a GeoTIFF compatible for GIS applications
Contains the functions that apply distortion correction to raw laserscan data
This file creates basic plots from Metronome DEMs in NetCDF format.
Computes orthomosaics from DSLR surveys through base model alignment
Computes orthomosaics and DEMs for Individually aligned and Base model-aligned DSLR surveys
Contains the function that translates an Agisoft GeoTIFF into the NetCDF format we use
Contains the functions that translate DSLR surveys into orthomosaics and DEMs
This script processes the water level measurements from the Metronome.
Apply Gaussian smoothing of Overhead orthomosaics
Transform smoothened RGB orhtomosaics into the relevant colorspaces
Train the Random Forest Classifier and Regressor models with the Validation datasets of the various dye concentrations.
Validate the Random Forest models with the Training and Validation dastsets of their respective dye concentrations
Apply cross-model validation of the Random Forest models with the Training and Validation datssets of the other dye concentrations
Validate the Random Forest models with the Experimental datssets
- python 3.10 (not tested for later versions). Environment (yml) file included in the main branch
- Agisoft Metashape v. 1.8.5 (tested for v. 2.0.4)
The .nc (NetCDF) files for the DEMs, masks and water depth maps can be read using scripting software such as MATLAB, Python or R. Important is to know how these NetCDF files are constructed. The Python demos provide code to loas these .nc files. They contain the following variables:
X-axis: (start,end,step) of the entire X-axis. In numpy you can extract the whole axis as follows: np.arange(xAxis[0],xAxis[1],xAxis[2])
Y-axis: (start,end,step) of the entire Y-axis. In numpy you can extract the whole axis as follows: np.arange(yAxis[0],yAxis[1],yAxis[2])
Z percentiles (only for DEMs): The Z-percentile values that are stored in the NetCDF file. This is by default only the median (i.e. [50])
Z-axis (for DEMs): List of Gridded elevation data (meshgrid described in X-axis and Y-axis), stored per percentile. As the default is only median, this list contains by default only one grid
Z-axis (for water depth maps): List of Gridded water depth data (meshgrid described in X-axis and Y-axis). The dry cells in these water depth maps are represented by 0
mask (only for masks): binary map yielding 1 for the relevant area (active area of the estuaries) and 0 for the masked out data (inactive bed + location bridge + delta + sea)
Data supplement to "Remote sensing of a gantry-equipped facility: optimizing accuracy by integrating SfM photogrammetry and laserscan computer graphics through fixed base model geometry" (https://doi.org/10.1016/j.jag.2026.105098).
Data supplement to "Quantitative water depth determination in large experimental timeseries through combining spectrophotometry and machine learning" (https://doi.org/10.22541/essoar.177082648.88604562/v1).
- DATASET PAPER TO BE SUBMITTED AND SOON AVAILABLE ON YODA