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".