Production Hindcast Archive --------------------------- IMPORTANT UPDATE 1 June 2021: The production hindcast archive has been moved from FTP to our web server. The old address ftp://polar.ncep.noaa.gov/pub/history/waves/multi_1 has been changed. The new address is https://polar.ncep.noaa.gov/waves/hindcasts/multi_1 If your browser attempts to display the GRiB file in your browser window instead of downloading it, right-click on the file name and select "Save Link As...". The production hindcast is described on our webpage: http://polar.ncep.noaa.gov/waves/hindcasts/ The data set contained here consists of wave hindcasts done using the WAVEWATCH III model and GFS analysis winds. The hindcasts cover the entire globe and are carried out in monthly installments. The data is split into two groups: nww3/ -- Early WW3 version, single grid from Jul 1999 - Nov 2007 with gaps multi_1/ -- Multi-grid WW3, from Feb 2005 to present There are three types of output -- field output, partitioned data output and point output. 1. Field output (see NOTE below, added 16 Jan 2018) Field output refers to bulk spectral properties over the spatial domain. The multi-grid WW3 model is run as a mosaic of grids that are two way nested. The spectral parameters are computed on each of these grids and are stored in grib 2 format. The naming convention is as follows multi_1.[GRIDID].[PARID].[YYYYMM].grb2 where GRIDID are the different grids that make up the WW3 domain. These are (in order of resolution) glo_30m - The 30 arc-minute global grid ao_30m - The 30 arc minute arctic grid ak_10m - The 10 arc minute regional Alaska grid (it is 15 arc minute along longitude and 10 arc minute along lattitude) at_10m - The 10 arc minute Northern Atlantic regional grid (this grid covers the Gulf of Mexico and out to the continental shelf on the US East Coast. It does not extend across the Atlantic) wc_10m - The 10 arc minute regional grid for teh US West Coast ep_10m - The 10 arc minute grid covering some of the islands in the Pacific (including the Hawaiian islands) ak_4m - The 4 arc minute coastal grid for Alaska (8 arc minute along longituide and 4 arc minute along lattitude) at_4m - The 4 arc minute coastal grid for the US East Coast (includes the waters around the island of Peurto Rico) wc_4m - The 4 arc minute coastal grid for the US West Coast (includes the coastal waters of Hawaii) PARID refers to the spectral parameters. The archived parameters are wind - The 10 m wind speeds and direction from GFS (m/s) hs - Significant height of combined wind waves and swell (m) tp - Primary wave mean period (s) dp - Primary wave direction (degrees true) From 2017 on, added phs - Significant height of swell waves (m) ptp - Mean period of swell waves (s) pdir - Direction of swell waves (degrees true) YYYMM refers to the year month in a six digit format Note: The *.grb2 files from 201710 onwards are the result of running the model in two separate 2-week intervals and concatenating the grib files. This change is necessary since we are unable to get one month hindcast to run in the alloted max time of 8 hours. This means that instead of having 240 3-hr incremental forecasts each referenced to the same analysis date (for a total of 241 records), now the first part of the file has an analysis and 129 3-hr incremental forecasts, then another analysis followed by 112 3-hr incremental forecasts (for a total of 242 records). We use CDO (https://code.mpimet.mpg.de/projects/cdo/) on the concatenated grib2 files to set the reference time: cat ${run1_dir}/${filename} ${run2_dir}/${filename} > temp_file cdo setreftime,${monthID}01,0,3h temp_file ${filename} If you use wgrib2 to examine the files, you'll see one analysis time and then all the forecasts. But there are software that are not able to interpret this encoding correctly. Python and Matlab can handle this internally, but if you read all records consecutively then you will see this change. 2. Partitioned data WAVEWATCH III separates the 2D wave spectra into partitions by identifying the diferent peaks in the spectrum (see manual for details) Individual peaks are identified as wind seas or swells using an inverse wave age criteria. The file naming scheme is as follows Originally: multi_1.partition.[GRIDID].[YYYYMM].gz These are ascii files that are compressed using gzip. The output in each file is as follows repeat for all partitions repeat for all times and grid points where nprt - Number of partitions uabs,udir - Wind speed and direction cabs,cdir - Current speed and direction Hs - Signficant wave height of partition Tp - Peak period of partition Lp - Wave length (at Peak period) of partition Theta - Mean Wave direction (at Peak period) of partition (in nautical terms) Sp - Spectral width of partition Wf - Wind sea fraction (portion of partition under influence of wind) 1 and 0 signify wind seas and swells respectively Partition data is output at every grid point for all grids except the global grid (every other grid point). From 2017 on, NetCDF partition files are produced from the original ascii files. Here's an example Python scripts to read the partition.nc files: from netCDF4 import Dataset, num2date from mpl_toolkits.basemap import Basemap import numpy as np import matplotlib.pyplot as plt from datetime import datetime import sys #my_file='multi_1.partition.ak_4m.201701.nc' print 'python how_to_read_partition.py filename partition_number' my_file=sys.argv[1] npart=int(sys.argv[2]) nco=Dataset(my_file) dates=nco['date'] my_dates=num2date(dates[:],units=dates.units) lat=nco['latitude'][:] lon=nco['longitude'][:] u10=nco['wind_speed'][:] swh=nco['significant_wave_height'][:] fig=plt.figure() m=Basemap(projection='mill',llcrnrlon=lon.min(),urcrnrlon=lon.max(),llcrnrlat=lat.min(),urcrnrlat=lat.max(),resolution='i') m.drawcoastlines() m.fillcontinents() m.drawparallels(np.arange(-90,91,10),labels=[1,0,0,0]) m.drawmeridians(np.arange(0,361,25),labels=[0,0,0,1]) x,y=m(lon,lat) m.scatter(x[0,],y[0,],s=20,c=swh[0,:,npart],edgecolors='none') m.colorbar() plt.title(my_dates[0].strftime('%Y%m%d')+' SWH partition '+str(npart)) plt.show() 3. Point output Point data is stored at select locations that correspond to either gage data or locations where detailed spectral data was desired. Points can be located in multiple grids in which case the data is extracted from the highest resolution grids. If the point does not lie on a grid location then the data is linearly interpolated from the surrounding grid points. Point data is stored in ascii format but for convenience all the point output files (of a certain type) are tarred together and then gzipped. There are three types of output files i) WMO format -- (multi_1_base.buoys_wmo*). The file format for individual files is repeat for all times ii) Spectral format -- (multi_1_base.buoys_spec*). 2D spectral data at point location. The file fomat for individual files is (for all frequency bins) (for all direction bins) (for all frequencies and directions) repeat for all times where Nfr, Nd, Np - Number of frequencies, directions and points respectively. (Since a separate file is being generated for each point, Np is set at 1). fr, dir - discretized frequency (in Hz) and direction (in radians) bins. Direction is in oceanographic convention. lat, lon, d - latitude, longitude and water depth (in m). E(fr,dir) - wave spectra in m^2/Hz iii) Bulk parameters -- (multi_1_base.buoys.*). Bulk parameters at point location. The file format got individual files is Dt repeat for all times where H* - Non-dimensional wave height. H* = 3.33*g*Hs/uabs^2 Cp - Phase speed at peak period Cm - Phase speed at average wave period Dt - Air sea temperature difference