U.S. DEPARTMENT OF COMMERCE NATIONAL OCEANIC AND ATMOSPHERIC ADMINISTRATION NATIONAL ENVIRONMENTAL SATELLITE, DATA, AND INFORMATION SERVICE THE GEODAS GRIDDED DATA FORMAT - "GRD98" Dan R. Metzger National Geophysical Data Center Boulder, Colorado February 1998 INTRODUCTION I GENERAL DESCRIPTION II THE HEADER III THE DATA IV NGDC CONTACTS APPENDIX A I. INTRODUCTION During 1998 the Marine Geology & Geophysics Division of the National Geophysical Data Center undertook an innovative and exciting project. The NGDC Coastal Relief Model Project involves gridding the hydrographic survey data compiled by the National Ocean Service for US waters and, after combining this with US Geological Survey land topography grids, creating a series of 1 degree grids at a 3 arc-second resolution in US coastal areas. Thus a high-quality, high-resolution set of grids covering the U.S land/sea coastal zone have become available for the first time, allowing detailed study of this important area. This data is available on CD/DVD sets with NGDC's GEODAS (GEophysical DAta System) software which contains functionality for combining, translating and sub-sampling the grids, as well as for creating and viewing screen plots of the grid data. During this project a format for storing the grids was naturally developed. It was decided, for space, speed and simplicity to save the grids in a very utilitarian, no-nonsense format, which became known as GRD98. This format is part of the MGD-2000 (Marine Geophysical Data 2000) formats, a series of Year 2000 Compliant formats which also includes MGD77 (Marine Geophysical Data Exchange Format), HYD93 (Hydrographic Surveys Data Exchange Format) and ARO88 (Aeromagnetic Survey Header Format). II. GENERAL DESCRIPTION The GRD98 Format, is a digital format for the storage of gridded data. Though developed for bathymetric/topographic data, the format can handle virtually any type of gridded data. It is very utilitarian format and contains no documentation about the grids (such as information about references, methods and datums used, etc.). Rather GRD98 formatted files only contain grid- structure information followed by the grid cell data values. GRD98 formatted files consist of header information followed by a series of grid cell data values. The files contain binary data only. The Header values are 4-byte signed integers which describe the structure, size and extent of the grid cell values that follow. The grid cells themselves can be 1-byte signed integer, 2-byte signed integer, 4-byte signed integer or 4-byte floating point values. The grids described by GRD98 are node based. See IV. THE DATA below for more information. The GRD98 format can be used for the exchange of grid data, using virtually any media type. The National Geophysical Data Center uses CD/DVD disks as its chief method of distribution of these data. III. THE HEADER The purpose of the Header is to enumerate the structure, size and extent of the grid cell values which follow it. The GRD98 Header is 128 bytes in length and consists of 32 binary signed 4-byte integers. In descriptions below, "original data values" refers to the data used to construct the grid. Grid-Radius is a method for qualifying the data in grids. Simply put, if a grid-radius of n cells is applied to a grid, this means that any cells for which the nearest original data value is more than n cells distant will be filled with the Empty Grid Cell value. If grid-radius is not applied to a grid, all the cells in the grid will contain values, no matter how far away the nearest original data was. The upper-left corner is the origin of the grid. The grid progresses row by row, top to bottom until the last row, with no special terminating data. Within each row the grid progresses column by column, left to right. The following is a detailed description of the Header fields Name of Field Description _____________________________________________________ Version 1,000,000,001 = version 1 Length Length of the Header in bytes (128) Data Type Describes what the cell values represent. 1 = Data, e.g. interpolated depths 2 = Data Density - density values for each cell, (number of original data values falling in the cell, as centered on cell node) 3 - Grid-Radius - grid-radius values for each cell, (distance, in units of cells, to closest original data point) Latitude Degrees Degrees portion of uppermost cell's latitude Latitude Minutes Minutes portion of uppermost cell's latitude Latitude Seconds Seconds portion of uppermost cell's latitude Latitude Cell Size Latitudinal size (height) of each cell in seconds (i.e. distance in seconds between cells) Latitude Number of Cells Number of rows in grid Longitude Degrees Degrees portion of leftmost cell's longitude Longitude Minutes Minutes portion of leftmost cell's longitude Longitude Seconds Seconds portion of leftmost cell's longitude Longitude Cell Size Longitudinal size (width) of each cell in seconds (i.e. distance in seconds between cells) Longitude Number of Cells Number columns in grid Minimum Value Minimum value of all cells in grid, excluding empty grid cells. Per precision, i.e. based on actual numbers found in cells. E.g. if the lowest cell value found is -123 and precision is 10ths of meters (-12.3 meters) the Minimum Value is -123 Maximum Value Maximum value of all cells in grid, excluding empty grid cells. Per precision (see above) Grid Radius The Grid-Radius which was applied to the grid. When a Grid-Radius of n is applied this means that only cells which are within n cells of actual data will be filled with data values. Cells for which real data is more than n cells away will be given the Empty Grid Cell Value. If the Grid-Radius equals -1 then Grid-Radius was not applied. Precision Precision of the cell data values. 1 = whole units 10 = tenths of units Empty Grid Cell Value Value placed in a cell with no data (e.g. grid-radius was applied to a Data Grid). For Density Grids or Grid-Radius Grids, land (as opposed to water) cells would contain this value if density and grid-radius were not calculated for land cells. Number Type Byte size of cell data values, positive = integers, negative = floats (e.g. +2 = 2-byte integers) Water Datum The vertical datum used for non-land cell depths. Local datums could be used for inland lakes, with land values tied to mean sea level. Using local water datums means that water shore values will be zero. Using MSL for water means that water shore values will match up with land shore values. 0 = Mean Sea Level 1 = Local Vertical Datum used for depths. Data Value Limit This is the maximum possible value for cell data. This is used when there is a limit to the calculated values, e.g. to keep values within a the range of Number Type. Cell values containing this number mean that the value is this large or larger. 0 = not applied Cell Registration Gridline-registered = 0 Pixel-registered (cell centered) = 1 e.g. a 1 min cell size grid with upper-left lat/lon = 60 deg 0 min 0 sec / 45 deg 0 min 0 deg Gridline-registered: 1st value at 60 0 0 / 45 0 0 Pixel-registered: 1st value at 59 59 30 / 45 0 30 Unused (10 fields) Unused field; set to zero. Repeat 10 times IV. THE DATA The GRD98 Header is followed immediately by the grid cell data values. The cells progress in a row by row manner, starting with the topmost (northernmost) row and continuing downward to the bottommost row. Within each row the cells progress column by column from leftmost (westernmost) to rightmost. The exact structure, size and extent of the data values themselves are described by the Header. What the data values actually represent depends on the Grid Type as enumerated in the Header Version. Generally the GRD98 format is used for Data Grids, but it can also be used to describe Density Grids and Grid-Radius Grids (see Version in III THE HEADER above for details). GRD98 formatted grids are node based. The lat/lon position for a specific grid data value represents the center of a grid "cell" which extends half the grid-cell-size in 4 directions. The data value corresponds to this exact position (NOT to a position a half cell horizontal and a half cell vertical away). These positions are set up so that they will match up with exact latitude (and longitude) whole-degree values as they progress across the rows ( or columns). For example, a grid whose upper left corner was at 0 degrees latitude, 0 degrees longitude would have as it's first grid cell a lat/lon position at exactly 0,0. If this grid had an extent of 1 degree by 1 degree, and latitude and longitude cell sizes of 60 and 60 (seconds), the grid would be 61 rows by 61 columns. The data values are one of the following number types (as described in the Header): 1-byte signed integer 2-byte signed integer 4-byte signed integer 4-byte floating point The data values must be interpreted as per the Precision enumerated in the Header. For example if a data cell value is an integer number equal to 12345 and the precision in the Header equals 10 (tenths of units), then 1234.5 is the actual real-world value for that cell. For floating point grids the data values do not depend on the Precision; the value found is the actual real- world value as is. Where the grid cell is meant to contain "no data", the data value for that cell will be the Empty Grid Cell Value as enumerated in the Header. This can occur when Grid-Radius was applied to the grid in order to keep out data values which are too far away from original (real) data. For Density Grids and Grid-Radius Grids, (see III THE HEADER above) this Empty Grid Cell Value could correspond to "land" positions, where density or grid-radius values were not calculated. APPENDIX A NGDC CONTACTS Dan R. Metzger: (303) 497-6542 Dan.R.Metzger@noaa.gov or David L. Divins (303) 497-6505 David.Divins@noaa.gov National Geophysical Data Center NOAA, E/GC3 325 Broadway Boulder, CO 80305-3328 TELEX 592811 NOAA MASC BDR FAX (303) 497-6513 ____________________________________________________________