HDF-EOS V2 MODIS L2G-lite Land Surface Reflectance File Specification
Revision 2.0 (10/15/2013)

Product ID(s): MYD09 L2G 1DY 1KM AND 500M (MYD09GA)

Description:

The MODIS 1km and 500m Resolution Level-2G (L2G) Land Surface Reflectance 
file contains the restructured Level-2 (L2) Land Surface Reflectance data 
(observations) which intersects a geographic area, a tile, in the MODIS Land 
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 and 500m.

The 1km and 500m observations are stored in a nested hierarchy of grid cells 
with the four finer resolution 500m observations stored in the grid cell 
location corresponding to the coarser 1km resolution cells containing data 
from the same orbit.

A single 1km observation consist of the 1km reflectance state QA data, 
spacecraft viewing angles, spacecraft range, solar viewing angles, geolocation 
QA flags and the orbit and granule pointer fields.
 
A single 500m surface reflectance observation consist of the surface 
reflectance for Bands 1 to 7, the corresponding Quality Assurance (QA) data, 
and the 500m observation coverage (obscov).  The observation coverage 
field gives a estimate of the intersection between the observation and the grid 
cell (relative to the observation area).  Within each 1km grid cell there 
can be several corresponding 500m observations and these observations may be 
from different scans, so there is an observation layer pointer (iobs_res) that 
specifies which of the 1km observations is associated with each of the four 500m
observations.  To relate to 250m observations that is stored in a seperate 
corresponding 250m L2G file (MYD09GQ), there is a 250m scan value (q_scan) that 
states whether the corresponding 250m observations from the same orbit are 
available for the 500m observation, and also states whether the 250m 
observations are from the same or a different scan.

The 500m observations (and corresponding 1km observations) are chosen in the 
following three steps:

1. First, one 500m observation in each orbit for each grid cell is selected by 
selecting the one with the largest observation coverage.

2. Next, for a 500m grid cell, the 500m observations with the maximum 
observation coverage for each orbit are selected and sorted in the order of 
ascending orbit numbers (earliest first).

3. The first layer is then selected using the same compositing criteria as is 
used in the 8-day surface reflectance product (as of June 2005).  The 
observation with the highest score is pulled up to the first layer and stored.  
Note that the scoring does not use a maximum observation coverage criteria, it 
uses: 1) best observation based on a QA score; and 2) then for observations with 
the same QA score and that are close to the smallest observed blue value, the 
one with the lowest view zenith angle.

The observation coverage is stored with each observation so the end-user can 
always reorder the observations using whatever criteria they want, once they 
read them in.

This new format reduces the number of 1km and 500m L2G files from five files to 
one file per day for each tile.  The mapping between the original L2G files and 
this new L2G file is:

    MYD09GST - all SDSs
    MODPT1KD - no SDSs
    MODMGGAD - all SDSs

    MYD09GHK - all SDSs except orb_cov)
    MODPTHKM - only the obscov and iobs_res SDSs

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 
L2GStorageFormat1km and L2GStorageFormat500m metadata values. 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.

In addition, the a run-time parameter 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 619
               Greenbelt, MD 20771

Principal Investigator:  
               Eric Vermote
               NASA's Goddard Space Flight Center, Code 619
               Greenbelt, MD 20771

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

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    "MYD09GA"
      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)  "MYD09G"

      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 = "QAPERCENTPOOROUTPUT500MBAND1"
      ADDITIONALATTRIBUTENAME.10 = "QAPERCENTPOOROUTPUT500MBAND2"
      ADDITIONALATTRIBUTENAME.11 = "QAPERCENTPOOROUTPUT500MBAND3"
      ADDITIONALATTRIBUTENAME.12 = "QAPERCENTPOOROUTPUT500MBAND4"
      ADDITIONALATTRIBUTENAME.13 = "QAPERCENTPOOROUTPUT500MBAND5"
      ADDITIONALATTRIBUTENAME.14 = "QAPERCENTPOOROUTPUT500MBAND6"
      ADDITIONALATTRIBUTENAME.15 = "QAPERCENTPOOROUTPUT500MBAND7"
      ADDITIONALATTRIBUTENAME.16 = "RESOLUTIONBANDS1AND2"
      ADDITIONALATTRIBUTENAME.17 = "identifier_product_doi"
      ADDITIONALATTRIBUTENAME.18 = "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/Aqua Surface 
                              Reflectance Daily L2G Global 1km and 500m 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
      NADIRDATARESOLUTION1KM         STRING      1   Variable
      CHARACTERISTICBINANGULARSIZE1KM   DOUBLE   1   Variable
      CHARACTERISTICBINSIZE1KM       DOUBLE      1   Variable
      DATACOLUMNS1KM                 INTEGER     1   Variable
      DATAROWS1KM                    INTEGER     1   Variable
      GLOBALGRIDCOLUMNS1KM           INTEGER     1   Variable
      GLOBALGRIDROWS1KM              INTEGER     1   Variable
      MAXIMUMOBSERVATIONS1KM         INTEGER     1   Variable
      ADDITIONALLAYERS1KM            INTEGER     1   Variable
      TOTALOBSERVATIONS1KM           INTEGER     1   Variable
      TOTALADDITIONALOBSERVATIONS1KM  INTEGER    1   Variable
      COVERAGECALCULATIONMETHOD      STRING      1   Variable
      FIRSTLAYERSELECTIONCRITERIA    STRING      1   Variable
      L2GSTORAGEFORMAT1KM            STRING      1   Variable
      QUALITYCLASSPERCENTAGE500MBAND3  INTEGER  16   Variable
      QUALITYCLASSPERCENTAGE500MBAND4  INTEGER  16   Variable
      QUALITYCLASSPERCENTAGE500MBAND5  INTEGER  16   Variable
      QUALITYCLASSPERCENTAGE500MBAND6  INTEGER  16   Variable
      QUALITYCLASSPERCENTAGE500MBAND7  INTEGER  16   Variable
      PROCESSINGENVIRONMENT          STRING      1   Variable
      DESCRREVISION                  STRING      1   Variable
      SYSTEMFILENAME                 STRING  FR (A)  Variable
      NADIRDATARESOLUTION500M        STRING      1   Variable
      CHARACTERISTICBINANGULARSIZE500M  DOUBLE   1   Variable
      CHARACTERISTICBINSIZE500M      DOUBLE      1   Variable
      DATACOLUMNS500M                INTEGER     1   Variable
      DATAROWS500M                   INTEGER     1   Variable
      GLOBALGRIDCOLUMNS500M          INTEGER     1   Variable
      GLOBALGRIDROWS500M             INTEGER     1   Variable
      MAXIMUMOBSERVATIONS500M        INTEGER     1   Variable
      ADDITIONALLAYERS500M           INTEGER     1   Variable
      TOTALOBSERVATIONS500M          INTEGER     1   Variable
      TOTALADDITIONALOBSERVATIONS500M  INTEGER   1   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
      L2GSTORAGEFORMAT500M           STRING      1   Variable
      QUALITYCLASSPERCENTAGE500MBAND1  INTEGER  16   Variable
      QUALITYCLASSPERCENTAGE500MBAND2  INTEGER  16   Variable
      CLOUDOPTION                     STRING     1   Variable

      ******************************************************************
      *    1. The field "L2GStorageFormat1km" and "L2GStorageFormat500m 
      *       is either "full", "compact" or "one layer only".
      *    2. The field "CoverageCalculationMethod" is either
      *       "area" or "volume".
      *    3. The field "FirstLayerSelectionCriteria" is either
      *       "nearest neighbor" or "maximum observation coverage".
      ******************************************************************

END_GROUP = ARCHIVEMETADATA


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

Grid Structure:  MODIS_Grid_1km_2D

    Dimensions:

      Dimension Name                       Value

      YDim:MODIS_Grid_1km_2D              "DataRows1km"

      XDim:MODIS_Grid_1km_2D              "DataColumns1km"

    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_500m_2D
    Dimensions:

      Dimension Name                       Value

      YDim:MODIS_Grid_500m_2D              "DataRows500m"
      XDim:MODIS_Grid_500m_2D              "DataColumns500m"

   Corner Locations: (same as MODIS_Grid_1km_2D)

   Geographic Grid Projection Parameters: (same as MODIS_Grid_1km_2D)

Grid Structure:  MODIS_Grid_1km_3D
    Dimensions:

      Dimension Name                       Value

      Additional Layers:MODIS_Grid_1km_3D  "AdditionalLayers1km"
      YDim:MODIS_Grid_1km_3D               "DataRows1km"
      XDim:MODIS_Grid_1km_3D               "DataColumns1km"

   Corner Locations: (same as MODIS_Grid_1km_2D)

   Geographic Grid Projection Parameters: (same as MODIS_Grid_1km_2D)

Grid Structure:  MODIS_Grid_500m_3D
    Dimensions:

      Dimension Name                        Value

      Additional Layers:MODIS_Grid_500m_3D  "AdditionalLayers500m"
      YDim:MODIS_Grid_500m_3D               "DataRows500m"
      XDim:MODIS_Grid_500m_3D               "DataColumns500m"

   Corner Locations: (same as MODIS_Grid_1km_2D)

   Geographic Grid Projection Parameters: (same as MODIS_Grid_1km_2D)

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

  Additional global attributes:

						Data
	Name					Type

	maximum_observations_1km		INT8
	total_additional_observations_1km	INT32
	l2g_storage_format_1km			STRING
	maximum_observations_500m		INT8
	total_additional_observations_500m	INT32
	l2g_storage_format_500m			STRING
        NumberLandWater1km                      INT32
        NumberLandWater500m                     INT32
        identifier_product_doi                  STRING
        identifier_product_doi_authority        STRING
===========================================================================

  DataFields:

The following datafields are always in this file:

      num_observations_1km
      state_1km_1
      SensorZenith_1
      SensorAzimuth_1
      Range_1
      SolarZenith_1
      SolarAzimuth_1
      gflags_1
      orbit_pnt_1
      granule_pnt_1
 
      num_observations_500m
      sur_refl_b03_1
      sur_refl_b04_1
      sur_refl_b05_1
      sur_refl_b06_1
      sur_refl_b07_1
      QC_500m_1
      obscov_500m_1
      iobs_res_1
      q_scan_1

The following datafields are only present if the L2G MYD09GHK inputs contains
the 500m band 1 and 2 data fields: "500m Surface Reflectance Band 1" and 
"500m Surface Reflectance Band 2".

      sur_refl_b01_1
      sur_refl_b02_1

If the "L2GStorageFormat1km" metadata value is "full", the following
datafields are also present:

      state_1km_f
      SensorZenith_f
      SensorAzimuth_f
      Range_f
      SolarZenith_f
      SolarAzimuth_f
      gflags_f
      orbit_pnt_f
      granule_pnt_f

If the "L2GStorageFormat500m" metadata value is "full", the following
datafields are also present:

      sur_refl_b03_f
      sur_refl_b04_f
      sur_refl_b05_f
      sur_refl_b06_f
      sur_refl_b07_f
      QC_500m_f
      obscov_500m_f
      iobs_res_f
      q_scan_f

and if the L2 MYD09 inputs contains the 500m band 1 and 2 data fields:

      sur_refl_b01_f
      sur_refl_b02_f

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

      state_1km_c
      SensorZenith_c
      SensorAzimuth_c
      Range_c
      SolarZenith_c
      SolarAzimuth_c
      gflags_c
      orbit_pnt_c
      granule_pnt_c
      nadd_obs_row_1km

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

      sur_refl_b03_c
      sur_refl_b04_c
      sur_refl_b05_c
      sur_refl_b06_c
      sur_refl_b07_c
      QC_500m_c
      obscov_500m_c
      iobs_res_c
      q_scan_c
      nadd_obs_row_500m

and if the L2 MYD09 inputs contains the 500m band 1 and 2 data fields:

      sur_refl_b01_c
      sur_refl_b02_c

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 - either "500m" or "1km")
      QA index (STRING)

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

	Name                    Data      Dimensions
	                        Type

        num_observations_1km    INT8      "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_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

	state_1km_1		UINT16    "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	state_1km_f		UINT16    "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MOD_Grid_L2g_3D",
	                                  "XDim:MOD_Grid_L2g_3D"

	state_1km_c		UINT16    "TotalAdditionalObservations1km"
                                          metadata value

        Description:
  
	1km Reflectance Data State QA
		
	"state_1km_1" is for storing the first layer of observations
	and is always stored.
		
	"state_1km_f" and "state_1km_c" are for storing the
	additional layers of observations.  "state_1km_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full". 
	"state_1km_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

	Note: Bits are listed from the MSB (bit 15) to the LSB (bit 0).
                
	Bit(s) Description
	15     internal snow mask; snow (1) or no snow (0)
	14     BRDF correction performed; yes (1) or no (0)
        13     Pixel is adjacent to cloud; yes (1) or no (0)
	12     MOD35 snow/ice flag; yes(1) or no(0)
	11     internal fire algorithm flag; fire (1) or no fire (0) 
	10     internal cloud algorithm flag; cloud (1) or no cloud (0)
	8-9    cirrus detected; none (00), small (01), average (10),
	       high (11)
	6-7    aerosol quantity; climatology (00), low (01) average (10),
	       high (11)
	3-5    land/water flag; class definitions:
	       000 -- shallow ocean
	       001 -- land
	       010 -- ocean coastlines and land shorelines
	       011 -- shallow inland water
	       100 -- ephemeral water
	       101 -- deep inland water
	       110 -- continental/moderate ocean
	       111 -- deep ocean
	2      cloud shadow; yes (1) or no (0)
	0-1    cloud state; clear (00), cloudy (01), mixed (10), not
	       set, assumed clear (11)

	Note that all bit flags in this SDS can be applied 
	to the respective 500m and 250m reflectance data.

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

	long_name        STRING      58      Variable
	units            STRING      9       "bit field"
	valid_range      UINT16      2       0, 57335
	_FillValue       UINT16      1       65535
	Nadir Data Resolution
	                 STRING      3       "1km"
	QA index	 STRING     1500     Variable

	Note: The attribute "long_name" is 
           "1km Reflectance Data State QA - first layer" for "state_1km_1", 
	   "1km Reflectance Data State QA - additional layers, full" 
	      for "state_1km_f", or 
	   "1km Reflectance Data State QA - additional layers, compact" 
	      for "state_1km_c".

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

	Name                    Data      Dimensions
	                        Type

	SensorZenith_1		INT16     "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	SensorZenith_f		INT16     "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	SensorZenith_c		INT16     "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Zenith angle to sensor.
		
	"SensorZenith_1" is for storing the first layer of observations
	and is always stored.
		
	"SensorZenith_f" and "SensorZenith_c" are for storing the
	additional layers of observations.  "SensorZenith_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"SensorZenith_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      42      Variable
	units            STRING      6       "degree"
	valid_range      INT16       2       0, 18000
	_FillValue       INT16       1       -32767
	scale_factor     FLOAT64     1       0.01
		
	Note: The attribute "long_name" is 
              "Sensor zenith - first layer" for "SensorZenith_1", 
              "Sensor zenith - additional layers, full" 
	         for "SensorZenith_f", or 
	      "Sensor zenith - additional layers, compact" 
	         for "SensorZenith_c".

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

	Name                    Data      Dimensions
	                        Type

	SensorAzimuth_1		INT16     "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	SensorAzimuth_f		INT16     "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	SensorAzimuth_c		INT16     "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Azimuth angle to sensor.
		
	"SensorAzimuth_1" is for storing the first layer of observations
	and is always stored.
		
	"SensorAzimuth_f" and "SensorAzimuth_c" are for storing the
	additional layers of observations.  "SensorAzimuth_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"SensorAzimuth_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      43      Variable
	units            STRING      6       "degree"
	valid_range      INT16       2       -18000, 18000
	_FillValue       INT16       1       -32767
	scale_factor     FLOAT64     1       0.01
		
	Note: The attribute "long_name" is 
              "Sensor azimuth - first layer" for "SensorAzimuth_1", 
              "Sensor azimuth - additional layers, full" 
	         for "SensorAzimuth_f", or 
	      "Sensor azimuth - additional layers, compact" 
	         for "SensorAzimuth_c".

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

	Name                    Data      Dimensions
	                        Type

	Range_1		        UINT16    "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	Range_f		        UINT16    "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	Range_c		        UINT16    "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Distance to sensor.
		
	"Range_1" is for storing the first layer of observations
	and is always stored.
		
	"Range_f" and "Range_c" are for storing the
	additional layers of observations.  "Range_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"Range_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      34      Variable
	units            STRING      6       "meters"
	valid_range      UINT16      2       27000, 65535
	_FillValue       UINT16      1       0
	scale_factor     FLOAT64     1       0.04
		
	Note: The attribute "long_name" is 
              "Range - first layer" for "Range_1", 
              "Range - additional layers, full" for "Range_f", or 
	      "Range - additional layers, compact" for "Range_c".

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

	Name                    Data      Dimensions
	                        Type

	SolarZenith_1		INT16     "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	SolarZenith_f		INT16     "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	SolarZenith_c		INT16     "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Zenith angle to sun.
		
	"SolarZenith_1" is for storing the first layer of observations
	and is always stored.
		
	"SolarZenith_f" and "SolarZenith_c" are for storing the
	additional layers of observations.  "SolarZenith_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"SolarZenith_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      41      Variable
	units            STRING      6       "degree"
	valid_range      INT16       2       0, 18000
	_FillValue       INT16       1       -32767
	scale_factor     FLOAT64     1       0.01
		
	Note: The attribute "long_name" is 
              "Solar zenith - first layer" for "SolarZenith_1", 
              "Solar zenith - additional layers, full" for "SolarZenith_f", or 
	      "Solar zenith - additional layers, compact" for "SolarZenith_c".

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

	Name                    Data      Dimensions
	                        Type

	SolarAzimuth_1		INT16     "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	SolarAzimuth_f		INT16     "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	SolarAzimuth_c		INT16     "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Azimuth angle to sun.
		
	"SolarAzimuth_1" is for storing the first layer of observations
	and is always stored.
		
	"SolarAzimuth_f" and "SolarAzimuth_c" are for storing the
	additional layers of observations.  "SolarAzimuth_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"SolarAzimuth_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      42      Variable
	units            STRING      6       "degree"
	valid_range      INT16       2       -18000, 18000
	_FillValue       INT16       1       -32767
	scale_factor     FLOAT64     1       0.01
		
	Note: The attribute "long_name" is 
              "Solar azimuth - first layer" for "SolarAzimuth_1", 
              "Solar azimuth - additional layers, full" for "SolarAzimuth_f", or 
	      "Solar azimuth - additional layers, compact" for "SolarAzimuth_c".


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

	Name                    Data      Dimensions
	                        Type

	gflags_1		UINT8     "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	gflags_f		UINT8     "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	gflags_c		UINT8    "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Geolocation flags.
		
	Bit(s) Description
	0-2    fill (zero)
        3      sensor range validity flag; valid (0) or invalid (1)
	4      digital elevation model quality flag; valid (0) or 
	       missing/inferior (1)
	5      terrain data validity flag; valid (0) or invalid (1)
	6      ellipsoid intersection flag; valid intersection (0) or 
	       no intersection (1)
	7      input data flag; valid (0), invalid (1)

	"gflags_1" is for storing the first layer of observations
	and is always stored.
		
	"gflags_f" and "gflags_c" are for storing the
	additional layers of observations.  "gflags_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"gflags_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      46      Variable
	units            STRING      6       "bit field"
	valid_range      UINT8       2       0, 248
	_FillValue       UINT8       1       255
		
	Note: The attribute "long_name" is 
              "Geolocation flags - first layer" for "gflags_1", 
              "Geolocation flags - additional layers, full" for "gflags_f", or 
	      "Geolocation flags - additional layers, compact" for "gflags_c".

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

	Name                    Data      Dimensions
	                        Type

	orbit_pnt_1		INT8      "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	orbit_pnt_f		INT8      "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	orbit_pnt_c		INT8      "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Pointer to the orbit information for each 1km observation.  This value 
        is zero relative, with zero (0) refering to the first orbit in the 
	"OrbitCalculatedSpatialDomain" HDF EOS inventory metadata group.

	"orbit_pnt_1" is for storing the first layer of observations
	and is always stored.
		
	"orbit_pnt_f" and "orbit_pnt_c" are for storing the
	additional layers of observations.  "orbit_pnt_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"orbit_pnt_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      42      Variable
	units            STRING      6       "none"
	valid_range      INT8        2       0, 15
	_FillValue       INT8        1       -1
		
	Note: The attribute "long_name" is 
              "Orbit pointer - first layer" for "orbit_pnt_1", 
              "Orbit pointer - additional layers, full" for "orbit_pnt_f", or 
	      "Orbit pointer - additional layers, compact" for "orbit_pnt_c".

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

	Name                    Data      Dimensions
	                        Type

	granule_pnt_1		UINT8     "YDim:MODIS_Grid_1km_2D",
	                                  "XDim:MODIS_Grid_1km_2D"

	granule_pnt_f		UINT8     "Additional Layers:MODIS_Grid_1km_3D",
	                                  "YDim:MODIS_Grid_1km_3D",
	                                  "XDim:MODIS_Grid_1km_3D"

	granule_pnt_c		UINT8     "TotalAdditionalObservations1km"
                                          metadata value


        Description:

	Pointer to the granule information for each 1km observation.  This value 
        is zero relative, with zero (0) refering to the first overlap granule in the 
	"GranulePointerArray" HDF EOS ArchiveMetadata group.

	"granule_pnt_1" is for storing the first layer of observations
	and is always stored.
		
	"granule_pnt_f" and "granule_pnt_c" are for storing the
	additional layers of observations.  "orbit_pnt_f" is for the
	full format and is stored only if "L2GStorageFormat1km" is "full".
	"orbit_pnt_c" is for the compact format and is stored only if 
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      42      Variable
	units            STRING      6       "none"
	valid_range      UINT8        2       0, 254
	_FillValue       UINT8        1       255
		
	Note: The attribute "long_name" is 
              "Granule pointer - first layer" for "granule_pnt_1", 
              "Granule pointer - additional layers, full" for "granule_pnt_f", or 
	      "Granule pointer - additional layers, compact" for "granule_pnt_c".

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

	Name                    Data      Dimensions
	                        Type

	nadd_obs_row_1km	INT32	  "DataRows1km" 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 "L2GStorageFormat1km" 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

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

	Name                    Data      Dimensions
	                        Type

        num_observations_500m   INT8      "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	Description:

	The number of 500m 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_b01_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b01_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b01_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 1.
	
	"sur_refl_b01_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b01_f" and "sur_refl_b01_c" are for storing the
	additional layers of observations.  "sur_refl_b01_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b01_c" is for the compact format and is stored only if
	"L2GStorageFormat1km" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 1 - first layer" for "sur_refl_b01_1", 
	  "500m Surface Reflectance Band 1 - additional layers, full" 
             for "sur_refl_b01_f", or 
	  "500m Surface Reflectance Band 1 - additional layers, compact" 
	     for "sur_refl_b01_c".

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

	Name                    Data      Dimensions
	                        Type

	sur_refl_b02_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b02_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b02_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 2.
	
	"sur_refl_b02_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b02_f" and "sur_refl_b02_c" are for storing the
	additional layers of observations.  "sur_refl_b02_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b02_c" is for the compact format and is stored only if
	"L2GStorageFormat500m" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 2 - first layer" for "sur_refl_b02_1", 
	  "500m Surface Reflectance Band 2 - additional layers, full" 
             for "sur_refl_b02_f", or 
	  "500m Surface Reflectance Band 2 - additional layers, compact" 
	     for "sur_refl_b02_c".

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

	Name                    Data      Dimensions
	                        Type

	sur_refl_b03_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b03_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b03_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 3.
	
	"sur_refl_b03_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b03_f" and "sur_refl_b03_c" are for storing the
	additional layers of observations.  "sur_refl_b03_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b03_c" is for the compact format and is stored only if
	"L2GStorageFormat500m" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 3 - first layer" for "sur_refl_b03_1", 
	  "500m Surface Reflectance Band 3 - additional layers, full" 
             for "sur_refl_b03_f", or 
	  "500m Surface Reflectance Band 3 - additional layers, compact" 
	     for "sur_refl_b03_c".

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

	Name                    Data      Dimensions
	                        Type

	sur_refl_b04_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b04_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b04_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 4.
	
	"sur_refl_b04_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b04_f" and "sur_refl_b04_c" are for storing the
	additional layers of observations.  "sur_refl_b04_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b04_c" is for the compact format and is stored only if
	"L2GStorageFormat500m" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 4 - first layer" for "sur_refl_b04_1", 
	  "500m Surface Reflectance Band 4 - additional layers, full" 
             for "sur_refl_b04_f", or 
	  "500m Surface Reflectance Band 4 - additional layers, compact" 
	     for "sur_refl_b04_c".

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

	Name                    Data      Dimensions
	                        Type

	sur_refl_b05_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b05_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b05_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 5.
	
	"sur_refl_b05_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b05_f" and "sur_refl_b05_c" are for storing the
	additional layers of observations.  "sur_refl_b05_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b05_c" is for the compact format and is stored only if
	"L2GStorageFormat500m" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 5 - first layer" for "sur_refl_b05_1", 
	  "500m Surface Reflectance Band 5 - additional layers, full" 
             for "sur_refl_b05_f", or 
	  "500m Surface Reflectance Band 5 - additional layers, compact" 
	     for "sur_refl_b05_c".

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

	Name                    Data      Dimensions
	                        Type

	sur_refl_b06_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b06_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b06_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 6.
	
	"sur_refl_b06_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b06_f" and "sur_refl_b06_c" are for storing the
	additional layers of observations.  "sur_refl_b06_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b06_c" is for the compact format and is stored only if
	"L2GStorageFormat500m" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 6 - first layer" for "sur_refl_b06_1", 
	  "500m Surface Reflectance Band 6 - additional layers, full" 
             for "sur_refl_b06_f", or 
	  "500m Surface Reflectance Band 6 - additional layers, compact" 
	     for "sur_refl_b06_c".

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

	Name                    Data      Dimensions
	                        Type

	sur_refl_b07_1		INT16     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	sur_refl_b07_f		INT16    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	sur_refl_b07_c		INT16     "TotalAdditionalObservations500m"
                                          metadata value

        Description:

	MODIS Land Surface Reflectance for Band 7.
	
	"sur_refl_b07_1" is for storing the first layer of observations
	and is always stored.
		
	"sur_refl_b07_f" and "sur_refl_b07_c" are for storing the
	additional layers of observations.  "sur_refl_b07_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"sur_refl_b07_c" is for the compact format and is stored only if
	"L2GStorageFormat500m" is "compact".

        HDF Attributes:

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

	long_name        STRING      60      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       0.0001
	scale_factor_err FLOAT64     1       0.0
	Nadir Data Resolution
	                 STRING      4       "500m"
		
	Note: The attribute "long_name" is 
          "500m Surface Reflectance Band 7 - first layer" for "sur_refl_b07_1", 
	  "500m Surface Reflectance Band 7 - additional layers, full" 
             for "sur_refl_b07_f", or 
	  "500m Surface Reflectance Band 7 - additional layers, compact" 
	     for "sur_refl_b07_c".

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

	Name                    Data      Dimensions
	                        Type

	QC_500m_1		UINT32    "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	QC_500m_f		UINT32   "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	QC_500m_c		UINT32    "TotalAdditionalObservations500m"
				          metadata value

        Description:
  
	MODIS Land Surface Reflectance 500m Quality Assurance.

	Note: Bits are listed from the MSB (bit 31) to the LSB (bit 0).

	Bit(s) Description
	31     adjacency correction performed; yes(1) or no (0)
	30     atmospheric correction performed; yes (1) or no (0)
	26-29  band 7 data quality, four bit range;
	         0000 ( 0) -- highest quality
                 1000 ( 8) -- dead detector; data interpolated in L1B
                 1001 ( 9) -- solar zenith >= 86 degrees
                 1010 (10) -- solar zenith >= 85 and < 86 degrees
                 1011 (11) -- missing input
                 1100 (12) -- internal constant used in place of climatological 
	                      data for at least one atmospheric constant
                 1101 (13) -- correction out of bounds, pixel constrained to
	                      extreme allowable value
                 1110 (14) -- L1B data faulty
                 1111 (15) -- not processed due to deep ocean or clouds
	22-25  band 6 data quality, four bit range;
	       (SAME AS ABOVE)
	18-21  band 5 data quality, four bit range;
	       (SAME AS ABOVE)
	14-17  band 4 data quality, four bit range;
	       (SAME AS ABOVE)
	10-13  band 3 data quality, four bit range;
	       (SAME AS ABOVE)
	6-9    band 2 data quality, four bit range;
	       (SAME AS ABOVE)
	2-5    band 1 data quality four bit range;
	       (SAME AS ABOVE)
	0-1    MODLAND QA bits; 
	       corrected product produced: 
	         00 -- ideal quality all bands,
	         01 -- less than ideal quality some or all bands;
	       corrected product not produced due to:
	         10 -- cloud effects all bands,
	         11 -- other reasons some or all bands may be fill value;
	       Note that a value of (11) overrides a value of (01)

	"QC_500m_1" is for storing the first layer of observations
	and is always stored.
		
	"QC_500m_f" and "QC_500m_c" are for storing the
	additional layers of observations.  "QC_500m_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"QC_500m_c" is for the compact format and is stored only if 
	"L2GStorageFormat500m" is "compact".

         HDF Attributes:

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

	long_name        STRING      59      Variable
	units            STRING      9       "bit field"
	valid_range      UINT32      2       0, 4294966019
	_FillValue       UINT32      1       787410671
	Nadir Data Resolution
                         STRING      4       "500m"
	QA index         STRING    1800      Variable
		
	Note: The attribute "long_name" is 
	  "500m Reflectance Band Quality - first layer" for "QC_500m_1", 
	  "500m Reflectance Band Quality - additional layers, full" 
	     for "QC_500m_f", or
	  "500m Reflectance Band Quality - additional layers, compact" 
	     for "QC_500m_c".

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

	Name                    Data      Dimensions
	                        Type

	obscov_1		INT8      "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	obscov_f		INT8     "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	obscov_c		INT8      "TotalAdditionalObservations500m"
				          metadata value
        Description:
        
	Observation coverage is an estimate of the amount of intersection 
	between observation footprint and grid cell.
		
	"obscov_1" is for storing the first layer of observations
	and is always stored.
		
	"obscov_f" and "obscov_c" are for storing the
	additional layers of observations.  "obscov_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"obscov_c" is for the compact format and is stored only if 
	"L2GStorageFormat500m" is "compact".
 
        HDF Attributes:

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

 	long_name        STRING      49      Variable
	units            STRING      7       "percent"
	valid_range      INT8        2       0, 100
	_FillValue       INT8        1       -1
	add_offset       FLOAT64     1       0.0
	add_offset_err   FLOAT64     1       0.0
	calibrated_nt    INT32       1       5 
	scale_factor     FLOAT64     1       0.01 
	scale_factor_err  FLOAT64    1       0.0
		
	Note: The attribute "long_name" is 
	  "Observation coverage - first layer" for "obscov_1", 
	  "Observation coverage - additional layers, full" for "obscov_f", or
	  "Observation coverage - additional layers, compact" for "obscov_c".

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

	Name                    Data      Dimensions
	                        Type

	iobs_res_1		UINT8     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	iobs_res_f		UINT8    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	iobs_res_c		UINT8     "TotalAdditionalObservations500m"
				          metadata value
        Description:
        
	Layer number of corresponding observation in the 1km resolution grid. 
        Zero relative. 
		
	"iobs_res_1" is for storing the first layer of observations
	and is always stored.
		
	"iobs_res_f" and "iobs_res_c" are for storing the
	additional layers of observations.  "iobs_res_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"iobs_res_c" is for the compact format and is stored only if 
	"L2GStorageFormat500m" is "compact".
 
        HDF Attributes:

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

 	long_name        STRING      63      Variable
	units            STRING      7       "none"
	valid_range      UINT8       2       0, 254
	_FillValue       UINT8       1       255
		
	Note: The attribute "long_name" is 
	  "observation number in coarser grid - first layer" for "iobs_res_1", 
	  "observation number in coarser grid - additional layers, full" 
	     for "iobs_res_f", or
	  "observation number in coarser grid - additional layers, compact" 
	     for "iobs_res_c".

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

	Name                    Data      Dimensions
	                        Type

	q_scan_1		UINT8     "YDim:MODIS_Grid_500m_2D",
	                                  "XDim:MODIS_Grid_500m_2D"

	q_scan_f		UINT8    "Additional Layers:MODIS_Grid_500m_3D",
	                                  "YDim:MODIS_Grid_500m_3D",
	                                  "XDim:MODIS_Grid_500m_3D"

	q_scan_c		UINT8     "TotalAdditionalObservations500m"
				          metadata value
        Description:
        
	The 250m scan value information states whether the corresponding 
        250m observations from the same orbit are available for the 500m 
        observation, and also states whether the 250m observations are from 
        the same or a different scan.
        
        The 250m samples are for each of four quadrents:
           0 -- first 250m line (row), first 250m sample (column);
           1 -- first 250m line, second 250m sample;
           2 -- second 250m line, first 250m sample;
           3 -- second 250m line, second 250m sample.
        The first line/sample is in the upper left (north-west) corner of the 
        image.

	Note: Bits are numbered from left (MSB) to right (LSB).

	Bit(s) Description
 	0      missing observation in quadrent 4 [+0.5 row, +0.5 column];
               yes (1) or no (0)
	1      missing observation in quadrent 3 [+0.5 row, -0.5 column];
               yes (1) or no (0)
  	2      missing observation in quadrent 2 [-0.5 row, +0.5 column];
               yes (1) or no (0)
	3      missing observation in quadrent 1 [-0.5 row, -0.5 column];
               yes (1) or no (0)
	4      scan of observation in quadrent 4 [+0.5 row, +0.5 column];
	       same (1) or different (0)
	5      scan of observation in quadrent 3 [+0.5 row, -0.5 column];
	       same (1) or different (0)
	6      scan of observation in quadrent 2 [-0.5 row, +0.5 column];
	       same (1) or different (0)
	7      scan of observation in quadrent 1 [-0.5 row, -0.5 column];
	       same (1) or different (0)

	"q_scan_1" is for storing the first layer of observations
	and is always stored.
		
	"q_scan_f" and "q_scan_c" are for storing the
	additional layers of observations.  "q_scan_f" is for the
	full format and is stored only if "L2GStorageFormat500m" is "full".
	"q_scan_c" is for the compact format and is stored only if 
	"L2GStorageFormat500m" is "compact".
 
        HDF Attributes:

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

 	long_name        STRING      56      Variable
	units            STRING      7       "none"
	valid_range      UINT8       2       0, 254
	_FillValue       UINT8       1       255
		
	Note: The attribute "long_name" is 
	  "250m scan value information - first layer" for "q_scan_1", 
	  "250m scan value information - additional layers, full" 
	     for "q_scan_f", or
	  "250m scan value information - additional layers, compact" 
	     for "q_scan_c".

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

	Name                    Data      Dimensions
	                        Type

	nadd_obs_row_500m	INT32	  "DataRows500m" 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 "L2GStorageFormat500m" 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

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