HDF-EOS V2 MODIS L2G Ocean Bands File Specification
Revision 1.0 (01/27/2015)

Product ID(s): MODIS Ocean Reflectance Bands L2G Daily 1km Day (MODOCGD)

Description:

The MODIS 1km Resolution Level 2G (L2G) Ocean band 
file contains the restructured Level 2 (L2) Ocean bands data from bands 8-16
(observations), which intersects a geographic area, a tile, in the MODIS 
global Level 3 (L3) grid.  The global L3 grid is divided into a number of 
tiles, areas with a nominal size of 1100 km by 1100 km (10 deg. by 10 deg.).  
The data is stored at a nominal grid resolutions of 1km.

A single 1km observation consist of the 1km reflectance data from MODIS ocean bands 8-16
along with band specific quality flags and orbit and granule pointer fields.
 
For each pixel in the output tile, the 1km observation pointer is used to
find the location of the spatial element in each of the L2 product files
The value for each observation is extracted from the corresponding locations 
in the L2 file.  A one-to-one correspondence is kept between the
information in the observation pointer file and the surface reflectance file.

One additional data set is stored in the output file, the orbit and
coverage data set.  The orbit number and scan half field are intended to be
used to allow a user to find the corresponding geolocation angle
information for a given observation.  The observation coverage field gives
a coarse estimate of the area of intersection between the observation and
the cell (relative to the observation area).  Both of these fields are
primarily meant to be used in the absence of the corresponding observation
pointer files.

There are two ways to which the observation data can be stored in a L2G
grid file, full and compact. The actual method is specified by the 
L2GStorageFormat metadatum. In both methods, the first layer of
observations is stored in a 2 dimensional array.  In the full method,
all of the values are stored in a 3 dimensional array with the slowest
varying dimension specifying the observation layer.  This is an inefficient
storage method because typically a large number of cells are empty.  For
the compact method, the additional observation values are stored in a single
dimensional array, with the dimension corresponding to the number of
additional observations since the beginning of the file.  Essentially, the
additional observations are run-length encoded with each observation stored
sequentially for each cell.  Only the full format is meant for distribution.

In addition, for initial production after launch, the user may specify that
only the first layer be stored, in which case the additional arrays are not
stored.

Points of Contact:
               Robert Wolfe
               NASA's Goddard Space Flight Center, Code 614.5
               Greenbelt, MD 20771
               (301) 614-5508
               robert.e.wolfe@nasa.gov

Principal Investigator:  
               Eric Vermote
               University of Maryland, College Park
               NASA's Goddard Space Flight Center, Code 614.5
               Greenbelt, MD 20771
               (301) 405-8052
               vermote@kratmos.gsfc.nasa.gov

===========================================================================

Generic Constructs

ECS Metadata Strings:

	Notes:	"FR" is an abbreviation for "FREE_RANGE".
		"D/T" is an abbreviation for "DATE/TIME"
		(A) implies that multiple values are stored within a
			single array.
		A value of "Variable" indicates that this value will vary
			according to the granule being processed.
		"M" means class M.
		
CoreMetadata.0

	This string will contain the following PVL fields:

                                              # of
 Field Name                          Data     Value  Value
                                     Type       s

 GROUP = INVENTORYMETADATA

   GROUP = CollectionDescriptionClass
      SHORTNAME                      STRING     1    "MODOCGD"
      VERSIONID                      STRING     1    Variable
   END_GROUP = CollectionDescriptionClass

   GROUP = ECSDataGranule
      REPROCESSINGPLANNED            STRING     1    "further update
                                                      is anticipated"
      REPROCESSINGACTUAL             STRING     1    "reprocessed"
      LOCALGRANULEID                 STRING     1    Variable
      DAYNIGHTFLAG                   STRING     1    Variable
      PRODUCTIONDATETIME             D/T        1    Variable
      LOCALVERSIONID                 STRING     1    Variable
      SIZEMBECSDATAGRANULE	     DOUBLE	1    Variable
   END_GROUP = ECSDataGranule

   GROUP = PGEVersionClass
      PGEVERSION                     STRING     1    Variable
   END_GROUP = PGEVersionClass

   GROUP = InputGranule
      INPUTPOINTER                   STRING  FR (A)  Variable
   END_GROUP = InputGranule

   GROUP = RangeDateTime
      RANGEBEGINNINGDATE             DATE       1    Variable
      RANGEBEGINNINGTIME             TIME       1    Variable
      RANGEENDINGDATE                DATE       1    Variable
      RANGEENDINGTIME                TIME       1    Variable
   END_GROUP = RangeDateTime

   GROUP = GRing
      EXCLUSIONGRINGFLAG             STRING     1    "N"
   END_GROUP = GRing

   GROUP = GRingPoint
      GRINGPOINTLATITUDE             DOUBLE   4 (A)  Variable
      GRINGPOINTLONGITUDE            DOUBLE   4 (A)  Variable
      GRINGPOINTSEQUENCENO           INTEGER  4 (A)  Variable
   END_GROUP = GRingPoint

   GROUP = ZoneIdentifierClass
      ZONEIDENTIFIER                 STRING     1    "0"
   END_GROUP = ZoneIdentifierClass

   GROUP = OrbitCalculatedSpatialDomain

      ** number of containers is equal to "NumberofOrbits" **

      ORBITNUMBER                    INTEGER    1    Variable
      EQUATORCROSSINGLONGITUDE       DOUBLE     1    Variable
      EQUATORCROSSINGDATE            DATE       1    Variable
      EQUATORCROSSINGTIME            TIME       1    Variable
   END_GROUP = OrbitCalculatedSpatialDomain

   GROUP = MeasuredParameter

      PARAMETERNAME                  STRING  FR (A)  "MODOCGD"

      GROUP = QAFLAGS
         AUTOMATICQUALITYFLAG        STRING     1    Variable
         AUTOMATICQUALITYFLAGEXPLANATION
                                     STRING     1    Variable
         SCIENCEQUALITYFLAG          STRING     1    Variable
         SCIENCEQUALITYFLAGEXPLANATION
                                     STRING     1    Variable
      END_GROUP = QAFlags

      GROUP = QAStats
         QAPERCENTMISSINGDATA        INTEGER    1    Variable
         QAPERCENTOUTOFBOUNDSDATA    INTEGER    1    Variable
         QAPERCENTINTERPOLATEDDATA   INTEGER    1    Variable
      END_GROUP = QAStats

   END_GROUP = MeasuredParameter

   GROUP = AssociatedPlatformInstrumentSensor
      ASSOCIATEDPLATFORMSHORTNAME    STRING     1    "Terra/Aqua"
      ASSOCIATEDINSTRUMENTSHORTNAME  STRING     1    "MODIS"
      ASSOCIATEDSENSORSHORTNAME      STRING     1    "MODIS"
   END_GROUP = AssociatedPlatformInstrumentSensor

   GROUP = AdditionalAttributes

      ADDITIONALATTRIBUTENAME        STRING  FR (A)  Variable
      PARAMETERVALUE                 STRING  FR (A)  Variable
	
      ADDITIONALATTRIBUTENAME.1  = "QAPERCENTGOODQUALITY"
      ADDITIONALATTRIBUTENAME.2  = "QAPERCENTOTHERQUALITY"
      ADDITIONALATTRIBUTENAME.3  = "QAPERCENTNOTPRODUCEDCLOUD"
      ADDITIONALATTRIBUTENAME.4  = "QAPERCENTNOTPRODUCEDOTHER"
      ADDITIONALATTRIBUTENAME.5  = "HORIZONTALTILENUMBER"
      ADDITIONALATTRIBUTENAME.6  = "VERTICALTILENUMBER"
      ADDITIONALATTRIBUTENAME.7  = "TileID"
      ADDITIONALATTRIBUTENAME.8  = "PROCESSVERSION"
      ADDITIONALATTRIBUTENAME.9 = "identifier_product_doi"
      ADDITIONALATTRIBUTENAME.10 = "identifier_product_doi_authority"
      
   END_GROUP = AdditionalAttributes

 END_GROUP = INVENTORYMETADATA

ArchiveMetadata.0
	This string will contain the following PVL fields:

                                              # of
 Field Name                          Data     Value  Value
                                     Type       s
 GROUP = ARCHIVEMETADATA

   GROUP = BoundingRectangle
      WESTBOUNDINGCOORDINATE         DOUBLE     1    Variable
      NORTHBOUNDINGCOORDINATE        DOUBLE     1    Variable
      EASTBOUNDINGCOORDINATE         DOUBLE     1    Variable
      SOUTHBOUNDINGCOORDINATE        DOUBLE     1    Variable
   END_GROUP = BoundingRectangle

      GEOANYABNORMAL                 STRING     1    Variable
      GEOESTMAXRMSERROR              DOUBLE     1    Variable
      LONGNAME                       STRING     1    "MODIS/Terra Ocean Surface Reflectance Daily L2G Global 1km SIN Grid"
      SPSOPARAMETERS                 STRING     1    "2015"
      PROCESSINGCENTER               STRING     1    "MODAPS"
      NUMBEROFOVERLAPGRANULES        INTEGER    1    Variable
      NUMBEROFINPUTGRANULES          INTEGER    1    Variable
      NUMBEROFGRANULES               INTEGER    1    Variable
      GRANULENUMBERARRAY             INTEGER  FR(A)  Variable
      GRANULEPOINTERARRAY            INTEGER  FR(A)  Variable
      ORBITNUMBERARRAY               INTEGER  FR(A)  Variable
      NUMBEROFORBITS                 INTEGER    1    Variable
      GRANULEBEGINNINGDATETIME       STRING  "NumberofGranules"
                                                     Variable
      GRANULEENDINGDATETIME          STRING  "NumberofGranules"
                                                     Variable
      GRANULEDAYNIGHTFLAG            STRING  "NumberofGranules"
                                                     Variable
      GRANULEDAYOFYEAR               INTEGER  "NumberofGranules"
                                                     Variable
      GRANULEBEGINNINGDATETIMEARRAY  STRING    FR(A) Variable
      GRANULEENDINGDATETIMEARRAY     STRING    FR(A) Variable
      GRANULEDAYNIGHTFLAGARRAY       STRING    FR(A) Variable
      NADIRDATARESOLUTION            STRING      1   Variable
      CHARACTERISTICBINANGULARSIZE   DOUBLE   1   Variable
      CHARACTERISTICBINSIZE          DOUBLE      1   Variable
      DATACOLUMNS                    INTEGER     1   Variable
      DATAROWS                       INTEGER     1   Variable
      GLOBALGRIDCOLUMNS              INTEGER     1   Variable
      GLOBALGRIDROWS                 INTEGER     1   Variable
      MAXIMUMOBSERVATIONS            INTEGER     1   Variable
      ADDITIONALLAYERS               INTEGER     1   Variable
      TOTALOBSERVATIONS              INTEGER     1   Variable
      TOTALADDITIONALOBSERVATIONS    INTEGER    1   Variable
      COVERAGECALCULATIONMETHOD      STRING      1   Variable
      FIRSTLAYERSELECTIONCRITERIA    STRING      1   Variable
      L2GStorageFormat               STRING      1   Variable
      PROCESSINGENVIRONMENT          STRING      1   Variable
      DESCRREVISION                  STRING      1   Variable
      SYSTEMFILENAME                 STRING  FR (A)  Variable
      PERCENTPROCESSED               INTEGER     1   Variable
      PERCENTLAND                    INTEGER     1   Variable
      PERCENTLANDSEAMASKCLASS        INTEGER     8   Variable
      PERCENTCLOUDY                  INTEGER     1   Variable
      PERCENTSHADOW                  INTEGER     1   Variable
      PERCENTLOWSUN                  INTEGER     1   Variable
      RANKING                        STRING      1   Variable
      KEEPALL                        STRING      1   Variable
      COVERAGEMINIMUM                DOUBLE      1   Variable
      MAXOUTPUTRES                   STRING      1   Variable
      DEEPOCEANFLAG                  STRING      1   Variable
      CLOUDOPTION                    STRING     1   Variable

      ******************************************************************
      *    1. The field "L2GStorageFormat"
      *       is either "full", "compact" or "one layer only".
      *    2. The field "CoverageCalculationMethod" is either
      *       "area" or "volume".
      *    3. The field "FirstLayerSelectionCriteria" is always set to
      *       "nearest neighbor" or "maximum observation coverage".
      ******************************************************************

END_GROUP = ARCHIVEMETADATA


StructuralMetadata.0
    This string will be populated automatically by HDF-EOS.

Grid Structure:  MOD_Grid_L2g_2d

    Dimensions:

      Dimension Name                       Value

      YDim:MOD_Grid_L2g_2d              "DataRows"

      XDim:MOD_Grid_L2g_2d              "DataColumns"

    Corner Locations:

	Corner                Values

	UpperLeftPointMtrs    (Variable, Variable)

	LowerRightPointMtrs   (Variable, Variable)

    Geographic Grid Projection Parameters:

    Supported Grids:    Integerized Sinusoidal (GCTP_ISINUS)
                        Sinusoidal (GCTP_SNSOID)
            		Interrupted Goodes Homolosine (GCTP_GOOD)
            		Lambert Azimuthal Equal Area (GCTP_LAMAZ)

	Projection gridID = GCTP_ISINUS
		ProjParam[0]          6371007.181
		ProjParam[1 to 7]     0.0
		ProjParam[8]          86400
		ProjParam[9]          0.0
		ProjParam[10]         1.0
		ProjParam[11 to 12]   0.0
		Spherecode            -1
		GridOrigin            HDFE_GD_UL

	Projection gridID = GCTP_SNSOID
		ProjParam[0]          6371007.181
		ProjParam[1 to 12]    0.0
		Spherecode            -1
		GridOrigin            HDFE_GD_UL

	Projection gridID = GCTP_GOOD
		ProjParam[0 to 12]    0.0
		Spherecode            19
		GridOrigin            HDFE_GD_UL

	Projection gridID = GCTP_LAMAZ
		ProjParam[0]          6371228.0
		ProjParam[1 to 5]     0.0
		ProjParam[6]          Variable
		ProjParam[7 to 12]    0.0
		Spherecode            19
		GridOrigin            HDFE_GD_UL

Grid Structure:  MODIS_Grid_3D
    Dimensions:

      Dimension Name                       Value

      Additional Layers:MODIS_Grid_3D  "AdditionalLayers"
      YDim:MODIS_Grid_3D               "DataRows"
      XDim:MODIS_Grid_3D               "DataColumns"

   Corner Locations: (same as MOD_Grid_L2g_2d)

   Geographic Grid Projection Parameters: (same as MOD_Grid_L2g_2d)

===========================================================================

  Additional global attributes:

						Data
	Name					Type

	identifier_product_doi                  STRING
	identifier_product_doi_authority        STRING
===========================================================================

  DataFields:

The following datafields are always in this file:

      num_observations
      sur_refl_b08_1
      sur_refl_b09_1
      sur_refl_b10_1
      sur_refl_b11_1
      sur_refl_b12_1
      sur_refl_b13_1
      sur_refl_b14_1
      sur_refl_b15_1
      sur_refl_b16_1
      QC_b8_15_1km_1
      QC_b16_1km_1
      orb_cov_1
 
If the "L2GStorageFormat" metadata value is "full", the following
datafields are also present:

      sur_refl_b08_f
      sur_refl_b09_f
      sur_refl_b10_f
      sur_refl_b11_f
      sur_refl_b12_f
      sur_refl_b13_f
      sur_refl_b14_f
      sur_refl_b15_f
      sur_refl_b16_f
      QC_b8_15_1km_f
      QC_b16_1km_f
      orb_cov_f

If the "L2GStorageFormat" metadata value is "compact", the following
datafields are also present:

      sur_refl_b08_c
      sur_refl_b09_c
      sur_refl_b10_c
      sur_refl_b11_c
      sur_refl_b12_c
      sur_refl_b13_c
      sur_refl_b14_c
      sur_refl_b15_c
      sur_refl_b16_c
      QC_b8_15_1km_c
      QC_b16_1km_c
      orb_cov_c
      nadd_obs_row

Each datafield has at least the following 4 attributes:

      long_name (STRING)
      units (STRING)
      valid_range (agrees with data type of SDS)
      _FillValue (agrees with data type of SDS)

Some datafields also contain the following 5 attributes:

      add_offset (float64)
      add_offset_err (float64)
      calibrated_nt (int32)
      scale_factor (float64)
      scale_factor_err (float64)
      Nadir Data Resolution (STRING - "1km")
      QA index (STRING)

===========================================================================

	Name                    Data      Dimensions
	                        Type

        num_observations        INT8      "YDim:MOD_Grid_L2g_2d",
	                                  "XDim:MOD_Grid_L2g_2d"

	Description:

	The number of 1km observations per pixel contained within
	this L2G file.  In addition, if the value is less than zero,
	it means that intersections were not computed for this cell.
	If it is -1, it is part of the fill region of the grid.  If it
	is -2, it is in the area identified as 'non-production' in the
	Land Production Mask.

        HDF Attributes:

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      22      "Number of observations"
	units            STRING      4       "none"
	valid_range      INT8        2       0, 127
	_FillValue       INT8        1       -1

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b08_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b08_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b08_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 8 Surface Reflectance
		
	"sur_refl_b08_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b08_f" and "sur_refl_b08_c" are for storing the
	additional layers of observations.  "sur_refl_b08_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b08_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 8 - first layer" for "sur_refl_b08_1", 
	   "1km Surface Reflectance Band 8 - additional layers, full" 
	      for "sur_refl_b08_f", or 
	   "1km Surface Reflectance Band 8 - additional layers, compact" 
	      for "sur_refl_b08_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b09_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b09_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b09_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 9 Surface Reflectance
		
	"sur_refl_b09_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b09_f" and "sur_refl_b09_c" are for storing the
	additional layers of observations.  "sur_refl_b09_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b09_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 9 - first layer" for "sur_refl_b09_1", 
	   "1km Surface Reflectance Band 9 - additional layers, full" 
	      for "sur_refl_b09_f", or 
	   "1km Surface Reflectance Band 9 - additional layers, compact" 
	      for "sur_refl_b09_c".
	      
===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b10_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b10_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b10_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 10 Surface Reflectance
		
	"sur_refl_b10_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b10_f" and "sur_refl_b10_c" are for storing the
	additional layers of observations.  "sur_refl_b10_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b10_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 10 - first layer" for "sur_refl_b10_1", 
	   "1km Surface Reflectance Band 10 - additional layers, full" 
	      for "sur_refl_b10_f", or 
	   "1km Surface Reflectance Band 10 - additional layers, compact" 
	      for "sur_refl_b10_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b11_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b11_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b11_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 11 Surface Reflectance
		
	"sur_refl_b11_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b11_f" and "sur_refl_b11_c" are for storing the
	additional layers of observations.  "sur_refl_b11_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b11_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 11 - first layer" for "sur_refl_b11_1", 
	   "1km Surface Reflectance Band 11 - additional layers, full" 
	      for "sur_refl_b11_f", or 
	   "1km Surface Reflectance Band 11 - additional layers, compact" 
	      for "sur_refl_b11_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b12_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b12_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b12_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 12 Surface Reflectance
		
	"sur_refl_b12_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b12_f" and "sur_refl_b12_c" are for storing the
	additional layers of observations.  "sur_refl_b12_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b12_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 12 - first layer" for "sur_refl_b12_1", 
	   "1km Surface Reflectance Band 12 - additional layers, full" 
	      for "sur_refl_b12_f", or 
	   "1km Surface Reflectance Band 12 - additional layers, compact" 
	      for "sur_refl_b12_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b13_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b13_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b13_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 13 Surface Reflectance
		
	"sur_refl_b13_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b13_f" and "sur_refl_b13_c" are for storing the
	additional layers of observations.  "sur_refl_b13_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b13_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 13 - first layer" for "sur_refl_b13_1", 
	   "1km Surface Reflectance Band 13 - additional layers, full" 
	      for "sur_refl_b13_f", or 
	   "1km Surface Reflectance Band 13 - additional layers, compact" 
	      for "sur_refl_b13_c".
	      
===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b14_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b14_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b14_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 14 Surface Reflectance
		
	"sur_refl_b14_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b14_f" and "sur_refl_b14_c" are for storing the
	additional layers of observations.  "sur_refl_b14_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b14_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 14 - first layer" for "sur_refl_b14_1", 
	   "1km Surface Reflectance Band 14 - additional layers, full" 
	      for "sur_refl_b14_f", or 
	   "1km Surface Reflectance Band 14 - additional layers, compact" 
	      for "sur_refl_b14_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b15_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b15_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b15_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 15 Surface Reflectance
		
	"sur_refl_b15_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b15_f" and "sur_refl_b15_c" are for storing the
	additional layers of observations.  "sur_refl_b15_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b15_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 15 - first layer" for "sur_refl_b15_1", 
	   "1km Surface Reflectance Band 15 - additional layers, full" 
	      for "sur_refl_b15_f", or
	   "1km Surface Reflectance Band 15 - additional layers, compact" 
	      for "sur_refl_b15_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	sur_refl_b16_1		INT16    "YDim:MOD_Grid_L2g_2d",
	                                 "XDim:MOD_Grid_L2g_2d"

	sur_refl_b16_f		INT16    "Additional Layers:MODIS_Grid_3D",
	                                 "YDim:MOD_Grid_L2g_3D",
	                                 "XDim:MOD_Grid_L2g_3D"

	sur_refl_b16_c		INT16    "TotalAdditionalObservations"
                                          metadata value

        Description:
  
	1km MODIS Band 16 Surface Reflectance
		
	"sur_refl_b16_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b16_f" and "sur_refl_b16_c" are for storing the
	additional layers of observations.  "sur_refl_b16_f" is for the
	full format and is stored only if "L2GStorageFormat" is "full". 
	"sur_refl_b16_c" is for the compact format and is stored only if 
	"L2GStorageFormat" is "compact".

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      44      Variable
	units            STRING      11       "reflectance"
	valid_range      INT16      2       -100, 16000
	_FillValue       INT16      1       -28672
        add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5
	scale_factor     FLOAT64     1       10000.0
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      3       "1km"

	Note: The attribute "long_name" is 
           "1km Surface Reflectance Band 16 - first layer" for "sur_refl_b16_1", 
	   "1km Surface Reflectance Band 16 - additional layers, full" 
	      for "sur_refl_b16_f", or 
	   "1km Surface Reflectance Band 16 - additional layers, compact" 
	      for "sur_refl_b16_c".
	      
===========================================================================

	Name                    Data      Dimensions
	                        Type

	QC_b8_15_1km_1		UINT32    "YDim:MOD_Grid_L2g_2d",
	                                  "XDim:MOD_Grid_L2g_2d"

	QC_b8_15_1km_f		UINT32    "Additional Layers:MODIS_Grid_3D",
	                                  "YDim:MOD_Grid_3D",
	                                  "XDim:MOD_Grid_3D"

	QC_b8_15_1km_c		UINT32    "TotalAdditionalObservations1km"
                                          metadata value

        Description:
  
	1km bands 8-15 Reflectance Band Quality
		
	"QC_b8_15_1km_1" is for storing the first layer of observations
	and is always stored.
		
	"QC_b8_15_1km_f" and "QC_b8_15_1km_c" are for storing the
	additional layers of observations.  "QC_b8_15_1km_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full". 
	"QC_b8_15_1km_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

	Note: Bits are listed from the MSB (bit 31) to the LSB (bit 0).
                
	Bit(s) Description
	28-31  band 15 data quality four bit range;
	       0000 -- highest quality
	       0111 -- noisy detector
	       1000 -- dead detector; data interpolated in L1B
	       1001 -- solar zenith >= 86 degrees
	       1010 -- solar zenith >= 85 and < 86 degrees
	       1011 -- missing input
	       1100 -- internal constant used in place of climatological data 
	               for at least one atmospheric constant
	       1101 -- correction out of bounds pixel constrained to extreme 
	               allowable value
	       1110 -- L1B data faulty
	       1111 -- not processed due to deep ocean or clouds
	24-27  band 14 data quality four bit range;
	       SAME AS ABOVE
	20-23  band 13 data quality four bit range;
	       SAME AS ABOVE
	16-19  band 12 data quality four bit range;
	       SAME AS ABOVE
	12-15  band 11 data quality four bit range;
	       SAME AS ABOVE
	8-11   band 10 data quality four bit range;
	       SAME AS ABOVE
	4-7    band 9 data quality four bit range;
	       SAME AS ABOVE
	0-3    band 8 data quality four bit range;
	       SAME AS ABOVE

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      48      Variable
	units            STRING      9       "bit field"
	valid_range      UINT16      2       0, 4294966019
	_FillValue       UINT16      1       787410671
	Nadir Data Resolution
	                 STRING      3       "1km"
	QA index	 STRING     1156     Variable

	Note: The attribute "long_name" is 
           "1km b8-15 Reflectance Band Quality - first layer" for "QC_b8_15_1km_1", 
	   "1km b8-15 Reflectance Band Quality - additional layers, full" 
	      for "QC_b8_15_1km_f", or 
	   "1km b8-15 Reflectance Band Quality - additional layers, compact" 
	      for "QC_b8_15_1km_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	QC_b16_1km_1		UINT8    "YDim:MOD_Grid_L2g_2d",
	                                  "XDim:MOD_Grid_L2g_2d"

	QC_b16_1km_f		UINT8    "Additional Layers:MODIS_Grid_3D",
	                                  "YDim:MOD_Grid_3D",
	                                  "XDim:MOD_Grid_3D"

	QC_b16_1km_c		UINT8    "TotalAdditionalObservations1km"
                                          metadata value

        Description:
  
	1km band 16 Reflectance Band Quality
		
	"QC_b16_1km_1" is for storing the first layer of observations
	and is always stored.
		
	"QC_b16_1km_f" and "QC_b16_1km_c" are for storing the
	additional layers of observations.  "QC_b16_1km_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full". 
	"QC_b16_1km_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

	Note: Bits are listed from the MSB (bit 31) to the LSB (bit 0).
                
	Bit(s) Description
	4-7    band 16 data quality four bit range;
	       0000 -- highest quality
	       0111 -- noisy detector
	       1000 -- dead detector; data interpolated in L1B
	       1001 -- solar zenith >= 86 degrees
	       1010 -- solar zenith >= 85 and < 86 degrees
	       1011 -- missing input
	       1100 -- internal constant used in place of climatological data 
	               for at least one atmospheric constant
	       1101 -- correction out of bounds pixel constrained to extreme 
	               allowable value
	       1110 -- L1B data faulty
	       1111 -- not processed due to deep ocean or clouds
	0-3    spare (unused);

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      46      Variable
	units            STRING      9       "bit field"
	valid_range      UINT16      2       0, 255
	_FillValue       UINT16      1       3
	Nadir Data Resolution
	                 STRING      3       "1km"
	QA index	 STRING     1156     Variable

	Note: The attribute "long_name" is 
           "1km b16 Reflectance Band Quality - first layer" for "QC_b16_1km_1", 
	   "1km b16 Reflectance Band Quality - additional layers, full" 
	      for "QC_b16_1km_f", or 
	   "1km b16 Reflectance Band Quality - additional layers, compact" 
	      for "QC_b16_1km_c".
	      
===========================================================================

	Name                    Data      Dimensions
	                        Type

	orb_cov_1		UINT8      "YDim:MOD_Grid_L2g_2d",
	                                  "XDim:MOD_Grid_L2g_2d"

	orb_cov_f		UINT8      "Additional Layers:MODIS_Grid_3D",
	                                  "YDim:MODIS_Grid_3D",
	                                  "XDim:MODIS_Grid_3D"

	orb_cov_c		UINT8      "TotalAdditionalObservations"
                                          metadata value


        Description:

		Orbit and coverage: the orbit the observation came from and
		the observation coverage.  The orbit number is not the absolute
		orbit number but a relative orbit number in the file.  In
		addition a flag is stored which distinguishes between
		observations which are in the top half of the scan (the first
		5 1km scan lines in the along track direction) and the bottom
		half of the scan (the last 5 1km scan lines).  The observation
		coverage is the area of intersection of observation footprint
		and cell divided by the area of the observation.
		
		Bit     Description
		0-3     Orbit number: 4 bit unsigned integer; range 0 to 13
				key: 0000 ( 0) to 1011 (13)
		4       Scan half flag; which half of the scan the observation
				 came from:
				key: 0 - top half
					 1 - bottom half
		5-7     Observation coverage: 3 bit unsigned integer;
				range 0 to 7
				key: 000 (0) -  0.0 to  12.5%
					 001 (1) - 12.5 to  25.0%
					 010 (2) - 25.0 to  37.5%
					 011 (3) - 37.5 to  50.0%
					 100 (4) - 50.0 to  62.5%
					 101 (5) - 62.5 to  75.0%
					 110 (6) - 75.0 to  87.5%
					 111 (7) - 87.5 to 100.0%

		"orb_cov_1" is for storing the first layer of observations
		and is always stored.
		
		"orb_cov_f" and "orb_cov_c" are for storing the
		additional layers of observations.  "orb_cov_f" is for the
		full format and is stored only if the metadatum
		"L2GStorageFormat" is "full".  "orb_cov_c" is for the
		compact format and is stored only if the metadatum
		"L2GStorageFormat" is "compact".

        HDF Attributes:

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      49      Variable
	units            STRING      9       "bit field"
	valid_range      INT8        2       0, 255
	_FillValue       INT8        1       15
		
	Note: The attribute "long_name" is 
              "Orbit pointer - first layer" for "orb_cov_1", 
              "Orbit pointer - additional layers, full" for "orb_cov_f", or 
	      "Orbit pointer - additional layers, compact" for "orb_cov_c".

===========================================================================

	Name                    Data      Dimensions
	                        Type

	nadd_obs_row    	INT32	  "DataRows" metadata value

	Description:

	The number of additional observations in each row in the
	compact storage form of the L2G grid.

	This field is only stored if "L2GStorageFormat" is "compact".

        HDF Attributes:

	             		  Number of
	               		  Values or
	               		    Max.
	Attribute        Data      String    Value
	                 Type      Length

	long_name        STRING      41      "Number of additional observations 	
					     per row"
	units            STRING      4       "none"
	valid_range      INT32       2       0, INT32_MAX
	_FillValue       INT32       1       -1

===========================================================================