Environmental Modeling Center Environmental Modeling Center Environmental Modeling Center United States Department of Commerce

GFS-Wave Daily Satellite Verification
Click here for monthly



Forecast (hours)

General Information

These pages show a comparison of four satellite platforms, Jason-3, SARAL, CryoSat-2, Sentinel-3A, with two WAVEWATCH III® implementations:

  1. GFSv16-Wave
  2. Multigrid WW3 (Multi_1)

Subregion Descriptions

Three Multi_1 grids were chosen for comparison against two GFS-Wave grids.

Multi_1 gridGFS-Wave grid
Global 30 min ExtendedGlobal 0p25 (15 min)
NW Atlantic 10 minGlobal 0p16 (10 min)
US West Coast 10 minGlobal 0p16 (10 min)

WorkFlow Description

  1. Convert all GRiB files to netcdf.
  2. Extract the satellite data in 60 min windows centered on each of the four model cycles (0, 6, 12, 18Z).
  3. Extract the model nowcast/forecasts, synchronized to valid time.
  4. Interpolate the model grid to the satellite track using 8 nearest neighbors with gaussian weights.
  5. Plot the Significant Wave Height and Wind parameters along-track.
  6. Compute daily descriptive statistics and save to a SQL database.
  7. Plot accumulated 30-day time series of descriptive statistics.

Statistics Definitions


The mean difference between the model and observations, measures the tendency of the model process to over- or under-estimate the value of a parameter. Smaller absolute bias values indicate better agreement between measured and calculated values. Positive bias means overprediction, negative means underprediction.

        diff = model_data - observations
        bias = diff.mean()       

Root-Mean-Square Error (RMS Error)

Also called the root-mean-squared deviation, it's a measure of the differences between the observed and predicted values. Smaller RMSE values indicate better agreement between measured and calculated values.


Scatter Index (SI)

Defined as the standard deviation of the difference between model and observations, normalised by the mean of the observations. Smaller values of SI indicate better agreement between the model and observations.

        scatter_index=100.0*(((diff**2).mean())**0.5 - bias**2)/observations.mean()