GSSHA Model

GSSHAModel

class gsshapy.modeling.GSSHAModel(project_directory, project_name=None, mask_shapefile=None, grid_cell_size=None, elevation_grid_path=None, simulation_timestep=30, out_hydrograph_write_frequency=10, roughness=None, land_use_grid=None, land_use_grid_id=None, land_use_to_roughness_table=None, db_session=None, project_manager=None)[source]

This class manages the generation and modification of models for GSSHA.

Parameters:
  • project_directory (str) – Directory to write GSSHA project files to.
  • project_name (Optional[str]) – Name of GSSHA project. Required for new model.
  • mask_shapefile (Optional[str]) – Path to watershed boundary shapefile. Required for new model.
  • grid_cell_size (Optional[str]) – Cell size of model (meters). Required for new model.
  • elevation_grid_path (Optional[str]) – Path to elevation raster used for GSSHA grid. Required for new model.
  • simulation_timestep (Optional[float]) – Overall model timestep (seconds). Sets TIMESTEP card. Required for new model.
  • out_hydrograph_write_frequency (Optional[str]) – Frequency of writing to hydrograph (minutes). Sets HYD_FREQ card. Required for new model.
  • roughness (Optional[float]) – Value of uniform manning’s n roughness for grid. Mutually exlusive with land use roughness. Required for new model.
  • land_use_grid (Optional[str]) – Path to land use grid to use for roughness. Mutually exlusive with roughness. Required for new model.
  • land_use_grid_id (Optional[str]) – ID of default grid supported in GSSHApy. Mutually exlusive with roughness. Required for new model.
  • land_use_to_roughness_table (Optional[str]) – Path to land use to roughness table. Use if not using land_use_grid_id. Mutually exlusive with roughness. Required for new model.
  • db_session (Optional[database session]) – Active database session object. Required for existing model.
  • project_manager (Optional[ProjectFile]) – Initialized ProjectFile object. Required for existing model.

Model Generation Example:

from datetime import datetime, timedelta
from gsshapy.modeling import GSSHAModel

model = GSSHAModel(project_name="gssha_project",
                   project_directory="/path/to/gssha_project",
                   mask_shapefile="/path/to/watershed_boundary.shp",
                   grid_cell_size=1000,
                   elevation_grid_path="/path/to/elevation.tif",
                   simulation_timestep=10,
                   out_hydrograph_write_frequency=15,
                   land_use_grid='/path/to/land_use.tif',
                   land_use_grid_id='glcf',
                   )
model.set_event(simulation_start=datetime(2017, 2, 28, 14, 33),
                simulation_duration=timedelta(seconds=180*60),
                rain_intensity=2.4,
                rain_duration=timedelta(seconds=30*60),
                )
model.write()