Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Please

...

find

...

on

...

this

...

page

...

a

...

proposal

...

for

...

netCDF

...

output

...

from

...

the

...

spectral

...

wave

...

model

...

SWAN.
Elements from the SWAN input file are refered to by INPUT*, elements from the SWAN Fortran code swanmain.for are referred to by OV*IVTYPE.
Please provide feed-back or comments.

Table of Contents

SWAN netCDF-CF CDL scheme

Code Block
|http://swan.tudelft.nl].
Elements from the SWAN input file are refered to by INPUT*, elements from the SWAN Fortran code swanmain.for are referred to by OV*IVTYPE.
Please provide feed-back or comments.

{toc}

h3. SWAN netCDF-CF CDL scheme 

{code}
// A working draft proposal for CF compliance for netCDF output for SWAN
NetCDF SWAN.nc {

// proposal for CF and SWAN meta data in SWAN

dimensions:
	time = 1; // also put time in for single times
	mx   = 2; // (mxc+1) for 2D grids
	my   = 3; // (myc+1) for 2D grids
	md   = 4; // (mdc+1) directions
	ms   = 5; // (msc+1) frequencies
	loc  = 6; // for 1D grids, for UNSTRUC and for squeezed [mx by my] grids

variables:
// dimensions consistent with ncBrowse, not with native MATLAB netcdf package.
// ----------------- COORDINATES -----------------
// Options:
// * like SWAN use same variable for CARTESIAN and SPHERICAL, but change attributes
// * use different variables for CARTESIAN and SPHERICAL, but change attributes
// if INPUT.CGRID.REGular
	double mx(mx), shape        = [2]
		mx(mx):swan_xpc     = // INPUT value: optional for input, implemented in output
		mx(mx):swan_xlenc   = // INPUT value: optional for input, implemented in output
		mx(mx):swan_alpc    = // INPUT value: optional for input, implemented in output
		mx(mx):swan_comment = "mxc+1"
		mx(mx):_FillValue   = // INPUT.CGRID.xexc or OVEXCV{IVTYPE}
		mx:actual_range     = [~ ~]
		// if INPUT.CGRID.CARTESIAN
		mx:standard_name    = "projected_x_coordinate"
		mx:units            = "m"
		mx(mx):grid_mapping = "projected_coordinate_system"
		// elseif INPUT.CGRID.SPHERICAL
		mx:standard_name    = "longitude"
		mx:units            = "degrees_east"
		mx(mx):grid_mapping = "wgs84"
		// end
		...
	double my(my), shape        = [3]
		my(my):swan_ypc     = // INPUT value: optional for input, implemented in output
		my(my):swan_ylenc   = // INPUT value: optional for input, implemented in output
		my(my):swan_alpc    = // INPUT value: optional for input, implemented in output
		my(my):swan_comment = "myc+1"
		my(my):_FillValue   = // INPUT.CGRID.yexc or OVEXCV{IVTYPE}
		my:actual_range     = [~ ~]
		// if INPUT.CGRID.CARTESIAN
		my:standard_name    = "projected_y_coordinate"
		my:units            = "m"
		my(my):grid_mapping = "projected_coordinate_system"
		// elseif INPUT.CGRID.SPHERICAL
		my:standard_name    = "latitude"
		my:units            = "degrees_north"
		my(my):grid_mapping = "wgs84"
		// end
		...
// - - - - - - - - - - - - - - - - - - - - - - - - - - -
// elseif INPUT.CGRID.CURVilinear
	double XP(mx,my), shape = [2]
		// idem
		...
	double YP(mx,my), shape = [3]
		// idem
		...
// - - - - - - - - - - - - - - - - - - - - - - - - - - -
// elseif INPUT.CGRID.UNSTRUCtured
	double XP(loc), shape = [6]
		// idem
		...
	double YP(loc), shape = [6]
		// idem
		...
// end
// ----------------- DIRECTIONS -----------------
	double CDIR(), shape = [4]
		CDIR:standard_name    = ""
		CDIR:units            = "degrees_true"
		CDIR:long_name        = "spectral Cartesian direction"
		CDIR.dir1             = // INPUT value: optional for input, implemented in output
		CDIR.dir2             = // INPUT value: optional for input, implemented in output
		CDIR:swan_comment     = "mdc+1"
		...
	double NDIR(), shape = [4]
		NDIR:standard_name    = ""
		NDIR:units            = "degrees_true"
		CDIR:long_name        = "spectral nautical direction"
		NDIR.dir1             = // INPUT value: optional for input, implemented in output
		NDIR.dir2             = // INPUT value: optional for input, implemented in output
		NDIR:swan_comment     = "mdc+1"
		...
// ----------------- FREQUENCY -----------------
	double AFREQ(), shape = [5]
		AFREQ:standard_name    = ""
		AFREQ:long_name        = "absolute frequencies"
		AFREQ:units            = "degrees_true"
		AFREQ.swan_flow        = // INPUT value: optional for input, implemented in output
		AFREQ.swan_fhigh       = // INPUT value: optional for input, implemented in output
		AFREQ:swan_comment     = "msc+1"
		...
	double NFREQ(), shape = [5]
		NFREQ:standard_name    = ""
		NFREQ:long_name        = "relative frequencies"
		NFREQ:units            = "degrees_true"
		NFREQ.swan_flow        = // INPUT value: optional for input, implemented in output
		NFREQ.swan_fhigh       = // INPUT value: optional for input, implemented in output
		NFREQ:swan_comment     = "msc+1"
		...
// ----------------- COORDINATE SYSTEMS -----------------
// The projected_coordinate_system information could optionally be added to
// either SWAN input or in a post-processing step.
// if INPUT.CGRID.CARTESIAN
//	int32 projected_coordinate_system([]), shape = [1]
//		epsg:name = "Amersfoort / RD New"
//		epsg:epsg = 28992
//		epsg:epsg_name = "Oblique Stereographic"
//		epsg:grid_mapping_name = " "
//		epsg:semi_major_axis = 6.3774e+006
//		epsg:semi_minor_axis = 6.35608e+006
//		epsg:inverse_flattening = 299.153
//		epsg:latitude_of_projection_origin = 52.0922
//		epsg:longitude_of_projection_origin = 5.23155
//		epsg:false_easting = 155000
//		epsg:false_northing = 463000
//		epsg:scale_factor_at_projection_origin = 0.999908
//                // optional PROJ4 REQUIRED FOR ADAGUC.KNMI.NL
//		epsg:proj4_params = "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +towgs84=565.4174,50.3319,465.5542,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725 +no_defs"
//		epsg:EPSG_code = "EPSG:28992"
//		epsg:projection_name = "Dutch rijksdriekhoek system"
// - - - - - - - - - - - - - - - - - - - - - - - - - - -
// elseif INPUT.CGRID.SPHERICAL
// The (lat,lon) coordinates information could be hard-coded into SWAN
// with each of the options: CCM, QC or REPEATING
		int32 wgs84([]), shape = [1]
		wgs84:name = "WGS 84"
		wgs84:epsg = 4326
		wgs84:grid_mapping_name = "latitude_longitude"
		wgs84:semi_major_axis = 6.37814e+006
		wgs84:semi_minor_axis = 6.35675e+006
		wgs84:inverse_flattening = 298.257
                // optional PROJ4 REQUIRED FOR ADAGUC.KNMI.NL
		wgs84:proj4_params = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs "
		wgs84:EPSG_code = "EPSG:4326"
		wgs84:projection_name = "Latitude Longitude"
		wgs84:wkt = "GEOGCS["WGS 84",
// end
// ----------------- PRIMARY VARIABLES -----------------
	single VaDens(), shape = [~ ~]
		VaDens:swan_code             =            // OVKEYW{IVTYPE} = 'VaDens';
		VaDens:swan_name             =            // OVSNAM{IVTYPE} = 'VaDens';
		VaDens:long_name             =            // OVLNAM{IVTYPE} = 'spectral variance density';
		VaDens:swan_units            =            // OVUNIT{IVTYPE} = 'm2/Hz';
		VaDens:valid_range(1)        =            // OVLEXP{IVTYPE} = 0.;
		VaDens:valid_range(2)        =            // OVHEXP{IVTYPE} = 100.;
		VaDens:_FillValue            =            // OVEXCV{IVTYPE} = -99.;
// - - - - - - - - - - - - - - - - - - - - - - - - - - -
		VaDens:units                 =            // OVCFUD{IVTYPE} = ''; NEW TABLE NEEDED INSIDE SWAN
		VaDens:standard_name         =            // OVCFSN{IVTYPE} = ''; NEW TABLE NEEDED INSIDE SWAN
		// these do not need to be mapped         // OVSVTY{IVTYPE} = 5;     // means vector, scalar etc.
		// these do not need to be mapped         // OVLLIM{IVTYPE} = 0.;    // print width for ascii output
		// these do not need to be mapped         // OVULIM{IVTYPE} = 1000.; // print width for ascii output
// - - - - - - - - - - - - - - - - - - - - - - - - - - -
		VaDens:actual_range          = [~ ~]      // add optionally as extra service to user
		VaDens:coordinates           = "XP YP"    //
		// if INPUT.CGRID.CARTESIAN
		VaDens():grid_mapping        = "projected_coordinate_system"
		// elseif INPUT.CGRID.SPHERICAL
		VaDens():grid_mapping        = "wgs84"
		// end
// ----------------- GLOBAL META_DATA -----------------
//global Attributes:
		:title = "INPUT.PROJECT.name,INPUT.PROJECT.nr"
		:institution = ""
		:source = ""
		:history = "Data produced by SWAN version 40.72AB"
		:references = ""
		:email = ""
		:comment = "INPUT.PROJECT.title1,INPUT.PROJECT.title2,INPUT.PROJECT.title3"
		:version = ""
		:Conventions = "CF-1.5"
		:CF:featureType = "Grid"
		:terms_for_use = "These data can be used freely for research purposes provided that the following source is acknowledged: institution"
		:disclaimer = "This data is made available in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
}
{code}

h3. Mapping of SWAN names to CF standard names 

For the complete list where we have to get names from, or have them added to is: [

Mapping of SWAN names to CF standard names

For the complete list where we have to get names from, or have them added to is: http://cf-pcmdi.llnl.gov/documents/cf-standard-names/

...


This

...

table

...

is

...

under

...

construction,

...

please

...

fill

...

in

...

any

...

missing

...

UD

...

units

...

or

...

CF

...

standard

...

names.

...

OVKEYW

OVSNAM

OVLNAM

OVUNIT

OVLLIM

OVULIM

OVEXCV

new: OVCFUD (UD units)

new: OVCFSN (standard name)

XP

Xp

X user coordinate

UL

-10000000000

10000000000

-10000000000

m

projection_x_coordinate,longitude

...

YP

Yp

Y user coordinate

UL

-10000000000

10000000000

-10000000000

m

projection_y_coordinate,latitude

...

DIST

Dist

distance along output curve

UL

0

10000000000

-99

 

 

DEP

Depth

Depth

UH

-100

100

-99

 

sea_floor_depth_below_sea_level

...

VEL

Vel

Current velocity

UV

-2

2

0

 

sea_water_x_velocity

...

+

...

sea_water_y_velocity

...

alias:

...

x_sea_water_velocity

...

+

...

y_sea_water_velocity

...

UBOT

Ubot

Orbital velocity at the bottom

UV

0

1

-10

 

 

DISS

Dissip

Energy dissipation

(in W/m2 or m2/s, depending on command INPUT.SET)

0

0.1

-9

 

 

QB

Qb

Fraction breaking waves

 

0

1

-1

 

 

LEA

Leak

Energy leak over spectral boundaries

m2/s

0

100

-9

 

 

HS

Hsig

Significant wave height

UH

0

10

-9

m

sea_surface_wave_significant_height

...

alias:

...

significant_height_of_wind_and_swell_waves,

...

sea_surface_wind_wave_significant_height,

...

alias:

...

significant_height_of_wind_waves

...

TM01

Tm01

Average absolute wave period

UT

0

100

-9

 

sea_surface_wave_mean_period_from_variance_spectral_density_first_frequency_moment,

...

sea_surface_wind_wave_mean_period_from_variance_spectral_density_first_frequency_moment

...

RTP

RTpeak

Relative peak period

UT

0

100

-9

 

 

DIR

Dir

Average wave direction

UDI

0

360

-999

degrees_true if nautical

sea_surface_wave_from_direction

...

PDI

PkDir

direction of the peak of the spectrum

UDI

0

360

-999

 

 

TDI

TDir

direction of the energy transport

UDI

0

360

-999

 

 

DSPR

Dspr

directional spreading

UDI

0

60

-9

 

 

WLEN

Wlen

Average wave length

UL

0

200

-9

 

 

STEE

Steepn

Wave steepness

 

0

0.1

-9

 

 

TRA

Transp

Wave energy transport

m3/s

-10

10

0

 

 

FOR

WForce

Wave driven force per unit surface

UF

-10

10

0

 

 

AAAA

AcDens

spectral action density

m2s

0

100

-99

 

 

EEEE

EnDens

spectral energy density

m2

0

100

-99

 

 

AAAA

Aux

auxiliary variable

 

-10000000000

10000000000

-10000000000

 

 

XC

Xc

X computational grid coordinate

 

0

100

-9

m

projection_x_coordinate,longitude

YC

Yc

Y computational grid coordinate

 

0

100

-9

m

projection_y_coordinate,latitude

WIND

Windv

Wind velocity at 10 m above sea level

UV

-50

50

0

m

wind_speed

FRC

FrCoef

Bottom friction coefficient

 

0

1

-9

 

 

RTM01

RTm01

Average relative wave period

UT

0

100

-9

 

 

EEEE

EnDens

energy density integrated over direction

m2

0

100

-99

 

 

DHS

dHs

difference in Hs between iterations

UH

0

1

-9

 

 

DRTM01

dTm

difference in Tm between iterations

UT

0

2

-9

 

 

TM02

Tm02

Zero-crossing period

UT

0

100

-9

s

sea_surface_wave_zero_upcrossing_period,

...

sea_surface_wind_wave_zero_upcrossing_period,

...

sea_surface_wave_mean_period_from_variance_spectral_density_second_frequency_moment,

...

sea_surface_wind_wave_mean_period_from_variance_spectral_density_second_frequency_moment

...

FSPR

FSpr

Frequency spectral width (Kappa)

 

0

1

-9

 

 

URMS

Urms

RMS of orbital velocity at the bottom

UV

0

1

-9

 

 

UFRI

Ufric

Friction velocity

UV

0

1

-9

 

 

ZLEN

Zlen

Zero velocity thickness of boundary layer

UL

0

1

-9

 

 

TAUW

TauW

 

 

0

1

-9

 

 

CDRAG

Cdrag

Drag coefficient

 

0

1

-9

 

 

SETUP

Setup

Setup due to waves

m

-1

1

-9

 

 

TIME

Time

Date-time

 

0

1

-99999

 

 

TSEC

Tsec

Time in seconds from reference time

s

-100000

1000000

-99999

 

time

PER

Period

Average absolute wave period

UT

0

100

-9

 

sea_surface_wind_wave_period,

...

alias:

...

wind_wave_period

...

RPER

RPeriod

Average relative wave period

UT

0

100

-9

 

 

HSWE

Hswell

Wave height of swell part

UH

0

10

-9

 

sea_surface_swell_wave_significant_height

...

alias:

...

significant_height_of_swell_waves

...

sea_surface_swell_wave_period,

...

alias:

...

swell_wave_period

...

URSELL

...

Ursell

Ursell number

 

0

1

-9

 

 

ASTD

ASTD

Air-Sea temperature difference

K

-10

10

-99

 

 

TMM10

Tm_10

Average absolute wave period

UT

0

100

-9

 

sea_surface_wave_mean_period_from_variance_spectral_density_inverse_frequency_moment,

...

sea_surface_wind_wave_mean_period_from_variance_spectral_density_inverse_frequency_moment

...

RTMM10

...

RTm_10

...

Average

...

relative

...

wave

...

period

UT

0

100

-9

 

 

DIFPAR

DifPar

Diffraction parameter

 

-10

10

-99

 

 

TMBOT

TmBot

Bottom wave period

UT

0

100

-9

 

 

WATL

Watlev

Water level

UH

-100

100

-99

 

 

BOTL

Botlev

Bottom level

UH

-100

100

-99

 

 

TPS

TPsmoo

Relative peak period (smooth)

UT

0

100

-9

 

 

DISB

Disbot

Bottom friction dissipation

(in W/m2 or m2/s, depending on command INPUT.SET)

0

0.1

-9

 

 

DISSU

Dissrf

Wave breaking dissipation

(in W/m2 or m2/s, depending on command INPUT.SET)

0

0.1

-9

 

 

DISW

Diswcp

Whitecapping dissipation

(in W/m2 or m2/s, depending on command INPUT.SET)

0

0.1

-9

 

 

DISM

Dismud

Fluid mud dissipation

(in W/m2 or m2/s, depending on command INPUT.SET)

0

0.1

-9

 

 

WLENMR

Wlenmr

Average wave length with mud real part

UL

0

200

-9

 

 

KI

ki

Average wave number with mud imag part

rad/m

0

1

-9

 

 

MUDL

Mudlayer

Mudlayer thickness

UH

0

100

-99

 

 

VaDens

VaDens

spectral variance density

m2/Hz

0

100

-99

m2 s

sea_surface_wave_variance_spectral_density

...

integrated

...

in

...

sp1

...

VaDens

...

VaDens

spectral variance density

m2/Hz/degr

...

0

100

-99

m2 s degr-1

sea_surface_wave_directional_variance_spectral_density

...

per

...

directional

...

bin

...

in

...

sp2

...

Swind

Swind

wind source term

m2

0

100

-99

 

 

Swcap

Swcap

whitecapping dissipation

m2

0

100

-99

 

 

Sfric

Sfric

bottom friction dissipation

m2

0

100

-99

 

 

Smud

Smud

fluid mud dissipation

m2

0

100

-99

 

 

Ssurf

Ssurf

surf breaking dissipation

m2

0

100

-99

 

 

Snl3

Snl3

triad interactions

m2

0

100

-99

 

 

Snl4

Snl4

quadruplet interactions

m2

0

100

-99

 

 

KIMAG

KIMAG

Wave number with mud imag part

rad/m

NaN

NaN

NaN

 

 

KREAL

KREAL

Wave number with mud real part

rad/m

NaN

NaN

NaN

 

 

NDIR

 

 

 

 

 

 

s-1

 

CDIR

 

 

 

 

 

 

s-1

 

AFREQ

 

 

 

 

 

 

s-1

wave_frequency, sea_surface_wave_frequency

RFREQ

 

 

 

 

 

 

s-1

wave_frequency, sea_surface_wave_frequency

QP

 

peakedness of the wave spectrum (dimensionless).

 

 

 

 

 

 

BFI

 

Benjamin-Feir index (dimensionless).

 

 

 

 

 

 

PROPA

PROPAgat

sum of PROPXY, PROPTHETA and PROPSIGMA

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

PROPX

PROPXy

energy propagation in geographic space; sum of x- and y-direction, terms

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

PROPT

PROPTheta

energy propagation in theta space

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

PROPS

PROPSigma

energy propagation in sigma space

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

GENE

GENErat

total energy generation

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

GENW

GENWind

energy generation due to wind

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

REDI

REDIst

total energy redistribution

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

REDQ

REDQuad

energy redistribution due to quadruplets

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

REDT

REDTriad

energy redistribution due to triads

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

RADS

RADStr

energy transfer between waves and currents due to radiation stress

(in W/m2 or m2/s, depending on command INPUT.SET).

 

 

 

 

 

 

 

This table was generated with the Matlab code

Code Block
 |Swind    |wind source term                         |m2   |           0|        100|         -99| | |
|Swcap |Swcap    |whitecapping dissipation                 |m2   |           0|        100|         -99| | |
|Sfric |Sfric    |bottom friction dissipation              |m2   |           0|        100|         -99| | |
|Smud  |Smud     |fluid mud dissipation                    |m2   |           0|        100|         -99| | |
|Ssurf |Ssurf    |surf breaking dissipation                |m2   |           0|        100|         -99| | |
|Snl3  |Snl3     |triad interactions                       |m2   |           0|        100|         -99| | |
|Snl4  |Snl4     |quadruplet interactions                  |m2   |           0|        100|         -99| | |
|KIMAG |KIMAG    |Wave number with mud imag part           |rad/m|         NaN|        NaN|         NaN| | |
|KREAL |KREAL    |Wave number with mud real part           |rad/m|         NaN|        NaN|         NaN| | |
|NDIR  |         |                                         |     |            |           |            | s-1| wave_frequency, sea_surface_wave_frequency|
|CDIR  |         |                                         |     |            |           |            | s-1| wave_frequency, sea_surface_wave_frequency|
|AFREQ |         |                                         |     |            |           |            | s-1| wave_frequency, sea_surface_wave_frequency|
|RFREQ |         |                                         |     |            |           |            | s-1| wave_frequency, sea_surface_wave_frequency|
|QP    |         | peakedness of the wave spectrum (dimensionless).| |        |           |            |    | |
|BFI   |         | Benjamin-Feir index (dimensionless).    |     |            |           |            |    | |
|PROPA |PROPAgat |sum of PROPXY, PROPTHETA and PROPSIGMA                                  |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|PROPX |PROPXy   |energy propagation in geographic space; sum of x- and y-direction, terms|(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|PROPT |PROPTheta|energy propagation in theta space                                       |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|PROPS |PROPSigma|energy propagation in sigma space                                       |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|GENE  |GENErat  |total energy generation                                                 |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|GENW  |GENWind  |energy generation due to wind                                           |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|REDI  |REDIst   |total energy redistribution                                             |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|REDQ  |REDQuad  |energy redistribution due to quadruplets                                |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|REDT  |REDTriad |energy redistribution due to triads                                     |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |
|RADS  |RADStr   |energy transfer between waves and currents due to radiation stress      |(in W/m2 or m2/s, depending on command INPUT.SET).| | | | | | | |

This table was generated with the Matlab code

{code}
[D,D0] = swan_quantity % part of Openearth.eu[addrowcol(char(D0.OVKEYW),0,[-1 1],'|') char(D0.OVSNAM) addrowcol(char(D0.OVLNAM),0,[-1 1],'|') char(D0.OVUNIT) addrowcol(num2str(cell2mat(D0.OVLEXP')),0,[-1 1],'|') addrowcol(num2str(cell2mat(D0.OVHEXP')),0,[1],'|') addrowcol(num2str(cell2mat(D0.OVEXCV')),0,[1],'| | |')]
{code}

using 

using