Output Format

From Interactive System for Ice sheet Simulation
Revision as of 20:05, 8 February 2010 by Scrooks (Talk | contribs)

Jump to: navigation, search

All the SeaRISE model results should be stored in the NetCDF format and follow CF Metadata Conventions. This page will (hopefully) make it easier.

Contents

Coordinate system and grid

The horizontal grid should match the one used in the corresponding master data set (see Present Day Antarctica and Present Day Greenland). Please refer to these pages for projection and grid parameters.

It is left to every modeler to decide the grid size to use for the simulations, and at present there is no common way to interpolate the output back on the master data set. Since your future model experiments will be compared to your control run, it is suggested that the same interpolation is used for all the outputs that you will produce. Please indicate in the comment part of the NetCDF file, the model resolution prior to interpolation and the interpolation used (for example nearest neighbors, linear etc).

Variables

All SeaRISE output variables should be stored using the variable names given in the tables below. This requirement facilitates the multi-model analysis. The current standard names are described on the following page: CF standard names for Glaciology and Ice-Sheet Modeling.


Coordinate variables

Variable name units NetCDF standard_name Comments
time years since 2004-1-1 0:0:0 time
x m projection_x_coordinate
y m projection_y_coordinate

Scalar output variables

Variable name Description units NetCDF standard_name Proposed NetCDF standard_name Comments
ivol ice volume m3 NA land_ice_volume
iareag area covered by grounded ice m2 NA land_ice_area_grounded
iareaf area covered by floating ice m2 NA land_ice_area_floating

Two-dimensional output variables

Variable name Description units NetCDF standard_name Proposed NetCDF standard_name Comments
usurf Surface topography or elevation m surface_altitude NA
topg Bedrock topography or elevation m bedrock_altitude NA
thk Ice thickness m land_ice_thickness NA
acab upper surface mass balance m/year NA ?
bmelt lower surface mass balance m/year NA ? O if surface mass balance only, positive if mass loss (i.e. use outward normal)
bwa basal water amount m NA ? effective thickness of subglacial water
bwp basal water pressure Pa
dHdt tendency of ice thickness m/year ice equivalent
mask integer mask NA NA NA Flags corresponding to: 1) ice free ocean 2) ice free land 3) grounded ice 4) floating ice
gline_flux grounding line flux m2 a-1 NA ? column average velocity x column height; NOTE: this quantity is not natural for a spatial gridded output; use of contour programs on the flotation criterion, as in this application to Antarctica, is recommended
uvelsurf U-velocity at the ice surface m/year NA ?
vvelsurf V-velocity at the ice surface m/year NA ?
wvelsurf W-velocity at the ice surface m/year NA ? positive upwards
uvelbase U-velocity at the base of ice m/year NA ?
vvelbase V-velocity at the base of ice m/year NA ?
wvelbase W-velocity at the base of ice m/year NA ? positive upwards
tempsurf ice temperature at the surface K NA ?
tempbase ice temperature at the base of ice K NA ?

Note that the mask variable is unit-less, not dimension-less (i.e. units of "1" do not apply). CF Conventions provide a way to describe the meaning of such a variable:

       byte mask(time, y, x) ;
               mask:flag_meanings = "ocean grounded_ice floating_ice ice_free_land" ;
               mask:flag_values = 0b, 1b, 2b, 3b ;

CF requirements

Once we agree on variables to include and their names, we need to know how to put them together to get a usable NetCDF dataset. You can find it all in the CF Conventions Document, but here's a very compressed version:

  • all output variables should use units supported by UDUNITS.
  • all output variables should have standard_names (if possible)
  • if latitude and longitude fields are provided, spatial variables should have the coordinates attribute listing the names of these auxiliary coordinate variables
  • all spatial variables should have the grid_mapping variable with the name of the mapping variable
  • the dataset should have the Conventions attribute stating the version of the CF conventions followed
  • the mapping variable defines the projection (see below)

The following is an example of an output variable with all the necessary metadata:

float thk(time, y, x) ;
      thk:long_name = "ice thickness" ;
      thk:standard_name = "land_ice_thickness" ;
      thk:units = "meter" ;
      thk:grid_mapping = "mapping" ;

Regarding the mapping variable, we have two cases:

Greenland

char mapping ;
      mapping:grid_mapping_name = "polar_stereographic" ;
      mapping:false_easting = 0. ;
      mapping:false_northing = 0. ;
      mapping:latitude_of_projection_origin = 90. ;
      mapping:straight_vertical_longitude_from_pole = -39. ;
      mapping:standard_parallel = 71. ;

Perhaps we should add:

      mapping:ellipsoid = "WGS84"

Antarctica

char mapping ;
      mapping:grid_mapping_name = "polar_stereographic" ;
      mapping:false_easting = 0. ;
      mapping:false_northing = 0. ;
      mapping:latitude_of_projection_origin = -90. ;
      mapping:straight_vertical_longitude_from_pole = 0. ;
      mapping:standard_parallel = 71. ;

Attached Media:dummy.nc is a very small dummy NetCDF dataset using all the attributes necessary for IDV to open it.

NetCDF global attributes

As mentioned above, it is necessary to specify the version of CF conventions by providing the Conventions attribute:

// global attributes:
     :Conventions = "CF-1.4" ;

In addition to this, NetCDF User's Guide and CF Conventions define a number of attributes we can use to describe a model output. The list includes

  • title -- can be used for experiment names,
  • institution,
  • source -- can be used for model names,
  • history,
  • references,
  • comment.

This list can (and should) be extended to include SeaRISE-specific attributes, such as experiment category, model dimension and model climate.

Output file size

The bold entries in the table below were agreed upon, during the January 12 SeaRISE telecon, as the preferred choices. (in case you can't read them, they are: Greenland: every 5 years at 5km resolution; Antarctica: every 10 years at 10 km resolution).

These calculations may be useful in making choices for the more complete SeaRISE Experiments and finalized control runs. The calculations assume that:

  • there are 16 two-dimensional fields specified in Two-dimensional output variables above; the size of the NC_BYTE variable mask is ignored, and gline_flux is assumed to be absent (see comment in table above)
  • each floating point number is stored as NC_FLOAT (=4 bytes), and not NC_DOUBLE (=8 bytes)
  • the size of the "Scalar output variables" is neglect-able, and is ignored
  • 1GB = 2^(30) bytes, and not 10^9 bytes

All cases in the table assume a 500 year model run. The Greenland 5 km grid is 301 x 561 points. The Antarctic 5 km grid is 1200 x 1200 points. The size of files is obviously linear in the temporal length of the run.

continent grid, reporting interval file size in GB comments
Greenland 5 km, annual 5.0 gzip --fast reduces PISM version to 2.9GB; such files take about 1 hour to transfer at 1MB/s;
Greenland 5 km, every 5 years 1.0 preferred
Greenland 10 km, annual 1.3
Antarctica 5 km, annual 43 too large, I would think
Antarctica 10 km, annual 10.7 still quite large
Antarctica 5 km, every 10 years 4.3
Antarctica 10 km, every 10 years 1.1 preferred
Antarctica 20 km, annual 2.7

File naming for whole ice sheet SeaRISE submissions

The seaRISE output file name needs to contain info on: author, model, case (Antarctica or Greenland), dimension, experiment, climate driver etc. For future reference, it is simpler if the model outputs follow a standard naming convention.

A suggestion based on the MISMIP convention is NNNn_X_Dd_Cc_Ee.nc, with the following components:

• NNN = three letter characters for name, either a group name like PSU for Penn State, or an individual name made up by the first character of the first name followed by the first two characters of the last name (e.g. SNO = Sophie Nowicki)

• n = model number (n = 1 if you have only one model, or 2, 3, . . . if you have more than one model).

• X = experiment category, either ‘A’ for Antarctica, or ‘G’ for Greenland.

• D = denotes the model dimension.

• d = model dimension identifier (‘1’ for 1D, ‘2’ for 2D, ‘3’ for 3D).

• C = denotes the model climate

• c = model climate identifier ( ‘1’ for constant climate, ‘2’ for 4th Assessment future climate forcing)

• E = denotes experiment category

• e = experiment number (‘0’ for no "forcing", versus >0 for experiments described at the Category_1:_Whole_Ice_Sheet experiments page).

The "E0" cases are called control runs.

Thus, SNO1_A_D3_C1_E0.nc would be an output submitted by Sophie Nowicki, from model version 1, for a 3D Antarctic control run under a constant climate with none of the experimental forcings.

Model results should be submitted via FTP to Sophie Nowicki. Please request the FTP server detail and password by email (sophie.nowicki@nasa.gov).