HDF-EOS V2 MODIS L3 Intermediate Daily 500m Filtered Land Surface Reflectance File Specification
Original Version 6.0.2 (January 2014) 

Product ID(s): MODHDFSR (Daily Filtered 500m Surf Refl)

Description:
	MODHDFSR is an intermediate L3 500m daily Land Surface Reflectance 
Product created by selecting one good observation for each L3 grid from
one or more observations in the input L2G tile. A filtering option is
speicified during the production for selecting the required L2G observation
for output. The selected filtering option is also output as one of the 
metadata. The valid filtering options are
        0: cloud free
	1: cloud free, and land
	2: cloud free, and land or coastline or ephemeral water  
	3: cloud free, and land or ephemeral water, and low or medium aerosol 
	
	The output file contains seven surface reflectance bands and viewing 
geometry (sensor zenith and azimuth, solar zenith and azimuth) corresponding 
to the output observation. No QA SDS is created, however QA percentage metadata 
	QAPERCENTINTERPOLATEDDATA, QAPERCENTMISSINGDATA,
	QAPERCENTOUTOFBOUNDSDATA, QAPERCENTCLOUDCOVER
        QAPERCENTGOODQUALITY, QAPERCENTOTHERQUALITY
	QAPERCENTNOTPRODUCEDCLOUD, QAPERCENTNOTPRODUCEDOTHER
are produced with following interpretation:

        INTERPOLATEDDATA : The input L2G contained valid observations. But output
                           may contain a valid value or fill value as a result
                           of overall processing.
        MISSINGDATA      : Output could not be created because input didn't contain
                           any observation that could be processed.
        OUTOFBOUNDSDATA  : Always 0 (outofboundsdata not considered)
        CLOUDCOVER       : Always 0. (this process filters out all cloudy data)
	(Sum of above four metadata should add upto 100)

        GOODQUALITY      : There was at least one l2g observation to process. The
                           observation selected for output satisfies all filtering
                           constraints. All output bands are of good quality.
        OTHERQUALITY     : There was at least one l2g observation to process. The
                           observation selected for output satisfies all filtering
                           constrains. But all bands may not be of good quality.
                           However first band in the argument list is of good quality.
        NOTPRODUCEDCLOUD : There was at least one input observation considered for
                           processing but all such observations were cloudy and hence
                           output is a fill value.
        NOTPRODUCEDOTHER : Output is a fill value because all input observations
                           are either missing, or if there was at least one observation
                           available for processing, not all were cloudy but they were
                           bad as per the other filtering constraints.
	(Sum of above four metadata should add upto 100)

Point of Contact:   
    MODIS Science Team Members:
      Chris Justice
      MODIS Land Science Team           University of Maryland
      justice@kratmos.gsfc.nasa.gov     NASA/GSFC Code 923
      phone: 301-286-7372               Greenbelt, MD 20771

      David Roy
      LDOPE                             University of Maryland
      droy@kratmos.gsfc.nasa.gov        NASA/GSFC Code 922
      phone: 301 614 5571               Greenbelt, MD 20771

    Developers:
      Sadashiva Devadiga
      LDOPE                             Science Systems and Applications Inc.
      devadiga@ltpmail.gsfc.nasa.gov    NASA/GSFC Code 922
      phone: 301-614-5449               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    "MODHDFSR"
        VERSIONID                      STRING     1    Variable
   END_GROUP = CollectionDescriptionClass

   GROUP = ECSDataGranule
        REPROCESSINGPLANNED            STRING     1    "no further update
                                                        anticipated"
        REPROCESSINGACTUAL             STRING     1    "processed once"
        LOCALGRANULEID                 STRING     1    Variable
        DAYNIGHTFLAG                   STRING     1    Variable
        PRODUCTIONDATETIME             D/T        1    Variable
        LOCALVERSIONID                 STRING     1    Variable
        SIZEMBECSDATAGRANULE           FLOAT      1    Variable
   END_GROUP = ECSDataGranule

   GROUP = PGEVersionClass
        PGEVERSION                     STRING     1        "6.0.1"
   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 = OrbitCalculatedSpatialDomain
        ORBITNUMBER                     INTEGER  "NumberofGranules"
                                                        Variable
        EQUATORCROSSINGLONGITUDE        DOUBLE   "NumberofGranules"
                                                        Variable
        EQUATORCROSSINGDATE             DATE     "NumberofGranules"
                                                        Variable
        EQUATORCROSSINGTIME             TIME     "NumberofGranules"
                                                        Variable
   END_GROUP = OrbitCalculatedSpatialDomain

   GROUP = MeasuredParameter
        PARAMETERNAME                   STRING  FR (A)  "sur_refl_b01, sur_refl_b02, sur_refl_b03,
							 sur_refl_b04, SolarZeinth, SensorAzimuth, 
							 SensorZenith SensorZenith" 

        GROUP = QAFlags
                AUTOMATICQUALITYFLAG    STRING     1    Variable
                AUTOMATICQUALITYFLAGEXPLANATION
                                        STRING     1    Variable
                OPERATIONALQUALITYFLAG  STRING     1    Variable
                OPERATIONALQUALITYFLAGEXPLANATION
                                        STRING     1    Variable
                SCIENCEQUALITYFLAG      STRING     1    Variable
                SCIENCEQUALITYFLAGEXPLANATION
                                        STRING     1    Variable
        END_GROUP = QAFlags

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

   ******************************************************************
   * Note that MeasuredParameter group has
   * Class = "M" (see sample MCF file).
   * Basically one needs to put DataField (SDS) names to PARAMETERNAME
   * and put corresponding QA metadata to QAFlags and QAStats.
   * If one has only QA metadata for whole product, instead for each
   * and individual DatFiels (SDS), it's suggested to put product
   * name to PARAMETERNAME.
   *******************************************************************

   GROUP = AssociatedPlatformInstrumentSensor
        ASSOCIATEDPLATFORMSHORTNAME               STRING     1   "AM-1"
        ASSOCIATEDINSTRUMENTSHORTNAME           STRING     1   "MODIS"
        ASSOCIATEDSENSORSHORTNAME               STRING     1   "CCD"
   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  = "INPUTFILESRESOLUTION"
        *******************************************************
        * Other SCF defined PSA attributes:
        *******************************************************

   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
        ALGORITHMPACKAGEACCEPTANCEDATE STRING      1   "TBD"
        ALGORITHMPACKAGEMATURITYCODE   STRING      1   "LAUNCH"
        ALGORITHMPACKAGENAME           STRING      1   "MODPRDFSR"
        ALGORITHMPACKAGEVERSION        STRING      1   "5"
        GEOANYABNORMAL                 STRING      1   Variable
        GEOESTMAXRMSERROR              DOUBLE      1   Variable
        LONGNAME                       STRING      1   "MODIS/Terra 500m Filtered Surface Reflectance 
							Daily Global 500m ISIN Grid" 
        SPSOPARAMETERS                 STRING      1   "none"
        PROCESSINGCENTER               STRING      1   "MODAPS"
	NUMBEROFGRANULES	       INTEGER     1   Variable
        GRANULEBEGINNINGDATETIME       STRING  "NumberofGranules"
                                                       Variable
        GRANULEENDINGDATETIME          STRING  "NumberofGranules"
                                                       Variable
        GRANULEDAYNIGHTFLAG            STRING  "NumberofGranules"
                                                       Variable
	NUMBEROFORBITS	       	       INTEGER     1   Variable
	SYSTEMFILENAME		       STRING  "NumberofGranules"
						       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
        COVERAGECALCULATIONMETHOD      STRING      1   Variable
	SEAPROCESSED		       STRING      1   Variable
	MASKINGLOGICUSED	       STRING      1   Variable
	DESCRREVISION		       STRING      1   Variable
        ******************************************************************
        *    1. The field "L2GStorageFormat" is either "full",
        *       "compact" or "one layer only".
        *    2. The field "CoverageCalculationMethod" is either
        *       "area" or "simple PSF".
        *    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: MOD_GRID_HDFSR 

    Dimensions:

        Dimension Name                       Value

        YDim:MOD_GRID_HDFSR		   "Data Rows"
        XDim:MOD_GRID_HDFSR		   "Data Columns"

    Corner Locations:

        Corner                Values

        UpperLeftPointMtrs    (Variable, Variable)
        LowerRightPointMtrs   (Variable, Variable)

    Geographic Grid Projection Parameters:
        Note that all grid parameters are currently under development
        and may need to be revised prior to V2.0 code delivery.

    Supported Grids:    Integerized Sinusoidal (GCTP_ISINUS)
                        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_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

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

DataFields:
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b01        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
	Surface reflecatnce Band 1


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b01 
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000 
                _FillValue       INT16       1       -28762
		scale_factor	 FLOAT32     1       0.0001
		add_offset	 FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b02        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Surface reflecatnce Band 2


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b02 
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000 
                _FillValue       INT16       1       -28762
                scale_factor     FLOAT32     1       0.0001
                add_offset       FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b03        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Surface reflecatnce Band 3


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b03 
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000 
                _FillValue       INT16       1       -28762
                scale_factor     FLOAT32     1       0.0001
                add_offset       FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b04        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Surface reflecatnce Band 4


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b04 
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000 
                _FillValue       INT16       1       -28762
                scale_factor     FLOAT32     1       0.0001
                add_offset       FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b05        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Surface reflecatnce Band 5


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b05
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000
                _FillValue       INT16       1       -28762
                scale_factor     FLOAT32     1       0.0001
                add_offset       FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b06        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Surface reflecatnce Band 6


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b06
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000
                _FillValue       INT16       1       -28762
                scale_factor     FLOAT32     1       0.0001
                add_offset       FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_b07        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Surface reflecatnce Band 7


        HDF Attributes:

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

                long_name        STRING      12      sur_refl_b07
                units            STRING      4       none
                valid_range      INT16       2       -100, 16000
                _FillValue       INT16       1       -28762
                scale_factor     FLOAT32     1       0.0001
                add_offset       FLOAT32     1       0.0000
===========================================================================

        Name                Data Type      Dimensions

        SensorZenith        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Viewing Angle: Sensor Zenith 


        HDF Attributes:

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

                long_name        STRING      12      SensorZenith 
                units            STRING      4       degree 
                valid_range      INT16       2       0, 18000 
                _FillValue       INT16       1       -32767
                scale_factor     FLOAT32     1       0.01
===========================================================================

        Name                Data Type      Dimensions

        SensorAzimuth        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
       Viewing Angle: Sensor Azimuth 


        HDF Attributes:

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

                long_name        STRING      13      SensorAzimuth 
                units            STRING      4       degree
                valid_range      INT16       2       0, 18000 
                _FillValue       INT16       1       -32767
                scale_factor     FLOAT32     1       0.01
===========================================================================

        Name                Data Type      Dimensions

        SolarZenith        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Viewing Angle: Solar Zenith 


        HDF Attributes:

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

                long_name        STRING      11      SolarZenith 
                units            STRING      4       degree
                valid_range      INT16       2       0, 18000 
                _FillValue       INT16       1       -32762
                scale_factor     FLOAT32     1       0.01
===========================================================================

        Name                Data Type      Dimensions

        SolarAzimuth        INT16         "YDim:MOD_GRID_HDFSR",
                                          "XDim:MOD_GRID_HDFSR"

Description:
        Viewing Angle: Solar Azimuth 


        HDF Attributes:

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

                long_name        STRING      12      SolarAzimuth
                units            STRING      4       degree
                valid_range      INT16       2       0, 18000
                _FillValue       INT16       1       -32762
                scale_factor     FLOAT32     1       0.01
===========================================================================

        Name                Data Type      Dimensions

        sur_refl_state_qa      UINT8      "YDim:MOD_GRID_QDFSR",
                                          "XDim:MOD_GRID_QDFSR"

Description:
        500m State QA: sur_refl_state_qa
	Bit Description (right to left)
		0:	MOD09 internal cloud mask
		1:	MOD09 internal snow mask 
		2:	MOD09 internal cloud shadow
		3-5:	land/water mask
       			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
		6-7:	aerosol quantity; climatology (00), low (01) average (10), high (11)


        HDF Attributes:

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

                long_name        STRING      29      Surface Reflectance State QA
                units            STRING      4       none
                valid_range      UINT8       2       0, 254
                _FillValue       UINT8       1       255
===========================================================================