OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
GEO_product.h
Go to the documentation of this file.
1 /*
2 !C-INC*************************************************************************
3 !Description: Defines the information needed to write the geolocation
4  product.
5 
6 !Input Parameters: N/A
7 
8 !Output Parameters: N/A
9 
10 !Revision History:
11  * $Log: GEO_product.h,v $
12  * Revision 6.12 2012/06/26 21:02:00 kuyper
13  * Added DOI authority metadata values.
14  *
15  * Revision 6.11 2012/06/21 20:31:51 kuyper
16  * Added Digital Object Identifier.
17  *
18  * Revision 6.10 2011/02/09 19:04:43 kuyper
19  * Added WaterPresent SDS.
20  *
21  * Revision 6.9 2010/09/09 18:57:59 kuyper
22  * Updated to use macros from mapiL1Bgeo.h that were added in M-API 5.0.0 or
23  * later.
24  *
25  * Revision 6.8 2010/06/30 20:48:45 kuyper
26  * Backed out changes dependent upon M-API 6.0.0, which isn't quite ready yet.
27  *
28  * Revision 6.7 2010/05/28 18:02:32 kuyper
29  * Moved duplicate and necessarily matching definitions of MAX_EA_FILES and
30  * MAX_EA_INPUTS from GEO_check_ea_headers() and GEO_write_input_metadata() into
31  * this header
32  * Reverted more macros to form compatible with M-API 2.3.4.
33  *
34  * Revision 6.6 2010/05/19 20:17:34 kuyper
35  * Removed references to macros that were added in M-API 6.0.0; this delivery will
36  * have to use M-API 2.3.4.
37  * Dropped macros for quality flag values that will never actually appear in the
38  * product files.
39  *
40  * Revision 6.5 2010/04/01 20:28:24 james
41  * Corrected to make quality flag values explicitly unsigned.
42  *
43  * Revision 6.4 2010/03/31 17:02:45 kuyper
44  * Helped resolve Bug 1969 by defining THERMCORR.
45  * Helped resolve Bug 2249 by defining TERRAIN_CORRECTION
46  * Helped resolve Bug 2472 by defining names for the ephemeris and attitutde
47  * quality SDSs.
48  *
49  * Revision 6.3 2009/05/31 20:08:32 kuyper
50  * Corrected capitalization of offsets.
51  *
52  * Revision 6.2 2009/04/06 20:18:18 kuyper
53  * Added NUMBANDS
54  *
55  * Revision 6.1 2009/03/20 21:46:19 kuyper
56  * Added dimension names and SDS names for high resolution offsets.
57  * Added an alias for the swath name.
58  * Added names for band number and fractional offsets file attributes.
59  *
60  * James Kuyper Jr. James.R.Kuyper@nasa.gov
61  *
62  * Revision 5.2 2005/04/19 21:47:39 kuyper
63  * Changed header guard macro name to avoid reserved name space.
64  *
65  * Revision 5.1 2004/08/26 16:18:21 vlin
66  * Macro "MANEUVERS" defined.
67  *
68  * Revision 4.5 2003/08/01 21:20:33 kuyper
69  * Corrected typo.
70  *
71  * Revision 4.4 2003/07/28 19:49:43 kuyper
72  * Added REPROCESSINGPLANNED.
73  * Reorganized, and removed duplicate entry.
74  *
75  * Revision 4.3 2003/04/24 19:57:44 kuyper
76  * Removed GEO_TERRA, GEO_AQUA. Reorganised other #defines.
77  *
78  * Revision 4.2 2002/12/16 17:56:06 kuyper
79  * Corrected definition of NUMENC.
80  *
81  * Revision 4.1 2002/11/22 21:31:47 kuyper
82  * Added names for temperatures vdata.
83  * Added roll, pitch, and yaw SDS attributes.
84  * Added dimension names.
85 
86 !Team-unique Header:
87  This software is developed by the MODIS Science Data Support
88  Team for the National Aeronautics and Space Administration,
89  Goddard Space Flight Center, under contract NAS5-32373.
90 
91 !END**************************************************************************
92 */
93 
94 #ifndef GEO_PRODUCT_H
95 #define GEO_PRODUCT_H
96 #include "mapi.h"
97 #include "mapiL1Bgeo.h"
98 
99 /* Define ECS metadata Inventory and Archive */
100 
101 #define ADDITIONALATTRIBUTENAME MCORE_ADDATTRIBUTENAME
102 #define ARCHIVEMETADATA MECS_ARCHIVE
103 #define ASSOCIATEDPLATFORMSHORTNAME MCORE_APSHORTNAME
104 #define AUTOMATICQUALITYFLAG MCORE_AUTO_QUALITY
105 #define AUTOMATICQUALITYFLAGEXPLANATION MCORE_AUTO_QUALITY_FLG
106 #define COREMETADATA MECS_CORE
107 #define DAYNIGHTFLAG MCORE_DAYNIGHTFLAG
108 #define EASTBOUNDINGCOORDINATE MCORE_EAST_BOUND
109 #define EQUATORCROSSINGDATE MCORE_EQUATCROSSINGDATE
110 #define EQUATORCROSSINGLONGITUDE MCORE_EQUATCROSSINGLONG
111 #define EQUATORCROSSINGTIME MCORE_EQUATCROSSINGTIME
112 #define EXCLUSIONGRINGFLAG MCORE_EXCLUS_GRING_FLG
113 #define GRANULENUMBER MPROD_GRANULE_NUM
114 #define GRINGPOINTLATITUDE MCORE_GRING_POINT_LAT
115 #define GRINGPOINTLONGITUDE MCORE_GRING_POINT_LON
116 #define GRINGPOINTSEQUENCENO MCORE_GRING_POINT_NUM
117 #define INPUTPOINTER MCORE_INPUT_POINTER
118 #define L1A_COREMETADATA MECS_CORE
119 #define LOCALGRANULEID MCORE_LOCALGRANULEID
120 #define LOCALINPUTGRANULEID MCORE_LOCALINPUTGRANULEID
121 #define LOCALVERSIONID MCORE_LOCALVERSIONID
122 #define NORTHBOUNDINGCOORDINATE MCORE_NORTH_BOUND
123 #define ORBITNUMBER MCORE_ORBIT_NUM
124 #define PARAMETERNAME MCORE_PARAMETERNAME
125 #define PARAMETERVALUE MCORE_PARAMETERVALUE
126 #define PGEVERSION MCORE_PGEVERSION
127 #define PROCESSINGENVIRONMENT MCORE_PROCESSING_ENV
128 #define PRODUCTIONDATETIME MCORE_PRODUCTIONDATETIME
129 #define QAPERCENTMISSINGDATA MCORE_PERCENT_MISSING
130 #define QAPERCENTOUTOFBOUNDSDATA MCORE_PERCENT_OUT
131 #define RANGEBEGINNINGDATE MCORE_RANGE_BEG_DATE
132 #define RANGEBEGINNINGTIME MCORE_RANGE_BEG_TIME
133 #define RANGEENDINGDATE MCORE_RANGE_ENDING_DATE
134 #define RANGEENDINGTIME MCORE_RANGE_ENDING_TIME
135 #define REPROCESSINGACTUAL MCORE_ACTUALLY_REDONE
136 #define REPROCESSINGPLANNED MCORE_TO_BE_REDONE
137 #define SHORTNAME MCORE_SHORT_NAME
138 #define SOUTHBOUNDINGCOORDINATE MCORE_SOUTH_BOUND
139 #define VERSIONID MCORE_VERSIONID
140 #define WESTBOUNDINGCOORDINATE MCORE_WEST_BOUND
141 #define IDENTIFIERPRODDOI "identifier_product_doi"
142 #define IDENTIFIERPRODDOIAUTH "identifier_product_doi_authority"
143 #define DOIAUTHORITY "http://dx.doi.org"
144 
145 /* Define SDS names for geolocation HDF format */
146 #define SWATH_NAME M03_SWATH_NAME
147 
148  /* Group names (none defined at present */
149 #define SCAN_GRP ""
150 #define SCAN_META_GRP ""
151 #define PARM_GRP ""
152 
153  /* Processing and geometric parameters */
154 #define FOCAL_LENGTH M03FOCAL_LENGTH
155 #define BAND_NUMBER M03BAND_NUMBER
156 #define BAND_POSITION M03BAND_POSITION
157 #define DETECTOR_SPACE M03DETECTOR_SPACE
158 #define DETECTOR_OFFSETS M03DETECTOR_OFFSETS
159 #define T_OFFSET M03T_OFFSET
160 #define NUM_SAMPLES M03NUM_SAMPLES
161 
162  /* Scan line metadata */
163 #define S_NUM M03SCAN_NO
164 #define S_TYPE M03SCAN_TYPE
165 #define EV_FRAMES M03EV_FRAMES
166 #define SD_FRAMES M03SD_FRAMES
167 #define SV_FRAMES M03SV_FRAMES
168 #define EVTIME M03EV_START_TIME
169 #define SDTIME M03SD_START_TIME
170 #define SVTIME M03SV_START_TIME
171 #define SCTIME M03EV_CENTER_TIME
172 #define MSIDE M03MIR_SIDE
173 #define SUN_ZENITH M03SD_SUN_ZENITH
174 #define SUN_AZIMUTH M03SD_SUN_AZIMUTH
175 #define MOON_VECTOR M03MOON_VECTOR
176 #define L1_QUALITY M03L1_SCAN_QUALITY
177 #define GEO_QUALITY M03GEO_SCAN_QUALITY
178 #define ORB_POS M03ORB_POS
179 #define ORB_VEL M03ORB_VEL
180 #define T_INST2ECR M03T_INST2ECR
181 #define ATTIT_ANG M03ATTITUDE_ANGLES
182 #define SUN_REF M03SUN_REF
183 #define NUM_IMPULSE M03NUM_IMPULSE
184 #define IMPULSE_ENC M03IMPULSE_ENC
185 #define IMPULSE_TIME M03IMPULSE_TIME
186 #define NSCANS_10 M03NSCANS_10
187 #define NSCANS_20 M03NSCANS_20
188 #define NSCANS_40 M03NSCANS_40
189 #define MFRAMES M03MFRAMES
190 #define MFRAMES_2 M03MFRAMES_2
191 #define MFRAMES_4 M03MFRAMES_4
192 #define THERMCORR M03THERM_CORR
193 #define ATT_QUALITY M03ATT_QUALITY
194 #define EPH_QUALITY M03EPH_QUALITY
195 
196  /* Quality Flag Values. */
197 #define EPH_OVERALL 0x00000001U
198 #define EPH_DATA 0x00000002U
199 #define EPH_REDLO 0x00000004U
200 #define EPH_YELLOWLO 0x00000008U
201 #define EPH_YELLOWHI 0x00000010U
202 #define EPH_REDHI 0x00000020U
203 #define EPH_LONG_FOLLOW 0x00000040U
204 #define EPH_SHORT_FOLLOW 0x00000080U
205 #define EPH_SHORT_PRECEED 0x00000100U
206 #define EPH_LONG_PRECEED 0x00000200U
207 #define EPH_REPAIRED 0x00000400U
208 #define EPH_QUALITY_UNAVAIL 0x00000800U
209 /* PGSd_NO_DATA: 0x00001000U Used as fill value. */
210 /* PGSd_INTERPOLATED_POINT 0x00004000U */
211 /* PGSd_PLATFORM_FATAL 0x00010000U */
212 
213  /* Quality Flag SDS Attribute Names. */
214 #define QFL_OVERALL M03QFL_OVERALL
215 #define QFL_DATASUM M03QFL_DATASUM
216 #define QFL_RED_LO M03QFL_RED_LO
217 #define QFL_YEL_LO M03QFL_YEL_LO
218 #define QFL_YEL_HI M03QFL_YEL_HI
219 #define QFL_RED_HI M03QFL_RED_HI
220 #define QFL_LONG_FOLL M03QFL_LONG_FOLL
221 #define QFL_SHRT_FOLL M03QFL_SHRT_FOLL
222 #define QFL_SHRT_PREC M03QFL_SHRT_PREC
223 #define QFL_LONG_PREC M03QFL_LONG_PREC
224 #define QFL_REPAIRED M03QFL_REPAIRED
225 #define QFL_QFL_PROB M03QFL_QFL_PROB
226 #define QFL_INTERP M03QFL_INTERP
227 
228  /* Pixel-level Geolocation Data */
229 #define LONGITUDE M03LONGITUDE
230 #define LATITUDE M03LATITUDE
231 #define HEIGHT M03HEIGHT
232 #define SEN_ZENITH M03SENSOR_ZEN
233 #define SEN_AZIMUTH M03SENSOR_AZ
234 #define RANGE M03RANGE
235 #define SOL_ZENITH M03SOLAR_ZENITH
236 #define SOL_AZIMUTH M03SOLAR_AZIMUTH
237 #define LAND_SEAMASK M03LAND_SEAMASK
238 #define WATER_PRESENT "WaterPresent"
239 #define GFLAGS M03GFLAGS
240 
241  /* High-resolution Geolocation data */
242 #define SCAN_OFFSET M03SCAN_OFFSET
243 #define TRACK_OFFSET M03TRACK_OFFSET
244 #define HEIGHT_OFFSET M03HEIGHT_OFFSET
245 
246  /* Geolocation Specific Metadata */
247 #define ATTIT_INPUT M03ATTIT_INPUT
248 #define BAD_PCKTS M03BAD_PACKETS
249 #define CUM_GFLAGS M03CUM_GFLAGS
250 #define DISCRD_PCKTS M03DISCARD_PACKETS
251 #define EPHEM_INPUT M03EPHEM_INPUT
252 #define INCOMP_SCANS M03INCOMP_SCANS
253 #define MAX_EA_FILES 3
254 #define MAX_EA_INPUTS 6
255 #define MAX_EFRM M03MAX_EARTH_FRAMES
256 #define MAX_SFRM M03MAX_SD_FRAMES
257 #define MAX_SV_FRM M03MAX_SV_FRAMES
258 #define MISS_PCKTS M03MISSING_PACKETS
259 #define NUMSCN M03NUMBER_OF_SCANS
260 #define PARVERS M03PARAM_VERS
261 #define POLAR_MOTION M03POLAR_MOTION
262 #define UTCPOLE_FH M03UTCPOLE
263 #define FROFF "HDFEOS_FractionalOffset_"
264 #define FROFF_SCAN_20 FROFF NSCANS_20 "_" SWATH_NAME
265 #define FROFF_FRAME_2 FROFF MFRAMES_2 "_" SWATH_NAME
266 #define FROFF_SCAN_40 FROFF NSCANS_40 "_" SWATH_NAME
267 #define FROFF_FRAME_4 FROFF MFRAMES_4 "_" SWATH_NAME
268 #define TERRAIN_CORRECTION M03TERR_CORR
269 
270 /* Vdata names. */
271 #define AVERAGE_TEMPERATURES M03AVG_TEMP
272 #define TA_RC_SMIR_CFPA M03TEMP_TRS
273 #define TP_AO_SMIR_OBJ M03TEMP_TAS
274 #define TP_MF_CALBKHD_SR M03TEMP_TMC
275 #define TP_MF_Z_BKHD_BB M03TEMP_TMZ
276 #define TP_SA_RCT1_MIR M03TEMP_TSR
277 #define TP_SR_SNOUT M03TEMP_TSS
278 
279 /* Input source for spacecraft kinematic, and possible values. */
280 #define EA_SOURCE M03EPHEMERIS_ATT_SRCE
281 #define TOOLKIT_EA "SDP Toolkit"
282 #define L1A_PKT_EA "MODIS Packet"
283 #define GEO_EST_RMS_ERROR M03GEO_EST_ERROR
284 
285 /* SDS attributes */
286 #define SCANDIM M03SCAN_D
287 #define TRACKDIM M03TRACK_D
288 #define ROLL_ELEM M03ROLL_ELEM
289 #define PITCH_ELEM M03PITCH_ELEM
290 #define YAW_ELEM M03YAW_ELEM
291 
292 /* Dimension names */
293 #define NSCANS M03NSCANS
294 #define VECDIM M03VECDIM
295 #define NUMQUAL M03NUMQUAL
296 #define NUMENC M03NUMENC
297 #define NUMBANDS M03NUMBANDS
298 #endif