Skip to content

Getting Started

FGM edited this page Oct 19, 2026 · 2 revisions

Getting Started

The Coastal Hazards, Engineering and Structures System (CHESS) runs in MATLAB, either as a script (the library) or through the CHESS app (the GUI). Both use the same functions and write the same output folders.

What you need

  1. MATLAB with the Statistics and Machine Learning Toolbox (copulas, distributions).
  2. The CHESS library on the MATLAB path: addpath(genpath('CHESS_Library')).
  3. Storm data for your site: CHS savepoint files from the Coastal Hazards System (Peaks and/or Timeseries, water level and wave files), or a prepared storm database (Model Inputs).
  4. CHS_Dependencies for the CHS region, needed for tropical storms (TC/CC), bias and uncertainty, and the savepoint's offshore elevation. Without it CHESS runs extratropical storms only.
  5. Optional: a NOAA tide prediction file, for random tides (Model Inputs).

Downloading CHS data

On the CHS site: choose a regional study, apply the Base Modeling filter, and pick the savepoint for your project. Download the Peaks and/or Timeseries files of both models of the savepoint (ADCIRC for water level, plus the wave model: STWAVE, WAM or SWAN), for the storm types you need (XC, TC or both). The CHS quick guide walks through the site.

Running with the library

  1. Copy the template for your structure type from PSE_Templates/ (or a CHESS_*_inputs.xlsx) and fill it in (config_reference).
  2. Point chs_zip at the CHS .zip, .h5 or .mat file, and chs_dependencies at the CHS_Dependencies folder.
  3. Run the six steps of CHESS_Usage_Example.m:
[config, structure]            = call_input_parser(chess_input_file);                    % 1. setup
[storm, ~, prob_mass, config]  = call_chs_data_formater(config);                            % 2. storm database
[project_forcing, config]      = call_project_forcing_formater(config, storm, prob_mass);   % 3. forcing
[project_forcing, config]      = call_uncertainty_engine(config, project_forcing);          % 4. uncertainty
[project_forcing, config]      = call_project_forcing_adjuster(config, project_forcing, structure); % 5. adjustments
Resp = call_project_response(config, project_forcing, structure, config.create_plots);      % 6. responses

Results go to <outfolder>/<project_name>/PSE/<struc_id>/<case_name>/<workflow>/ (Model Outputs). Run the same case again and CHESS reuses what has not changed (Hotstart Levels).

Running with the GUI

Step-by-step with screenshots: GUI Quick Start.

Open CHESS_Library/GUI/CHESS_UI_canvas.mlapp in MATLAB and run it.

  1. Project: create a project (or import one from a project .mat or an exported .zip).
  2. Storm database: import CHS .zip/.h5, a CHS_Data .mat or a storm + prob_mass .mat. The same file checks, bias and uncertainty lookup and offshore elevation as the library are applied.
  3. Tides (optional): download NOAA tide predictions for a station.
  4. PSEs: create PSEs from the library templates and edit their values in the PSE Viewer.
  5. Run: pick the PSE, alternative, workflow and storm database, then press Run. A case that already has results offers Hotstart, Coldstart or Load existing.
  6. Results: hazard curves, life-cycle dashboards or per-storm plots, with pop-out figures and tables.

Choosing a workflow

You want to know Workflow
The response at a given annual exceedance probability (design) CHESS PROS (workflow = 1; 4 for PROS-FB)
How the structure performs and degrades over its service life CHESS LCS (workflow = 3)
What each storm does to the structure CHESS DET (workflow = 2)

Reporting a bug

Open an issue with:

  • The error message from the command window (red text).
  • The input file (config).
  • The CHS savepoint: latitude, longitude, ADCIRC and wave savepoint IDs.

Clone this wiki locally