Modules
The behavior of the plugin depends on the input and is subdivided into 4 modules:
Module |
Description |
---|---|
Shear Stress Module |
Analysis of spatial change in bed mobility |
Velocity Module |
Analysis of spatial change in larval motility |
Acoustics Module |
Analysis of acoustic propagation and thresholds |
Power Module |
Analysis of power generated by WEC/CEC array |
Shear Stress Module
The shear_stress_module.py is a component of SEAT. It’s aimed at assessing the impact of shear stressors on sediment mobility in aquatic environments. This module provides insights into how various devices or conditions can affect shear stress by allowing comparison between scenarios with and without these elements present.
Data
Input
NetCDF files: Contain shear stress data for scenarios with and without devices present.
Optional:
Receptor file: Contains critical shear stress values.
Probability/Boundary Condition file: Used to weight different run scenarios.
Output
GeoTIFF raster files: Visualize shear stress with and without devices, shear stress changes, and mobility classifications.
Output layers are interpolated onto structured grids.
calculated_stressor.tif : The probability weight difference between with devices and baseline models results.
calculated_stressor_with_receptor.tif
Shear Stress: the mobility (Tau/TauCrit) difference using the grain size in the receptor file.
receptor.tif : the receptor file interpolated to the same grid as the output
calculated_stressor_reclassified.tif :
Shear Stress: reclassified into increase erosion or deposition compared to the no device model run.
CSV files: Contain statistics of area changes and mobility classifications.
The stressor values are binned into 25 bins and the surface area in which that change occurred, the percent of the overall model domain, and number of cells within the stressor is saved to a csv file.
Lat/Lon converted to UTM (meter) coordinates for calculation.
UTM remains in the original unit of measure
When a receptor is included, the stressor and stressor with receptor values are further segmented by unique receptor values.
For acoustics, the threshold exceeded, the species percent, and species density are generated.
For Shear Stress and Velocity, the area of each unique reclassified value is defined and for each unique receptor value when included.
Sources
Default
SEAT is designed to read Delft3D, DelftFM *.map data files with structured and unstructured grids for shear stress and velocity.
Shear Stress variables:
Structured : TAUMAX
Unstructured : taus
Velocity variables:
Structured : U1, V1
Unstructured : ucxa, ucya
Coordinates are determined from the variable attributes
Alternative
Structured
Variable name TAUMAX
concatenated model runs [run number, depth, xcor, ycor]
Individual model runs [depth, xcor, ycor]
Unstructured
Variable name taus
concatenated model runs [run number, depth, xcor, ycor]
Individual model runs [depth, xcor, ycor]
Coordinate variable names must be in the variable attributes such that:
xcor, ycor = netcdf_dataset.variables[variable].coordinates.split()
Core Functions:
Function |
Description |
---|---|
|
Calculates critical shear stress from grain size. |
|
Classifies sediment mobility from device runs to no device runs. |
|
Determines the type of grid and corresponding shear stress variable name and coordinate names. |
|
Calculates the stressor layers as arrays from model and parameter input. |
|
Creates GeoTIFFs and area change statistics files for shear stress change. |
Velocity Module
The velocity_module.py is a component of SEAT aimed at assessing the impact of velocity stressors on larval motility in aquatic environments. This module provides insights into how various devices or conditions can affect velocity by allowing comparison between scenarios with and without these elements present.
Data
Input
NetCDF files: Contain velocity data for scenarios with and without devices present.
Optional:
Receptor file: Contains critical velocity values.
Probability/Boundary Condition file: Used to weight different run scenarios.
Output
GeoTIFF raster files: Visualize velocity with and without devices, velocity changes, and motility classifications.
Output layers are interpolated onto structured grids.
calculated_stressor.tif : The probability weight difference between with devices and baseline models results.
calculated_stressor_with_receptor.tif
Velocity: the motility (Vel/VelCrit) difference using the critical velocity in the receptor file.
receptor.tif : the receptor file interpolated to the same grid as the output
calculated_stressor_reclassified.tif :
Velocity : reclassified into increase motility or no change compared to the no device model run.
CSV files: Contain statistics of area changes and motility classifications.
The stressor values are binned into 25 bins and the surface area in which that change occurred, the percent of the overall model domain, and number of cells within the stressor is saved to a csv file. + Lat/Lon converted to UTM (meter) coordinates for calculation. + UTM remains in the original unit of measure
When a receptor is included, the stressor and stressor with receptor values are further segmented by unique receptor values.
For Velocity, the area of each unique reclassified value is defined and for each unique receptor value when included.
Sources
Default
The acoustics module is designed for paracousti data sources (https://sandialabs.github.io/Paracousti/).
Acoustics variables:
The variable is specified in the receptor file to allow for various weighting, sound pressure level, or sound exposure level thresholds.
Coordinates are determined from the variable attributes
Alternative
Structured
Variable names : U1, V1
concatenated model runs [run number, time, depth, xcor, ycor]
Individual model runs [time, depth, xcor, ycor]
Unstructured
Variable names : ucxa, ucya
concatenated model runs [run number, time, depth, xcor, ycor]
Individual model runs [time, depth, xcor, ycor]
Coordinate variable names must be in the variable attributes such that:
xcor, ycor = netcdf_dataset.variables[variable].coordinates.split()
Core Functions:
Function |
Description |
---|---|
|
This function classifies larval motility into various categories such as Reduced, Increased, or New Motility based on the comparison of device runs and baseline (no device) runs. |
|
Determines the type of grid (structured/unstructured) and defines corresponding velocity and coordinate variable names. |
|
Main function that loads data, performs calculations, and computes various metrics including velocity differences and motility classifications. |
|
Creates GeoTIFFs and CSV files to visualize and quantify velocity changes and motility classifications. |
Acoustics Module
The acoustics_module.py is a component of the SEAT aimed at assessing the impact of acoustic signal changes from paracoustic files. This module facilitates the understanding and visualization of how different acoustic variables alter in aquatic environments, especially when devices are present.
Data
Input
NetCDF files: Contain acoustic data for scenarios with and without devices present.
Optional:
Receptor file: Contains threshold values for acoustic variables.
Probability/Boundary Condition file: Used to weight different run scenarios.
Species files: Contains density or percent data of species.
Output
GeoTIFF raster files: Visualize calculated paracoustic, calculated stressor, threshold exceeded receptor, species percent and species density.
Output layers are interpolated onto structured grids.
calculated_stressor.tif : The probability weight difference between with devices and baseline models results.
for acoustics assumes baseline=0 if no baseline model files provided.
receptor.tif : the receptor file interpolated to the same grid as the output
calculate_paracousti.tif : the calculated with device probability weighted paracousti file.
Threshold_exceeded_receptor.tif : the percent of time the acoustic threshold was exceeded.
species_percent.tif : the threshold exceeded and weighted species percent.
species_density.tif : the threshold exceeded and weighted species density.
CSV files: Contain statistics of area calculations for various layers.
The stressor values are binned into 25 bins and the surface area in which that change occurred, the percent of the overall model domain, and number of cells within the stressor is saved to a csv file.
Lat/Lon converted to UTM (meter) coordinates for calculation.
UTM remains in the original unit of measure
When a receptor is included, the stressor and stressor with receptor values are further segmented by unique receptor values.
For acoustics, the threshold exceeded, the species percent, and species density are generated.
Sources
Default
The acoustics module is designed for paracousti data sources (https://sandialabs.github.io/Paracousti/).
Acoustics variables:
The variable is specified in the receptor file to allow for various weighting, sound pressure level, or sound exposure level thresholds.
Coordinates are determined from the variable attributes
Alternative
The Acoustics module can utilize alternate datasets with the following requirements:
Variable name must be specified in the receptor file.
Variable attributes must include the coordinates variable names, such that:
xcor, ycor = netcdf_dataset.variables[variable].coordinates.split()
The coordinates units attribute must include “degrees” if the coordinates are lat/lon such that:
‘degrees’ in ds.variables[<xcor variable>].units is True for lat/lon
Core Functions:
Function |
Description |
---|---|
|
Interpolates or creates an array of percent or density of species from input files and coordinates. |
|
Calculates the stressor layers as arrays from model and parameter input. |
|
Creates GeoTIFFs and area change statistics files for acoustic stressor change. |
|
(From stressor_utils) Redefines grids to regular spacing, used in calculate_acoustic_stressors. |
|
(From stressor_utils) Resamples grids, used in calculate_acoustic_stressors. |
Power Module
The power_module.py is a component of SEAT crafted to calculate the power output from a device array, providing a systematic means of evaluating and visualizing the spatial distribution, location, and power output from the devices in a specific marine environment.
Data
Input
.OUT files: Contain power data for different scenarios.
.pol file: Contains information on the obstacle polygon configurations.
Optional: - Probability/Boundary Condition file: Used to weight different run scenarios.
Output
When a directory is specified for the device power the following are generated.
CSV:
BC_probability_wPower.csv : probabilities input file with appended power generated for each scenario
Obstacle_Matching.csv : Obstacle pairs corresponding to a single device and centroid X,Y.
Power_per_device_annual.csv : Total power generated (Watts) per device over the annual timespan (probabilities file).
Power_per_device_per_scenario.csv : Table of total power generated (Watts) with device (row), and power file (column).
PNG:
Scaled_Power_per_device_per_scenario.png : subplots of bar graph of power generated for each run per device.
Scaled_Power_per_device_per_obstacle.png : subplots of bar graph of power generated for each run per obstacle.
Total_Scaled_Power_Bars_per_Run.png : Bar graph of total power generated for each run scenario (probabilities file).
Total_Scaled_Power_Bars_per_obstacle.png : Bar graph of total power generated for each obstacle.
Total_Scaled_Power_per_Device.png : Bar graph of total power generated for each device
Obstacle_Locations.png : Spatial plot of XY coordinates for each obstacle endpoint.
Device Number Locations.png : Spatial plot of XY coordinates for each device.
Device_Power.png : Spatial heat map of total power generated (mega watts) for each device.
Core Functions:
Function |
Description |
---|---|
|
Reads the obstacle polygon file to obtain xy coordinates of each obstacle. |
|
Calculates the center of each obstacle based on xy coordinates. |
|
Creates a plot showing the spatial distribution and location of each obstacle. |
|
Determines the closest centroid pair among obstacles. |
|
Creates a dictionary summary of each device location. |
|
Determines the two intersecting obstacles that create a device. |
|
Creates a heatmap visualizing device location and power output. |
|
Reads power file and extracts final set of converged data. |
|
Sorts data files by run order based on boundary conditions data. |
|
Sorts boundary condition data by run order. |
|
Resets the order of boundary condition data. |
|
Reads the power files, calculates the total annual power based on hydrodynamic probabilities, and saves data and visualizations. |