HDF-EOS V2 L2G Thermal Anomaly/Fire Products File Specification
Revision 2.4 (Apr 10, 98 )
Revision 2.5 (11/26/1999)
Revision 3.0 (11/26/2000)

Product ID(s): MOD14 L2G 1DY 1KM DAY & NIGHT (MOD14GD & MOD14GN)

Description: 

The Level 2G (L2G) Thermal Anomaly/Fire Products file contains the
contains the restructured Level 2 (L2) fire and thermal anomaly parameter
which intersects a geographic area, a tile in the Level 3 (L3) grid.  The actual
data stored is based on a set of pointers to observations which intersect
each cell (pixel) in the corresponding L2G 1KM Observation Pointer file.  A
single 1KM Land Surface Reflectance Data state observation consist of 
fire mask, algorithm_QA, power, temperatures, and their mean and
standard deviation.  Nominally, a entire data-day's (24 hours GMT) worth 
of data, which intersects the tile, is stored in the file.

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 thermal anomaly/fire
 data is stored at a nominal grid resolution of 1km.

For each pixel in the output tile, the 1KM observation pointer is used to
find the location of the spatial element in each of the L2 thermal anomaly/fire
files.  The thermal anomaly/fire information for each observation is 
extracted from the corresponding locations in the input files.  A one-to-one 
correspondence is kept between the information in the observation pointer 
file and the thermal anomaly/fire  file.

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

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

Point of Contact:   
               Louis Giglio
               Science Systems and Applications Inc.
               NASA Goddard Space Flight Center, Code 923
               Greenbelt, MD 20771
               (301) 286-2091
               giglio@hades.gsfc.nasa.gov

               Paul Fisher
               Science Systems and Applications Inc.
               NASA Goddard Space Flight Center, Code 923
               Greenbelt, MD 20771
               (301) 286-2980
               fisher@ltpmail.gsfc.nasa.gov

               Kai Yang
               Science Systems and Applications Inc.
               NASA Goddard Space Flight Center, Code 922
               Greenbelt, MD 20771
               (301) 614-5452
               kyang@ltpmail.gsfc.nasa.gov

               Robert Wolfe              
               Hughes STX
               NASA's Goddard Space Flight Center, Code 922
               Greenbelt, MD 20771
               (301) 614-5508
               robert.wolfe@gsfc.nasa.gov

Principal Investigator:  Chris Justice
                         University of Virgina
                         NASA Goddard Space Flight Center, Code 923
                         Greenbelt, MD 20771
                         (301) 286-7372
                         justice@kratmos.gsfc.nasa.gov

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

Generic Constructs

ECS Metadata Strings:

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

	This string will contain the following PVL fields:

                                          	  # of
	Field Name              	Data     Value  Value
                                	Type       s

 GROUP = INVENTORYMETADATA

   GROUP = CollectionDescriptionClass
	SHORTNAME                      STRING     1    "MOD14GN"
	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        "2.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)  Variable

   	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
		QAPERCENTMISSINGDATA    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  = "FIREPIXELS"
        *******************************************************
        * 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   "Preliminary"
        ALGORITHMPACKAGENAME           STRING      1   "MOD_PRMGR"
        ALGORITHMPACKAGEVERSION        STRING      1   "2.1"
        GEOANYABNORMAL                 STRING      1   Variable
        GEOESTMAXRMSERROR              DOUBLE      1   Variable
        LONGNAME                       STRING      1   "MODIS L2G Thermal 
                                                        Anomalies - 1 km,
							Night Mode" 
        SPSOPARAMETERS                 STRING      1   "none"
        PROCESSINGCENTER               STRING      1   "GSFC"
        NUMBEROFOVERLAPGRANULES        INTEGER     1   Variable
        NUMBEROFINPUTGRANULES          INTEGER     1   Variable
        GRANULENUMBERARRAY             INTEGER   "NumberofGranules"
                                                       Variable
        ORBITNUMBERARRAY               INTEGER   "NumberofGranules"
                                                       Variable
        GRANULEBEGINNINGDATETIME       STRING  "NumberofGranules"
                                                       Variable
        GRANULEENDINGDATETIME          STRING  "NumberofGranules"
                                                       Variable
        GRANULEDAYNIGHTFLAG            STRING  "NumberofGranules"
                                                       Variable
        MINIMUMLINEINDEX               INTEGER   "NumberofGranules"
                                                       Variable
        MAXIMUMLINEINDEX               INTEGER   "NumberofGranules"
                                                       Variable
        MINIMUMSAMPLEINDEX             INTEGER   "NumberofGranules"
                                                       Variable
        MAXIMUMSAMPLEINDEX             INTEGER   "NumberofGranules"
                                                       Variable
        GRANULEPOINTERARRAY            INTEGER   "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
        ADDITIONALLAYERS               INTEGER     1   Variable
        TOTALOBSERVATIONS              INTEGER     1   Variable
        TOTALADDITIONALOBSERVATIONS    INTEGER     1   Variable
        COVERAGECALCULATIONMETHOD      STRING      1   Variable
        FIRSTLAYERSELECTIONCRITERIA    STRING      1   Variable
        L2GSTORAGEFORMAT               STRING      1   Variable
        REFERENCEORBITNUMBER           INTEGER     1   Variable
        CLOUDPIXELS                    INTEGER     1   Variable
        UNKNOWNPIXELS                  INTEGER     1   Variable
        WATERPIXELS                    INTEGER     1   Variable
        GLINTPIXELS                    INTEGER     1   Variable
        NOFIREPIXELS                   INTEGER     1   Variable
        CLOUDADJACENTFIREPIXELS        INTEGER     1   Variable
        WATERADJACENTFIREPIXELS        INTEGER     1   Variable
        PERCENTLAND                    INTEGER     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_L2g_2d

    Dimensions:

	Dimension Name                       Value

	YDim:MOD_Grid_L2g_2d              "Data Rows"

	XDim:MOD_Grid_L2g_2d              "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


Grid Structure:  MOD_Grid_L2g_3d
    Dimensions:

	Dimension Name                       Value

	Additional Layers:MOD_Grid_L2g_3d  "Additional Layers"

	YDim:MOD_Grid_L2g_3d              "Data Rows"

	XDim:MOD_Grid_L2g_3d              "Data Columns"

   Corner Locations: (same as MOD_Grid_L2g_2d)

   Geographic Grid Projection: (same as MOD_Grid_L2g_2d)

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

  DataFields:

The following datafields are always in this file:

        num_observations
        fire_mask_1
        algorithm_QA_1
        FP_line_1
        FP_sample_1
        FP_power_1
        FP_T21_1
        FP_confidence_1

If the metadatum "L2GStorageFormat" is "full", the following
datafields are also present:

        fire_mask_f
        algorithm_QA_f
        FP_line_f
        FP_sample_f
        FP_power_f
        FP_T21_f
        FP_confidence_f

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

        fire_mask_c
        algorithm_QA_c
        FP_line_c
        FP_sample_c
        FP_power_c
        FP_T21_c
        FP_confidence_c
        nadd_obs_row


Each datafield has at least the following 4 attributes:

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

Some datafields also contain the following attributes:

	add_offset (float64)
	add_offset_err (float64)
	calibrated_nt (int32)
	scale_factor (float64)
	scale_factor_err (float64)
	Nadir Data Resolution (STRING)

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

	Name                    Data      Dimensions
	                        Type

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

Description:

		The number of 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


	fire_mask_1		UINT8     "YDim:MOD_Grid_L2g_2d",
	                                  "XDim:MOD_Grid_L2g_2d"

	fire_mask_f		UINT8  "Additional Layers:MOD_Grid_L2g_3d",
	                                  "YDim:MOD_Grid_L2g_3d",
	                                  "XDim:MOD_Grid_L2g_3d"

	fire_mask_c		UINT8     metadatum "TotalAdditionalObservations"

        Description:
  
		fire mask
		
		"fire_mask_1" is for storing the first layer of observations
		and is always stored.
		
		"fire_mask_f" and "fire_mask_c" are for storing the
		additional layers of observations.  "fire_mask_f" is for the
		full format and is stored only if the metadatum
		"L2GStorageFormat" is "full".  "fire_mask_c" is for the
		compact format and is stored only if the metadatum
		"L2GStorageFormat" is "compact".
                

                Bit       Description
                ---       -----------
                0-3       pixel classification
                          0 = not processed (missing input data)
                          1 = not processed (extreme scan angle)
                          2 = not processed (other reason)
                          3 = water
                          4 = cloud
                          5 = no fire
                          6 = unknown
                          7 = fire (low confidence)
                          8 = fire (nominal confidence)
                          9 = fire (high confidence)

                4-7       spare (set to 0)

                HDF Attributes:
                                              Quantity
                Attribute          Type      or Length   Value
                ---------          ----      ---------   -----
                long_name          STRING        37      Variable
                units              STRING        9       bit field
                valid_range        UINT8         2       0, 9
                _FillValue         UINT8         1       0
                Nadir Data         STRING        3       1km
                Resolution


		Note: The attribute "long_name" is "fire mask - 
		- first layer" for "fire_mask_1", "fire mask - 
		- additional layers, full" for "fire_mask_f", or "fire mask
                - additional layers, compact" for "fire_mask_c".

===========================================================================
	Name                    Data      Dimensions
	                        Type

        algorithm_QA_1         UINT32     "YDim:MOD_Grid_L2g_2d",
	                                  "XDim:MOD_Grid_L2g_2d"

	algorithm_QA_f         UINT32  "Additional Layers:MOD_Grid_L2g_3d",
	                                  "YDim:MOD_Grid_L2g_3d",
	                                  "XDim:MOD_Grid_L2g_3d"

	algorithm_QA_c         UNIT32    metadatum "TotalAdditionalObservations"


        Description:
 
                algorithm QA

                "algorithm_QA_1" is for storing the first layer of observations
                and is always stored.

                "algorithm_QA_f" and "algorithm_QA_c" are for storing the
                additional layers of observations.  "algorithm_QA_f" is for the
                full format and is stored only if the metadatum
                "L2GStorageFormat" is "full".  "algorithm_QA_c" is for the
                compact format and is stored only if the metadatum
                "L2GStorageFormat" is "compact".

Bit       Description
---       -----------
0-1       MODLAND QA bits
               00 = fire/no-fire determined at optimum confidence
               01 = fire/no-fire determined at less than optimum confidence
               10 = no determination made due to cloud cover
               11 = no determination made due to other reason(s)

2         3.9 micron high-gain flag
               0 = band 21 used
               1 = band 22 used

3         atmospheric correction (0 = not performed, 1 = performed)

4         day/night algorithm (0 = night, 1 = day)

5         potential fire pixel
               0 = no (if no, remaining QA fields are empty)
               1 = yes

6         fire detection overturned due to sun glint
               0 = no
               1 = yes

7-10      background window size parameter, R
               R = 0: unable to characterize background
               R > 0: background characterized with (2R+1) by (2R+1) window

11        20 K TD test [logic b] (0 = fail, 1 = pass)
12        320 K T21 test [logic B] (0 = fail, 1 = pass)
13        TDB test [logic a] (0 = fail, 1 = pass)
14        T21B test [logic A] (0 = fail, 1 = pass)
15        360 K T21 test [logic X] (0 = fail, 1 = pass)

16-20     spare (set to 0)

21-22     0.86 micron covariance index (surface heterogeneity):
               00 = undetermined
               01 = low
               10 = medium
               11 = high

23        MOD35 status
               0 = unavailable/no determination
               1 = available

24        250 m cloud flag (valid only if bit 23 is set)
               0 = no
               1 = yes

25        adjacent cloud pixel (valid only if fire mask = 7, 8, or 9)
               0 = no
               1 = yes

26        adjacent water pixel (valid only if fire mask = 7, 8, or 9)
               0 = no
               1 = yes

27-31     spare (set to 0)


                HDF Attributes:
                                             Quantity
                Attribute           Type     or length  Value
                ---------           ----     ---------  -----
                long_name           STRING      40      Variable
                units               STRING       9      bit field
                valid_range         UINT32       2      0, 31522815
                _FillValue          UINT32       1      0
                Nadir Data          STRING       3      1km
                Resolution

		Note: The attribute "long_name" is "algorithm QA - 
		- first layer" for "algorithm QA_1", "algorithm QA - 
		- additional layers, full" for "algorithm_QA_f", or 
                "algorithm QA - additional layers, compact" for 
                "algorithm_QA_c".
===========================================================================

        Name                    Data      Dimensions
                                Type

        nadd_obs_row            INT32     metadatum "DataRows"

        Description:

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

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

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

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

=========================================================================
       Name                    Data      Dimensions
                                Type

        FP_line_1         UINT32     "YDim:MOD_Grid_L2g_2d",
                                     "XDim:MOD_Grid_L2g_2d"

        FP_line_f         UINT32     "Additional Layers:MOD_Grid_L2g_3d",
                                     "YDim:MOD_Grid_L2g_3d",
                                     "XDim:MOD_Grid_L2g_3d"

        FP_line_c         UNIT32    metadatum "TotalAdditionalObservations"


        Description:

                FP_line
                "FP_line_1" is for storing the first layer of observations
                and is always stored.

                "FP_line_f" and "FP_line_f" are for storing the
                additional layers of observations.  "FP_line_f" is for the
                full format and is stored only if the metadatum
                "L2GStorageFormat" is "full".  "FP_line_c" is for the
                compact format and is stored only if the metadatum
                "L2GStorageFormat" is "compact".
=========================================================================
        Name                    Data      Dimensions
                                Type

        FP_sample_1         UINT32   "YDim:MOD_Grid_L2g_2d",
                                     "XDim:MOD_Grid_L2g_2d"

        FP_sample_f         UINT32   "Additional Layers:MOD_Grid_L2g_3d",
                                     "YDim:MOD_Grid_L2g_3d",
                                     "XDim:MOD_Grid_L2g_3d"

        FP_sample_c         UNIT32    metadatum "TotalAdditionalObservations"


        Description:

                FP_sample

                "FP_sample_1" is for storing the first layer of observations
                and is always stored.

                "FP_sample_f" and "FP_sample_c" are for storing the
                additional layers of observations.  "FP_sample_f" is for the
                full format and is stored only if the metadatum
                "L2GStorageFormat" is "full".  "FP_sample_c" is for the
                compact format and is stored only if the metadatum
                "L2GStorageFormat" is "compact".
=========================================================================
        Name                    Data      Dimensions
                                Type

        FP_power_1         UINT32    "YDim:MOD_Grid_L2g_2d",
                                     "XDim:MOD_Grid_L2g_2d"

        FP_power_f         UINT32    "Additional Layers:MOD_Grid_L2g_3d",
                                     "YDim:MOD_Grid_L2g_3d",
                                     "XDim:MOD_Grid_L2g_3d"

        FP_power_c         UNIT32    metadatum "TotalAdditionalObservations"


        Description:

                FP_power

                "FP_power_1" is for storing the first layer of observations
                and is always stored.

                "FP_power_f" and "FP_power_c" are for storing the
                additional layers of observations.  "FP_power_f" is for the
                full format and is stored only if the metadatum
                "L2GStorageFormat" is "full".  "FP_power_c" is for the
                compact format and is stored only if the metadatum
                "L2GStorageFormat" is "compact".
=========================================================================
        Name                    Data      Dimensions
                                Type

        FP_T21_1         UINT32     "YDim:MOD_Grid_L2g_2d",
                                    "XDim:MOD_Grid_L2g_2d"

        FP_T21_f         UINT32     "Additional Layers:MOD_Grid_L2g_3d",
                                    "YDim:MOD_Grid_L2g_3d",
                                    "XDim:MOD_Grid_L2g_3d"

        FP_T21_c         UNIT32    metadatum "TotalAdditionalObservations"


        Description:

                FP_T21

                "FP_T21_1" is for storing the first layer of observations
                and is always stored.

                "FP_T21_f" and "FP_T21_c" are for storing the
                additional layers of observations.  "FP_T21_f" is for the
                full format and is stored only if the metadatum
                "L2GStorageFormat" is "full".  "FP_T21_c" is for the
                compact format and is stored only if the metadatum
                "L2GStorageFormat" is "compact".
=========================================================================
        Name                    Data      Dimensions
                                Type

        FP_confidence_1         UINT32     "YDim:MOD_Grid_L2g_2d",
                                           "XDim:MOD_Grid_L2g_2d"

        FP_confidence_f         UINT32     "Additional Layers:MOD_Grid_L2g_3d",
                                           "YDim:MOD_Grid_L2g_3d",
                                           "XDim:MOD_Grid_L2g_3d"

        FP_confidence_c         UNIT32    metadatum "TotalAdditionalObservations"

        Description:

                FP_confidence

                "FP_confidence_1" is for storing the first layer of observations
                and is always stored.

                "FP_confidence_f" and "FP_confidence_c" are for storing the
                additional layers of observations.  "FP_confidence_f" is for the
                full format and is stored only if the metadatum
                "L2GStorageFormat" is "full".  "FP_confidence_c" is for the
                compact format and is stored only if the metadatum
                "L2GStorageFormat" is "compact".