MODIS GEOLOCATION CONTROL POINT RESIDUALS
		      VERSION 5 PRODUCT FORMAT
			    Version 5.0.0
			  November 29, 2004




This document specifies the MODIS geolocation control point residuals
product (MOD03CP) format.  The product is stored as a Hierarchical 
Data Format (HDF) file for each granule of MODIS data.  It contains 
records of MODIS geolocated observed terrestrial features that have
been identified with catalogued reference features.  Identification
is performed using correlation with land feature chips and centroid
and dimensional matching of islands.  

The specification is organized into two sections:  global metadata 
and control point records.   The Metadata are intended to satisfy 
both the ECS requirements for organizing, ingesting, cataloging, and 
searching data products; and the user's needs for product 
documentation.  In this document the global metadata are subdivided 
into ECS granule core and product-specific metadata. 

The baseline HDF implementation of this product is as follows:  ECS
granule metadata are stored in the ECS-defined format of large PVL 
text blocks in HDF global attributes.  All other global metadata are 
stored as individual HDF global attributes, except for the
"Average Temperature" vdata, which has a single record.  The control
point records are stored in a single HDF Vdata.


1.  	Global Metadata

1.1  ECS Granule Metadata

These metadata elements will be stored using the ECS metadata tools as
PVL text blocks in accordance with ECS standards.  The inventory fields
will be stored in two ECS PVL strings in the HDF global attributes
named CoreMetadata.0 and ArchiveMetadata.0.  All of these fields are
defined in detail in the V2 MODIS Metadata Dictionary.  The data type
field listed below is relevant for I/O of these fields only, since each
set of metadata is stored as a single PVL text block.  The supported
data types for ECS metadata are STRING, DOUBLE, and INTEGER.

Metadata Name			Data Type	Example
=============			=========	=======

HDF File Attibute: CoreMetadata.0
---------------------------------
SHORTNAME                       STRING          "MOD03CP"

VERSIONID                       STRING          4

RANGEBEGINNINGDATE		STRING		"2001-09-28"
RANGEBEGINNINGTIME		STRING		"09:35:00.000000"
RANGEENDINGDATE			STRING		"2001-09-28"
RANGEENDINGTIME			STRING		"09:40:00.000000"

LOCALGRANULEID			STRING	
				"MOD03CP.A20010928.0935.004.2001275092316.hdf"
PRODUCTIONDATETIME              STRING          "YYYY-MM-DDThh:mm:ss.sssZ"

HDF File Attibute: ArchiveMetadata.0
------------------------------------
EASTBOUNDINGCOORDINATE		DOUBLE		-172.362889
WESTBOUNDINGCOORDINATE		DOUBLE		 179.32333l
NORTHBOUNDINGCOORDINATE		DOUBLE		  88.329234
SOUTHBOUNDINGCOORDINATE		DOUBLE		  67.239934
DESCRREVISION			STRING		"5.0"
PRODUCTIONHISTORY               STRING         "PGE60:5.0.0;
    PGE11:4.3.1;PGE02:4.3.0;PGE01:4.1.10;PGE02:5.0.1;PGE01:4.1.12;PGE01:5.0.1"

1.2     MODIS Geolocation Specific Granule Metadata

These fields will be stored as individual HDF attributes.
						
Attribute Name 	        	Format    	Example
==============			======		=======
Spacecraft ID		    	string		"Terra" or "Aqua"

Production Date            	string		"1995-01-01"
				"YYYY-MM-DD"

GRANULENUMBER     		uint16         	50

RANGEBEGINNINGDATE		string          "1995-01-01"
				"YYYY-MM-DD"

RANGEBEGINNINGTIME              string          "00:00:00.000000Z"
                                "HH:MM:SS.SSSSSS"

RANGEENDINGDATE                 string          "1995-01-01"
                                "YYYY-MM-DD"

RANGEENDINGTIME                 string          "00:02:30.000000Z"
                                "HH:MM:SS.SSSSSS"

s/c start position		float64(3)	[6378140.0,0.0,0.0]
  (in granule, ECR, meters)

s/c end position		float64(3)	[5005000.0,5005000.0,0.0]
  (in granule, ECR, meters)

ORBITNUMBER			uint16		28
  (in granule)

Parameter Version 		String		"5.0"
  Version number of the control point parameters used by MOD03CP.

Geo Parameter Version 		String		"5.3"
  Version number of the Geolocation parameters used by MOD03.

Band_number			String		"1", "2", or "A"
  Band(s) used for land control point correlation.

Cloud_select			String		"On" or "Off"

Snow_select			String		"On" or "Off"

Ice_select			String		"On" or "Off"

land_select			String		"On" or "Off"

single_island_select		String		"On" or "Off"

triplet_select			String		"Off"	(obsolescent)

Number of Records		uint16		10

Cumulated gflags		uint32(8)	2682

1.3 "Average Temperatures" 
There will be exactly one record stored in this vdata:
		_FillValue: -999.0
	Field Name		Type
	-------------------------------
	TA_RC_SMIR_CFPA		float32
		units: "Kelvin"
		valid_range: 50.0 to 118.0
	TP_AO_SMIR_OBJ		float32
		units: "Celsius"
		valid_range: -21.0 to 87.0
	TP_MF_CALBKHD_SR	float32
		units: "Celsius"
		valid_range: -23.0 to 87.0
	TP_MF_Z_BKHD_BB		float32
		units: "Celsius"
		valid_range: -23.0 to 87.0
	TP_SA_RCT1_MIR		float32
		units: "Celsius"
		valid_range: -21.0 to 87.0
	TP_SR_SNOUT		float32
		units: "Celsius"
		valid_range: -23.0 to 87.0


2.0  Control Point match records

The Control Point match records are contained in a Vdata structure within
the HDF file.  The name of the Vdata is followed by a list of fields in
the Vdata.  Each land control point and island match generates a record.
Island triplet matches generate three consecutive records.  The number
of records in the Vdata will depend upon the number of successful
control point matchings performed.

Control Point Matches
=====================

Field Name			Data Type	Typical Value
----------			---------	-------------

Control Point Location x        float64         ECR coordinates (meters)

Control Point Location y        float64         ECR coordinates (meters)

Control Point Location z        float64         ECR coordinates (meters)

Observed Control Point x        float64         ECR coordinates (meters)

Observed Control Point y        float64         ECR coordinates (meters)

Observed Control Point z        float64         ECR coordinates (meters)

S/C position x                  float64         ECR coordinates (meters)

S/C position y                  float64         ECR coordinates (meters)

S/C position z                  float64         ECR coordinates (meters)

S/C velocity x                  float64         ECR coordinates (meters/second)

S/C velocity y                  float64         ECR coordinates (meters/second)

S/C velocity z                  float64         ECR coordinates (meters/second)

S/C attitude roll               float64         With respect to the orbit frame
                                                        (degrees)

S/C attitude pitch              float64         With respect to the orbit frame
                                                        (degrees)

S/C attitude yaw                float64         With respect to the orbit frame
                                                        (degrees)

Time of observation             float64         TAI: Sec. since midnight 1/1/93

Control Point view vector x     float32         Unit View vector component
                                                to the control point in the
                                                spacecraft coordinate system

Control Point view vector y     float32         Unit View vector component
                                                to the control point in the
                                                spacecraft coordinate system
Control Point view vector z     float32         Unit View vector component
                                                to the control point in the
                                                spacecraft coordinate system

Observation line number         float32         Fractional (1km) line number 
						where the control point is 
						observed.

Observation frame number        float32         Fractional (1km) frame number
                                                where the control point is
                                                observed.

DEM uncertainty                 float32         DEM uncertainty of (land)
                                                        control point.
                                                -1.0 indicated unknown

Measurement uncertainty         float32         Islands: 250. (meters)
                                                Land: 0.56 (correlation,
                                                        no units)

Control Point ID                uint32          Combined with Control Point
						Type, uniquely identifies
						a control point.

Scan Number                     uint16          2

Control Point Type              uint8           1 = land
                                                2 = island

MODIS band used                 uint8           1

Mirror Side                     uint8           0 or 1

Error Flag                      uint8           bit 0 set: correlation too low
                                                        (CP not found)
                                                bit 1 set: too cloudy/snowy/icy
                                                bit 2 set: multiple possible
                                                        observed control points
                                                bit 3 set: observed control
                                                        point (most likely)
                                                        exterior to search area

Maneuver Flag			int8		0: Normal
						1: Spacecraft was maneuvering
						-127: Fill Value

Spare1				uint8		Spare