cris_l1b_pcs.cdl 73.9 KB
Newer Older
RKGarcia's avatar
RKGarcia committed
1
2
3
4
5
6
netcdf j1_l1b_cris_fsr  {
dimensions:
     utc_tuple = 8;  // parts of UTC time: year, month, day, hour, minute, second, millisec, microsec
     atrack = 45;  // along-track horizontal dimension
     xtrack = 30;  // cross-track horizontal dimension
     fov = 9;  // Field-of-view dimension
7
8
9
     wnum = 2211;  // for local PCs
     globalpc = 150;  // principal component
     localpc = 5;
RKGarcia's avatar
RKGarcia committed
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
     fov_poly = 8;  // lat_bnds, lon_bnds points defining the polygon bounding an FOV (anticlockwise as viewed from above)
     spatial = 3;  // directions: x, y, z for satellite position and velocity
     attitude = 3;  // roll, pitch, yaw

// global attributes:
         string :keywords="EARTH SCIENCE > SPECTRAL/ENGINEERING > INFRARED WAVELENGTHS > INFRARED RADIANCE";  // A comma-separated list of key words and/or phrases. Keywords may be common words or phrases, terms from a controlled vocabulary (GCMD is often used), or URIs for terms from a controlled vocabulary (see also "keywords_vocabulary" attribute).
         string :Conventions="CF-1.6, ACDD-1.3";  // A comma-separated list of the conventions that are followed by the dataset.
         string :history="";  // Requirement against executable that writes the NetCDF. Value will be appended to and not overwritten.; Provides an audit trail for modifications to the original data. This attribute is also in the NetCDF Users Guide: 'This is a character array with a line for each invocation of a program that has modified the dataset. Well-behaved generic netCDF applications should append a line containing: date, time of day, user name, program name and command arguments.' To include a more complete description you can append a reference to an ISO Lineage entity; see NOAA EDM ISO Lineage guidance.
         string :source="CrIS instrument telemetry";  // The method of production of the original data. If it was model-generated, source should name the model and its version. If it is observational, source should characterize it. This attribute is defined in the CF Conventions. Examples: 'temperature from CTD #1234'; 'world model v.0.1'.
         string :processing_level="1B";  // A textual description of the processing (or quality control) level of the data.
         string :product_name_type_id="L1B";  // Product name as it appears in product_name (L1A, L1B, L2, SNO_AIRS_CrIS)
         string :comment="";  // Currently not intended to be used.; Miscellaneous information about the data or methods used to produce it. Can be empty.
         string :acknowledgment="Support for this research was provided by NASA.";  // A place to acknowledge various types of support for the project that produced this data.
         string :license="Limited to Sounder SIPS affiliates";  // Provide the URL to a standard or specific license, enter "Freely Distributed" or "None", or describe any restrictions to data access and distribution in free text.
         string :standard_name_vocabulary="CF Standard Name Table v28";  // The name and version of the controlled vocabulary from which variable standard names are taken. (Values for any standard_name attribute must come from the CF Standard Names vocabulary for the data file or product to comply with CF.) Example: 'CF Standard Name Table v27'.
         string :date_created="Unassigned";  // PGE responsibility; The date on which this version of the data was created. (Modification of values implies a new version, hence this would be assigned the date of the most recent values modification.) Metadata changes are not considered when assigning the date_created. The ISO 8601:2004 extended date format is recommended, as described in the Attribute Content Guidance section.
         string :creator_name="Unassigned";  // The name of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data.
         string :creator_email="Unassigned";  // The email address of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data.
         string :creator_url="Unassigned";  // The URL of the person (or other creator type specified by the creator_type attribute) principally responsible for creating this data.
         string :institution="Unassigned";  // Processing facility that produced this file
         string :project="Sounder SIPS";  // The name of the project(s) principally responsible for originating this data. Multiple projects can be separated by commas, as described under Attribute Content Guidelines. Examples: 'PATMOS-X', 'Extended Continental Shelf Project'.
         string :product_name_project="SNDR";  // The name of the project as it appears in the file name.  'SNDR' for all Sounder SIPS products, even AIRS products.
         string :publisher_name="Unassigned";  // The name of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format.
         string :publisher_email="Unassigned";  // The email address of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format.
         string :publisher_url="Unassigned";  // The URL of the person (or other entity specified by the publisher_type attribute) responsible for publishing the data file or product to users, with its current metadata and format.
         string :geospatial_bounds="";  // Will use the POLYGON as shown in the description.  The example is clockwise as viewed from above, but WKT spec at https://en.wikipedia.org/wiki/Well-known_text says it should be counter-clockwise.  We'll go counterclockwise.  The last point must repeat the first point to provide closure.  L1A PGE geolocation fills in and later PGEs copy.   Another problem: newer text on the ACDD webpage shows that longitude should come before latitude.  The text always said that but the old example showed latitude first.  With v03 we change to longitude first.; Describes the data's 2D or 3D geospatial extent in OGC's Well-Known Text (WKT) Geometry format (reference the OGC Simple Feature Access (SFA) specification). The meaning and order of values for each point's coordinates depends on the coordinate reference system (CRS). The ACDD default is 2D geometry in the EPSG:4326 coordinate reference system. The default may be overridden with geospatial_bounds_crs and geospatial_bounds_vertical_crs (see those attributes). EPSG:4326 coordinate values are latitude (decimal degrees_north) and longitude (decimal degrees_east), in that order. Longitude values in the default case are limited to the [-180, 180) range. Example: 'POLYGON ((-111.29 40.26, -111.29 41.26, -110.29 41.26, -110.29 40.26, -111.29 40.26))'.
         string :geospatial_bounds_crs="EPSG:4326";  // The coordinate reference system (CRS) of the point coordinates in the geospatial_bounds attribute. This CRS may be 2-dimensional or 3-dimensional, but together with geospatial_bounds_vertical_crs, if that attribute is supplied, must match the dimensionality, order, and meaning of point coordinate values in the geospatial_bounds attribute. If geospatial_bounds_vertical_crs is also present then this attribute must only specify a 2D CRS. EPSG CRSs are strongly recommended. If this attribute is not specified, the CRS is assumed to be EPSG:4326. Examples: 'EPSG:4979' (the 3D WGS84 CRS), 'EPSG:4047'.
          float :geospatial_lat_min=9.9692099683868690e+36f;  // PGE responsibility; Describes a simple lower latitude limit; may be part of a 2- or 3-dimensional bounding region. Geospatial_lat_min specifies the southernmost latitude covered by the dataset.
          float :geospatial_lat_max=9.9692099683868690e+36f;  // PGE responsibility; Describes a simple upper latitude limit; may be part of a 2- or 3-dimensional bounding region. Geospatial_lat_max specifies the northernmost latitude covered by the dataset.
          float :geospatial_lon_min=9.9692099683868690e+36f;  // PGE responsibility; Describes a simple longitude limit; may be part of a 2- or 3-dimensional bounding region. geospatial_lon_min specifies the westernmost longitude covered by the dataset. See also geospatial_lon_max.
          float :geospatial_lon_max=9.9692099683868690e+36f;  // PGE responsibility; Describes a simple longitude limit; may be part of a 2- or 3-dimensional bounding region. geospatial_lon_max specifies the easternmost longitude covered by the dataset. Cases where geospatial_lon_min is greater than geospatial_lon_max indicate the bounding box extends from geospatial_lon_max, through the longitude range discontinuity meridian (either the antimeridian for -180:180 values, or Prime Meridian for 0:360 values), to geospatial_lon_min; for example, geospatial_lon_min=170 and geospatial_lon_max=-175 incorporates 15 degrees of longitude (ranges 170 to 180 and -180 to -175).
         string :time_coverage_start="";  // We use nominal limits, not the actual timestamp of the first data point.  (seconds always = 00.00"); Nominal start time.  Describes the time of the first data point in the data set. Use the ISO 8601:2004 date format, preferably the extended format as recommended in the Attribute Content Guidance section.
         string :time_of_first_valid_obs="";  // This is a companion to time_coverage_start.  But where time_coverage_start gives the nominal limit, this gives the actual timestamp of the first valid observation included in the product.; Describes the time of the first valid data point in the data set. Use the ISO 8601:2004 date extended format.
         string :time_coverage_mid="";  // We use nominal limits, not the actual timestamps of the first and last data points.  (seconds always = 00.00"); Describes the midpoint between the nominal start and end times. Use the ISO 8601:2004 date format, preferably the extended format as recommended in the Attribute Content Guidance section.
         string :time_coverage_end="";  // We use nominal limits, not the actual timestamp of the first data point.  (seconds always = 00.00")  This value may be 1 second wrong in case of a leapsecond.; Nominal end time.  Describes the time of the last data point in the data set. Use ISO 8601:2004 date format, preferably the extended format as recommended in the Attribute Content Guidance section.
         string :time_of_last_valid_obs="";  // This is a companion to time_coverage_end.  But where time_coverage_end gives the nominal limit, this gives the actual timestamp of the last valid observation included in the product.  Note that this can be a few seconds after the nominal end time given in time_coverage_end.; Describes the time of the last valid data point in the data set. Use the ISO 8601:2004 date extended format.
         string :time_coverage_duration="P0000-00-00T00:06:00";  // This value may technically be 1 second wrong in cases with leapseconds but the value will not change.; Describes the duration of the data set. Use ISO 8601:2004 duration format, preferably the extended format as recommended in the Attribute Content Guidance section.
         string :product_name_duration="m06";  // Product duration as it appears in product_name (m06 means six minutes)
         string :creator_type="institution";  // Specifies type of creator with one of the following: 'person', 'group', 'institution', or 'position'. If this attribute is not specified, the creator is assumed to be a person.
         string :creator_institution="Jet Propulsion Laboratory -- California Institute of Technology";  // The institution of the creator; should uniquely identify the creator's institution. This attribute's value should be specified even if it matches the value of publisher_institution, or if creator_type is  institution.
         string :product_version="v01.00.00";  // product_version is the version assigned to the build of the overall Sounder SIPS system.  It will increment for all PGEs each build, even if not all PGEs have any changes.  Always of the form 'vxx.yy.zz', with 2-digit major, minor, and revision subfields.  (ex 'v01.00.12.').  Major version will correspond to DISC collection number.; Version identifier of the data file or product as assigned by the data creator. For example, a new algorithm or methodology could result in a new product_version.
         string :keywords_vocabulary="GCMD:GCMD Keywords";  // If you are using a controlled vocabulary for the words/phrases in your "keywords" attribute, this is the unique name or identifier of the vocabulary from which keywords are taken. If more than one keyword vocabulary is used, each may be presented with a prefix and a following comma, so that keywords may optionally be prefixed with the controlled vocabulary key. Example: 'GCMD:GCMD Keywords, CF:NetCDF COARDS Climate and Forecast Standard Names'.
         string :platform="JPSS-1 > Joint Polar Satellite System - 1";  // Name of the platform(s) that supported the sensor data used to create this data set or product. Platforms can be of any type, including satellite, ship, station, aircraft or other. Indicate controlled vocabulary used in platform_vocabulary.
         string :platform_vocabulary="GCMD:GCMD Keywords";  // Controlled vocabulary for the names used in the "platform" attribute.
         string :product_name_platform="J1";  // Platform name as it appears in product_name
         string :instrument="CrIS > Cross-track Infrared Sounder";  // Name of the contributing instrument(s) or sensor(s) used to create this data set or product. Indicate controlled vocabulary used in instrument_vocabulary.
         string :instrument_vocabulary="GCMD:GCMD Keywords";  // Controlled vocabulary for the names used in the "instrument" attribute.
         string :product_name_instr="CRIS";  // Instrument name as it appears in product_name
         string :product_name="";  // PGE responsibility; Canonical fully qualified product name (official file name)
         string :product_name_variant="std";  // PGE Responsibility ('std' should be the default); Processing variant identifier as it appears in product_name.  'std' (shorthand for 'standard') is to be the default and should be what is seen in all public products.
         string :product_name_version="vxx_xx_xx";  // product_name_version is a simplified form of product_version that goes into the file name.  It substitutes underscores for dots and excludes the revision subfield.  (ex 'v01_00' for distribution; 'v01_00_12' for local). Note this string will be flowed into the PGEs through the config files in order to provide control of how the filenames appear across the entire ensemble of data products.; Version number as it appears in product_name (v01_00_00)
         string :product_name_producer="T";  // PGE Responsibility; Production facility as it appears in product_name (single character)  'T' is the default, for unofficial local test products
         string :product_name_timestamp="yymmddhhmmss";  // PGE responsibility; Processing timestamp as it appears in product_name (yymmddhhmmss)
         string :product_name_extension="nc";  // File extension as it appears in product_name (typically nc)
         ushort :granule_number=0.0;  // PGE responsibility.  L1A fills in and later PGEs copy.; granule number of day (1-240)
         string :product_name_granule_number="g000";  // PGE responsibility.  L1A fills in and later PGEs copy.; zero-padded string for granule number of day (g001-g240)
         string :gran_id="yyyymmddThhmm";  // PGE responsibility.  L1A fills in and later PGEs copy.; Unique granule identifier yyyymmddThhmm of granule start, including year, month, day, hour, and minute of granule start time
          float :geospatial_lat_mid=9.9692099683868690e+36f;  // PGE responsibility.  L1A fills in and later PGEs copy.; granule center latitude
          float :geospatial_lon_mid=9.9692099683868690e+36f;  // PGE responsibility.  L1A fills in and later PGEs copy.; granule center longitude
         string :featureType="point";  // should be swath but that is not permitted by the current version of CF; structure of data in file
         string :data_structure="swath";  // a character string indicating the internal organization of the data with currently allowed values of 'grid', 'station', 'trajectory', or 'swath'. The 'structure' here generally describes the horizontal structure and in all cases data may also be functions, for example, of a vertical coordinate and/or time. (If using CMOR pass this in a call to cmor_set_cur_dataset_attribute.)
         string :cdm_data_type="Swath";  // The data type, as derived from Unidata's Common Data Model Scientific Data types and understood by THREDDS. (This is a THREDDS "dataType", and is different from the CF NetCDF attribute 'featureType', which indicates a Discrete Sampling Geometry file in CF.)
         string :id="Unassigned";  // DOI; An identifier for the data set, provided by and unique within its naming authority. The combination of the "naming authority" and the "id" should be globally unique, but the id can be globally unique by itself also. IDs can be URLs, URNs, DOIs, meaningful text strings, a local key, or any other unique string of characters. The id should not include white space characters.
         string :naming_authority="Unassigned";  // In final published products this is expected to be http://dx.doi.org/; The organization that provides the initial id (see above) for the dataset. The naming authority should be uniquely specified by this attribute. We recommend using reverse-DNS naming for the naming authority; URIs are also acceptable. Example: 'edu.ucar.unidata'.
         string :identifier_product_doi="Unassigned";  // partly redundant with id but retained for EOSDIS compatibility; digital signature
         string :identifier_product_doi_authority="Unassigned";  // probably redundant with naming_authority but retained for EOSDIS compatibility.  Expected to be http://dx.doi.org/ in final publisted products.; digital signature source
         string :algorithm_version="";  // It is set by the PGE developers in a config file or source code they control, so that it can be set by the PGE at run time.  If the PGE can switch different algorithms at runtime, the selected algorithm should be reflected here.; The version of the algorithm in whatever format is selected by the developers.  After the main algorithm name and version, versions from multiple sub-algorithms may be concatenated with semicolon separators.  (ex: 'CCAST 4.2; BB emis from MIT 2016-04-01')  Must be updated with every delivery that changes numerical results.
         string :production_host="";  // PGE responsibility (for science code this string will be passed in); Identifying information about the host computer for this run.  (Output of linux "uname -a" command.)
         string :format_version="v02.01.14";  // format_version relates to the spreadsheet. For public products it is of the form 'vxx.yy.zz'. For local runs from a local version of the spreadsheet it will add the suffix '_Untrusted': 'vxx.yy.zz_Untrusted'. Developers update it to reflect the level of changes, but always retain the '_Untrusted' suffix.; Format version.
         string :input_file_names="";  // File names only: not path+filename; Semicolon-separated list of names or unique identifiers of files that were used to make this product.  There will always be one space after each semicolon.  There is no final semicolon.
         string :input_file_types="";  // These are human-readable tokens agreed by the team.  A downstream process will populate metadata by keying off a list of expected values.  Values include: ATMS_L1A, ATMS_L1B_AlgParam, ATMS_L1B_Template; Semicolon-separated list of tags giving the role of each input file in input_file_names.  There will always be one space after each semicolon.  There is no final semicolon.
         string :input_file_dates="";  // Dates shall be formatted according to ISO 8601: YYYY-MM-DD; Semicolon-separated list of creation dates for each input file in input_file_names.  There will always be one space after each semicolon.  There is no final semicolon.
         string :orbitDirection="NA";  // Orbit is ascending and/or descending.  Values are "Ascending" or "Descending" if the entire granule fits that description.  "NorthPole" and "SouthPole" are used for polar-crossing granules.  "NA" is used when a determination cannot be made.
         string :day_night_flag="NA";  // Data is day or night.  "Day" means subsatellite point for all valid scans has solar zenith angle less than 90 degrees.  "Night" means subsatellite point for all valid scans has solar zenith angle greater than 90 degrees.  "Both" means the dataset contains valid observations with solar zenith angle above and below 90 degrees.  "NA" means a value could not be determined.
         string :AutomaticQualityFlag="Missing";  // Similar to ECS field but ECS field is per observed parameter and here we give a single value. "Missing" is a special case when there is no downlinked data.  These files are internal placeholders, never visible to the public.; "Passed": all spectra are present and calibrated with no quality issues; "Suspect": at least one spectrum is missing or calibrated with quality issues; "Failed": no calibrated spectra.
         string :AutomaticQualityFlagExplanation="'Passed': all spectra are present and calibrated with no quality issues; 'Suspect': at least one spectrum is missing or calibrated with quality issues; 'Failed': no calibrated spectra.";  // Can leave the default or override to give specific per-gran info.; A text explanation of the criteria used to set AutomaticQualityFlag; including thresholds or other criteria.
          float :qa_pct_data_missing=100.0;  // Similar to ECS field QAPercentMissingData but ECS  field is per observed parameter and here we give a single value.; Percentage of expected observations that are missing.
          float :qa_pct_data_geo=0.0;  // Percentage of expected observations that are successfully geolocated.
          float :qa_pct_data_sci_mode=0.0;  // Percentage of expected observations that were taken while the instrument was in science mode and are successfully geolocated.
         string :qa_no_data="TRUE";  // Processing systems may delete empty files or may propagate them as placeholders.  Empty files should not be seen by the public.; A simple indicator of whether this is an "empty" granule with no data from the instrument.  "TRUE" or "FALSE".
         string :interferogram_resolution="Unassigned";  // Resolution of the inteferograms. Allowed values are "NSR", "FSR", "XSR" and "Unassigned".
         string :spectral_resolution="Unassigned";  // Resolution of the spectra. Allowed values are "NSR", "FSR", and "Unassigned".
         string :title="JPSS-1 CrIS Level-1B FSR";  // a succinct description of what is in the dataset. (= ECS long name)
         string :summary="The FSR CrIS Level 1B product consists of calibrated radiance spectra at Full Spectral Resolution, as well as geolocation information, metadata and derived parameters related to the observations.";  // A paragraph describing the dataset, analogous to an abstract for a paper.
         string :shortname="SNDRJ1CrISL1B";  // ECS Short Name
         string :product_group="l1b_cris";  // The group name to be used for this product when it is collected in a multi-group file type, like SNO or calsub
         string :metadata_link="http://disc.sci.gsfc.nasa.gov/";  // A URL that gives the location of more complete metadata. A persistent URL is recommended for this attribute.
         string :references="NASA Cross-track Infrared Sounder (CrIS) Level 1B Algorithm Theoretical Basis Document (ATBD) Version 3.0; NASA Cross-track Infrared Sounder (CrIS) Level 1B Product Users' Guide Version 3.0; NASA Cross-track Infrared Sounder (CrIS) Level 1B Quality Flags Description Document Version 3.0";  // ATDB and design documents describing processing algorithms. Can be empty.
         string :contributor_name="UW-Madison Space Science and Engineering Center: Joe K Taylor; UMBC Atmospheric Spectroscopy Laboratory: Larrabee Strow";  // Can be a semicolon-separated list.  contributor_role must then be a parallel semicolon-separated list.; The names of any individuals or institutions that contributed to the creation of this data.
         string :contributor_role="CrIS L1B Scientist; CrIS L1B Scientist";  // See contributor_name; The roles of any individuals or institutions that contributed to the creation of this data.
variables:
         string obs_id(atrack, xtrack);
              string obs_id:long_name="observation id for FOR";
              string obs_id:coverage_content_type="referenceInformation";
              string obs_id:description="unique observation identifier: yyyymmddThhmm.aaSxx.  Includes gran_id plus 2-digit along-track index (01-45), scene identifier (E=earth, H=hot, C=cold) and 2-digit cross-track index (01-30).";

         string fov_obs_id(atrack, xtrack, fov);
              string fov_obs_id:long_name="observation id for FOV";
              string fov_obs_id:coverage_content_type="referenceInformation";
              string fov_obs_id:description="unique observation identifier for FOV: yyyymmddThhmm.aaSxx.f .  Includes gran_id plus 2-digit along-track index (01-45), scene identifier (E=earth, H=hot, C=cold) , 2-digit cross-track index (01-30), and 1-digit FOV number (1-9).";

          ubyte instrument_state(atrack, xtrack, fov);
              string instrument_state:long_name="instrument state";
              string instrument_state:coordinates="lon lat";
               ubyte instrument_state:_FillValue=255ub;
               ubyte instrument_state:flag_values=0,  1,  2,  3;
              string instrument_state:coverage_content_type="qualityInformation";
              string instrument_state:description="instrument/data state: 0/'Process' - Data is usable for science; 1/'Special' - Observations are valid but instrument is not configured for science data (ex: stare mode); 2/'Erroneous' - Data is not usable (ex: checksum error); 3/'Missing' - No data was received.";
              string instrument_state:AIRS_HDF_name="state";
              string instrument_state:flag_meanings="Process Special Erroneous Missing";

         double obs_time_tai93(atrack, xtrack);
              double obs_time_tai93:valid_range=-2934835217.0,  3376598410.0;
              string obs_time_tai93:long_name="earth view FOV midtime";
              double obs_time_tai93:_FillValue=9.9692099683868690e+36;
              string obs_time_tai93:coverage_content_type="referenceInformation";
              string obs_time_tai93:standard_name="time";
              string obs_time_tai93:units="seconds since 1993-01-01 00:00";
              string obs_time_tai93:description="earth view observation midtime for each FOV";
              string obs_time_tai93:AIRS_HDF_name="Time";

         ushort obs_time_utc(atrack, xtrack, utc_tuple);
              string obs_time_utc:long_name="earth view UTC FOV time";
              string obs_time_utc:coordinates="utc_tuple_lbl";
              ushort obs_time_utc:_FillValue= 65535us;
              string obs_time_utc:coverage_content_type="referenceInformation";
              string obs_time_utc:description="UTC earth view observation time as an array of integers: year, month, day, hour, minute, second, millisec, microsec";

          float lat(atrack, xtrack, fov);
               float lat:valid_range=-90.0,  90.0;
              string lat:long_name="latitude";
               float lat:_FillValue=9.9692099683868690e+36f;
              string lat:bounds="lat_bnds";
              string lat:coverage_content_type="referenceInformation";
              string lat:standard_name="latitude";
              string lat:units="degrees_north";
              string lat:description="latitude of FOV center";
              string lat:AIRS_HDF_name="Latitude";

          float lat_geoid(atrack, xtrack, fov);
               float lat_geoid:valid_range=-90.0,  90.0;
              string lat_geoid:long_name="latitude";
               float lat_geoid:_FillValue=9.9692099683868690e+36f;
              string lat_geoid:coverage_content_type="referenceInformation";
              string lat_geoid:standard_name="latitude";
              string lat_geoid:units="degrees_north";
              string lat_geoid:description="latitude of FOV center on the geoid (without terrain correction)";

          float lon(atrack, xtrack, fov);
               float lon:valid_range=-180.0,  180.0;
              string lon:long_name="longitude";
               float lon:_FillValue=9.9692099683868690e+36f;
              string lon:bounds="lon_bnds";
              string lon:coverage_content_type="referenceInformation";
              string lon:standard_name="longitude";
              string lon:units="degrees_east";
              string lon:description="longitude of FOV center";
              string lon:AIRS_HDF_name="Longitude";

          float lon_geoid(atrack, xtrack, fov);
               float lon_geoid:valid_range=-180.0,  180.0;
              string lon_geoid:long_name="longitude";
               float lon_geoid:_FillValue=9.9692099683868690e+36f;
              string lon_geoid:coverage_content_type="referenceInformation";
              string lon_geoid:standard_name="longitude";
              string lon_geoid:units="degrees_east";
              string lon_geoid:description="longitude of FOV center on the geoid (without terrain correction)";

          float lat_bnds(atrack, xtrack, fov, fov_poly);
               float lat_bnds:valid_range=-90.0,  90.0;
              string lat_bnds:long_name="FOV boundary latitudes";
               float lat_bnds:_FillValue=9.9692099683868690e+36f;
              string lat_bnds:coverage_content_type="referenceInformation";
              string lat_bnds:units="degrees_north";
              string lat_bnds:description="latitudes of points forming a polygon around the perimeter of the FOV";

          float lon_bnds(atrack, xtrack, fov, fov_poly);
               float lon_bnds:valid_range=-180.0,  180.0;
              string lon_bnds:long_name="FOV boundary longitudes";
               float lon_bnds:_FillValue=9.9692099683868690e+36f;
              string lon_bnds:coverage_content_type="referenceInformation";
              string lon_bnds:units="degrees_east";
              string lon_bnds:description="longitudes of points forming a polygon around the perimeter of the FOV";

          float land_frac(atrack, xtrack, fov);
               float land_frac:valid_range=0.0,  1.0;
              string land_frac:long_name="land fraction";
              string land_frac:coordinates="lon lat";
               float land_frac:_FillValue=9.9692099683868690e+36f;
              string land_frac:coverage_content_type="referenceInformation";
              string land_frac:standard_name="land_area_fraction";
              string land_frac:units="1";
              string land_frac:description="land fraction over the FOV";
              string land_frac:AIRS_HDF_name="landFrac";
              string land_frac:cell_methods="area: mean (beam-weighted)";

          float surf_alt(atrack, xtrack, fov);
              string surf_alt:ancillary_variables="surf_alt_sdev";
               float surf_alt:valid_range=-500.0,  10000.0;
              string surf_alt:long_name="surface altitude";
              string surf_alt:coordinates="lon lat";
               float surf_alt:_FillValue=9.9692099683868690e+36f;
              string surf_alt:coverage_content_type="referenceInformation";
              string surf_alt:standard_name="surface_altitude";
              string surf_alt:units="m";
              string surf_alt:description="mean surface altitude wrt  earth model over the FOV";
              string surf_alt:AIRS_HDF_name="topog";
              string surf_alt:cell_methods="area: mean (beam-weighted)";

          float surf_alt_sdev(atrack, xtrack, fov);
               float surf_alt_sdev:valid_range=0.0,  10000.0;
              string surf_alt_sdev:long_name="surface altitude standard deviation";
              string surf_alt_sdev:coordinates="lon lat";
               float surf_alt_sdev:_FillValue=9.9692099683868690e+36f;
              string surf_alt_sdev:coverage_content_type="qualityInformation";
              string surf_alt_sdev:units="m";
              string surf_alt_sdev:description="standard deviation of surface altitude within the FOV";
              string surf_alt_sdev:AIRS_HDF_name="topog_err";
              string surf_alt_sdev:cell_methods="area: standard_deviation (beam-weighted)";

          float sun_glint_lat(atrack);
               float sun_glint_lat:valid_range=-90.0,  90.0;
              string sun_glint_lat:long_name="sun glint latitude";
              string sun_glint_lat:coordinates="subsat_lon subsat_lat";
               float sun_glint_lat:_FillValue=9.9692099683868690e+36f;
              string sun_glint_lat:coverage_content_type="referenceInformation";
              string sun_glint_lat:standard_name="latitude";
              string sun_glint_lat:units="degrees_north";
              string sun_glint_lat:description="sun glint spot latitude at scan_mid_time.  Fill for night observations.";
              string sun_glint_lat:AIRS_HDF_name="glintlat";

          float sun_glint_lon(atrack);
               float sun_glint_lon:valid_range=-180.0,  180.0;
              string sun_glint_lon:long_name="sun glint longitude";
              string sun_glint_lon:coordinates="subsat_lon subsat_lat";
               float sun_glint_lon:_FillValue=9.9692099683868690e+36f;
              string sun_glint_lon:coverage_content_type="referenceInformation";
              string sun_glint_lon:standard_name="longitude";
              string sun_glint_lon:units="degrees_east";
              string sun_glint_lon:description="sun glint spot longitude at scan_mid_time.  Fill for night observations.";
              string sun_glint_lon:AIRS_HDF_name="glintlon";

          float sol_zen(atrack, xtrack, fov);
               float sol_zen:valid_range=0.0,  180.0;
              string sol_zen:long_name="solar zenith angle";
              string sol_zen:coordinates="lon lat";
               float sol_zen:_FillValue=9.9692099683868690e+36f;
              string sol_zen:coverage_content_type="referenceInformation";
              string sol_zen:standard_name="solar_zenith_angle";
              string sol_zen:units="degree";
              string sol_zen:description="solar zenith angle at the center of the FOV";
              string sol_zen:AIRS_HDF_name="solzen";

          float sol_azi(atrack, xtrack, fov);
               float sol_azi:valid_range=0.0,  360.0;
              string sol_azi:long_name="solar azimuth angle";
              string sol_azi:coordinates="lon lat";
               float sol_azi:_FillValue=9.9692099683868690e+36f;
              string sol_azi:coverage_content_type="referenceInformation";
              string sol_azi:standard_name="solar_azimuth_angle";
              string sol_azi:units="degree";
              string sol_azi:description="solar azimuth angle at the center of the FOV (clockwise from North)";
              string sol_azi:AIRS_HDF_name="solazi";

          float sun_glint_dist(atrack, xtrack, fov);
               float sun_glint_dist:valid_range=0.0,  30000000.0;
              string sun_glint_dist:long_name="sun glint distance";
              string sun_glint_dist:coordinates="lon lat";
               float sun_glint_dist:_FillValue=9.9692099683868690e+36f;
              string sun_glint_dist:coverage_content_type="referenceInformation";
              string sun_glint_dist:units="m";
              string sun_glint_dist:description="distance of sun glint spot to the center of the FOV";
              string sun_glint_dist:AIRS_HDF_name="sun_glint_distance";

          float view_ang(atrack, xtrack, fov);
               float view_ang:valid_range=0.0,  180.0;
              string view_ang:long_name="view angle";
              string view_ang:coordinates="lon lat";
               float view_ang:_FillValue=9.9692099683868690e+36f;
              string view_ang:coverage_content_type="referenceInformation";
              string view_ang:standard_name="sensor_view_angle";
              string view_ang:units="degree";
              string view_ang:description="off nadir pointing angle";
              string view_ang:AIRS_HDF_name="scanang";

          float sat_zen(atrack, xtrack, fov);
               float sat_zen:valid_range=0.0,  180.0;
              string sat_zen:long_name="satellite zenith angle";
              string sat_zen:coordinates="lon lat";
               float sat_zen:_FillValue=9.9692099683868690e+36f;
              string sat_zen:coverage_content_type="referenceInformation";
              string sat_zen:standard_name="sensor_zenith_angle";
              string sat_zen:units="degree";
              string sat_zen:description="satellite zenith angle at the center of the FOV";
              string sat_zen:AIRS_HDF_name="satzen";

          float sat_azi(atrack, xtrack, fov);
               float sat_azi:valid_range=0.0,  360.0;
              string sat_azi:long_name="satellite azimuth angle";
              string sat_azi:coordinates="lon lat";
               float sat_azi:_FillValue=9.9692099683868690e+36f;
              string sat_azi:coverage_content_type="referenceInformation";
              string sat_azi:standard_name="sensor_azimuth_angle";
              string sat_azi:units="degree";
              string sat_azi:description="satellite azimuth angle at the center of the FOV (clockwise from North)";
              string sat_azi:AIRS_HDF_name="satazi";

          float sat_range(atrack, xtrack, fov);
               float sat_range:valid_range=1.0e5,  1.0e7;
              string sat_range:long_name="satellite range";
              string sat_range:coordinates="lon lat";
               float sat_range:_FillValue=9.9692099683868690e+36f;
              string sat_range:coverage_content_type="referenceInformation";
              string sat_range:units="m";
              string sat_range:description="line of sight distance between satellite and FOV center";

          ubyte asc_flag(atrack);
               ubyte asc_flag:valid_range=0,  1;
              string asc_flag:long_name="ascending orbit flag";
              string asc_flag:coordinates="subsat_lon subsat_lat";
               ubyte asc_flag:_FillValue=255ub;
               ubyte asc_flag:flag_values=0,  1;
              string asc_flag:coverage_content_type="referenceInformation";
              string asc_flag:description="ascending orbit flag: 1 if ascending, 0 descending";
              string asc_flag:AIRS_HDF_name="scan_node_type";
              string asc_flag:flag_meanings="descending ascending";

          float subsat_lat(atrack);  // standard_name platform_latitude is under review for a future CF version
               float subsat_lat:valid_range=-90.0,  90.0;
              string subsat_lat:long_name="sub-satellite latitude";
               float subsat_lat:_FillValue=9.9692099683868690e+36f;
              string subsat_lat:coverage_content_type="referenceInformation";
              string subsat_lat:standard_name="latitude";
              string subsat_lat:units="degrees_north";
              string subsat_lat:description="sub-satellite latitude at scan_mid_time";
              string subsat_lat:AIRS_HDF_name="sat_lat";

          float subsat_lon(atrack);  // standard_name platform_longitude is under review for a future CF version
               float subsat_lon:valid_range=-180.0,  180.0;
              string subsat_lon:long_name="sub-satellite longitude";
               float subsat_lon:_FillValue=9.9692099683868690e+36f;
              string subsat_lon:coverage_content_type="referenceInformation";
              string subsat_lon:standard_name="longitude";
              string subsat_lon:units="degrees_east";
              string subsat_lon:description="sub-satellite longitude at scan_mid_time";
              string subsat_lon:AIRS_HDF_name="sat_lon";

         double scan_mid_time(atrack);
              double scan_mid_time:valid_range=-2934835217.0,  3376598410.0;
              string scan_mid_time:long_name="midscan TAI93";
              string scan_mid_time:coordinates="subsat_lon subsat_lat";
              double scan_mid_time:_FillValue=9.9692099683868690e+36;
              string scan_mid_time:coverage_content_type="referenceInformation";
              string scan_mid_time:standard_name="time";
              string scan_mid_time:units="seconds since 1993-01-01 00:00";
              string scan_mid_time:description="TAI93 at  middle of earth scene scans";
              string scan_mid_time:AIRS_HDF_name="nadirTAI";

          float sat_alt(atrack);  // standard_name platform_altitude is under review for a future CF version
               float sat_alt:valid_range=1.0e5,  1.0e6;
              string sat_alt:long_name="satellite altitude";
              string sat_alt:coordinates="subsat_lon subsat_lat";
               float sat_alt:_FillValue=9.9692099683868690e+36f;
              string sat_alt:coverage_content_type="referenceInformation";
              string sat_alt:standard_name="altitude";
              string sat_alt:units="m";
              string sat_alt:description="satellite altitude with respect to earth model at scan_mid_time";
              string sat_alt:AIRS_HDF_name="satheight";

          float sat_pos(atrack, spatial);
              string sat_pos:long_name="satellite position";
              string sat_pos:coordinates="subsat_lon subsat_lat spatial_lbl";
               float sat_pos:_FillValue=9.9692099683868690e+36f;
              string sat_pos:coverage_content_type="referenceInformation";
              string sat_pos:units="m";
              string sat_pos:description="satellite ECR position at scan_mid_time";

          float sat_vel(atrack, spatial);
              string sat_vel:long_name="satellite velocity";
              string sat_vel:coordinates="subsat_lon subsat_lat spatial_lbl";
               float sat_vel:_FillValue=9.9692099683868690e+36f;
              string sat_vel:coverage_content_type="referenceInformation";
              string sat_vel:units="m s-1";
              string sat_vel:description="satellite ECR velocity at scan_mid_time";

          float sat_att(atrack, attitude);
               float sat_att:valid_range=-180.0,  180.0;
              string sat_att:long_name="satellite attitude";
              string sat_att:coordinates="subsat_lon subsat_lat attitude_lbl";
               float sat_att:_FillValue=9.9692099683868690e+36f;
              string sat_att:coverage_content_type="referenceInformation";
              string sat_att:units="degree";
              string sat_att:description="satellite attitude at scan_mid_time.  An orthogonal triad.  First element is angle about the +x (roll) ORB axis.  +x axis is positively oriented in the direction of orbital flight.  Second element is angle about +y (pitch) ORB axis.  +y axis is oriented normal to the orbit plane with the positive sense opposite to that of the orbit's angular momentum vector H.  Third element is angle about +z (yaw) axis.  +z axis is positively oriented Earthward parallel to the satellite radius vector R from the spacecraft center of mass to the center of the Earth.";

          float local_solar_time(atrack, xtrack, fov);
               float local_solar_time:valid_range=0.0,  24.0;
              string local_solar_time:long_name="local apparent solar time";
              string local_solar_time:coordinates="lon lat";
               float local_solar_time:_FillValue=9.9692099683868690e+36f;
              string local_solar_time:coverage_content_type="referenceInformation";
              string local_solar_time:units="hours";
              string local_solar_time:description="local apparent solar time in hours from midnight";

          float mean_anom_wrt_equat(atrack);
               float mean_anom_wrt_equat:valid_range=0.0,  360.0;
              string mean_anom_wrt_equat:long_name="mean anomaly with respect to the equator";
              string mean_anom_wrt_equat:coordinates="subsat_lon subsat_lat";
               float mean_anom_wrt_equat:_FillValue=9.9692099683868690e+36f;
              string mean_anom_wrt_equat:coverage_content_type="referenceInformation";
              string mean_anom_wrt_equat:units="degree";
              string mean_anom_wrt_equat:description="spacecraft mean anomaly measured with respect to the ascending node";

          float sat_sol_zen(atrack);
               float sat_sol_zen:valid_range=0.0,  180.0;
              string sat_sol_zen:long_name="satellite solar zenith";
              string sat_sol_zen:coordinates="subsat_lon subsat_lat";
               float sat_sol_zen:_FillValue=9.9692099683868690e+36f;
              string sat_sol_zen:coverage_content_type="referenceInformation";
              string sat_sol_zen:units="degree";
              string sat_sol_zen:description="solar zenith angle at the satellite";

          float sat_sol_azi(atrack);
               float sat_sol_azi:valid_range=0.0,  360.0;
              string sat_sol_azi:long_name="satellite solar azimuth";
              string sat_sol_azi:coordinates="subsat_lon subsat_lat";
               float sat_sol_azi:_FillValue=9.9692099683868690e+36f;
              string sat_sol_azi:coverage_content_type="referenceInformation";
              string sat_sol_azi:units="degree";
              string sat_sol_azi:description="solar azimuth angle at the satellite (clockwise from North)";

          float asc_node_lon;
               float asc_node_lon:valid_range=-180.0,  180.0;
              string asc_node_lon:long_name="ascending node";
               float asc_node_lon:_FillValue=9.9692099683868690e+36f;
              string asc_node_lon:coverage_content_type="referenceInformation";
              string asc_node_lon:units="degrees_east";
              string asc_node_lon:description="Longitude of the last ascending node of spacecraft orbit before time_coverage_end.";
              string asc_node_lon:AIRS_HDF_name="eq_x_longitude";

         double asc_node_tai93;
              double asc_node_tai93:valid_range=-2934835217.0,  3376598410.0;
              string asc_node_tai93:long_name="ascending node time";
              double asc_node_tai93:_FillValue=9.9692099683868690e+36;
              string asc_node_tai93:coverage_content_type="referenceInformation";
              string asc_node_tai93:units="seconds since 1993-01-01 00:00";
              string asc_node_tai93:description="TAI93 time of the last ascending node of spacecraft orbit before time_coverage_end.";
              string asc_node_tai93:AIRS_HDF_name="eq_x_tai";

          float asc_node_local_solar_time;
               float asc_node_local_solar_time:valid_range=0.0,  24.0;
              string asc_node_local_solar_time:long_name="local apparent solar time at the ascending node";
               float asc_node_local_solar_time:_FillValue=9.9692099683868690e+36f;
              string asc_node_local_solar_time:coverage_content_type="referenceInformation";
              string asc_node_local_solar_time:units="hours";
              string asc_node_local_solar_time:description="local apparent solar time at the last ascending node before time_coverage_end in hours from midnight";

          float solar_beta_angle;
               float solar_beta_angle:valid_range=-90.0,  90.0;
              string solar_beta_angle:long_name="beta angle";
               float solar_beta_angle:_FillValue=9.9692099683868690e+36f;
              string solar_beta_angle:coverage_content_type="referenceInformation";
              string solar_beta_angle:units="degree";
              string solar_beta_angle:description="Beta angle for the spacecraft orbit, determining the percentage of the orbit that the spacecraft is in direct sunlight.";

         string attitude_lbl(attitude);
              string attitude_lbl:long_name="rotational direction";
              string attitude_lbl:coverage_content_type="auxiliaryInformation";
              string attitude_lbl:description="list of rotational directions (roll, pitch, yaw)";

         string spatial_lbl(spatial);
              string spatial_lbl:long_name="spatial direction";
              string spatial_lbl:coverage_content_type="auxiliaryInformation";
              string spatial_lbl:description="list of spatial directions (X, Y, Z)";

         string utc_tuple_lbl(utc_tuple);
              string utc_tuple_lbl:long_name="UTC date/time parts";
              string utc_tuple_lbl:coverage_content_type="auxiliaryInformation";
              string utc_tuple_lbl:description="names of the elements of UTC when it is expressed as an array of integers year,month,day,hour,minute,second,millisecond,microsecond";

489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
          double rad_global_pcs(atrack, xtrack, fov, globalpc);
              string rad_global_pcs:ancillary_variables="rad_global_pcs_qc";
              string rad_global_pcs:long_name="longwave real spectral radiance principal component score";
              string rad_global_pcs:coordinates="lon lat";
              double rad_global_pcs:_FillValue=9.9692099683868690e+36;
              string rad_global_pcs:coverage_content_type="physicalMeasurement";
              string rad_global_pcs:units="1";
              string rad_global_pcs:description="real spectral radiance as global principal component scores";

          double rad_local_pcs(atrack, xtrack, fov, localpc);
              string rad_local_pcs:long_name="real spectral radiance principal component score";
              string rad_local_pcs:coordinates="lon lat";
              double rad_local_pcs:_FillValue=9.9692099683868690e+36;
              string rad_local_pcs:coverage_content_type="physicalMeasurement";
              string rad_local_pcs:units="1";
              string rad_local_pcs:description="real spectral radiance as local principal component scores";

          double rad_local_pcs_U(localpc, wnum);
              string rad_local_pcs_U:long_name="FIXME";
              double rad_local_pcs_U:_FillValue=9.9692099683868690e+36;
              string rad_local_pcs_U:units="mW/(m2 sr cm-1)";
              string rad_local_pcs_U:description="real spectral radiance local principal component";

          double rad_local_pcs_M(wnum);
              string rad_local_pcs_M:long_name="FIXME";
              double rad_local_pcs_M:_FillValue=9.9692099683868690e+36;
              string rad_local_pcs_M:units="mW/(m2 sr cm-1)";
              string rad_local_pcs_M:description="real spectral radiance local principal component mean";

          double rad_local_pcs_D(wnum);
              string rad_local_pcs_D:long_name="FIXME";
              double rad_local_pcs_D:_FillValue=9.9692099683868690e+36;
              string rad_local_pcs_D:units="1";
              string rad_local_pcs_D:description="real spectral radiance local eigenvalues";
RKGarcia's avatar
RKGarcia committed
523
524
525
526
527

            int cal_qualflag(atrack, xtrack, fov);
              string cal_qualflag:long_name="L1B quality flags";
              string cal_qualflag:coordinates="lon lat";
                 int cal_qualflag:_FillValue=-2147483647;
528
                 int cal_qualflag:flag_masks=1,  2,  4,  8,  16,  32,  64,
RKGarcia's avatar
RKGarcia committed
529
                                                        128,  256;
530
                 int cal_qualflag:flag_values=1,  2,  4,  8,  16,  32,  64,
RKGarcia's avatar
RKGarcia committed
531
532
533
534
535
536
537
538
539
                                                         128,  256;
              string cal_qualflag:coverage_content_type="qualityInformation";
              string cal_qualflag:description="per-observation L1B product quality";
              string cal_qualflag:flag_meanings="geo_quality_invalid  inv_instrument_temp excess_temp_drift fce_detected fce_correction_fail neon_cal_quality_flag isa_degraded_flag l1a_bit_trim_mismatch l1a_eight_sec_missing";

            int cal_lw_qualflag(atrack, xtrack, fov);
              string cal_lw_qualflag:long_name="LW quality flags";
              string cal_lw_qualflag:coordinates="lon lat";
                 int cal_lw_qualflag:_FillValue=-2147483647;
540
                 int cal_lw_qualflag:flag_masks=3,  3,  12,  12,  48,  48,
RKGarcia's avatar
RKGarcia committed
541
                                                           64,  128,  256,  512,  1024;
542
                 int cal_lw_qualflag:flag_values=1,  2,  4,  8,  16,
RKGarcia's avatar
RKGarcia committed
543
544
545
546
547
548
549
550
551
                                                            32,  64,  128,  256,  512,  1024;
              string cal_lw_qualflag:coverage_content_type="qualityInformation";
              string cal_lw_qualflag:description="per-observation L1B LW product quality";
              string cal_lw_qualflag:flag_meanings="quality_degraded quality_invalid rad_cal_qual_degraded rad_cal_qual_invalid spectral_cal_qual_degraded spectral_cal_qual_invalid imag_rad_anomaly lunar_intrusion l1a_missing_es ict_igm_outlier es_igm_spike_detect";

            int cal_mw_qualflag(atrack, xtrack, fov);
              string cal_mw_qualflag:long_name="MW quality flags";
              string cal_mw_qualflag:coordinates="lon lat";
                 int cal_mw_qualflag:_FillValue=-2147483647;
552
                 int cal_mw_qualflag:flag_masks=3,  3,  12,  12,  48,  48,
RKGarcia's avatar
RKGarcia committed
553
                                                           64,  128,  256,  512,  1024;
554
                 int cal_mw_qualflag:flag_values=1,  2,  4,  8,  16,
RKGarcia's avatar
RKGarcia committed
555
556
557
558
559
560
561
562
563
                                                            32,  64,  128,  256,  512,  1024;
              string cal_mw_qualflag:coverage_content_type="qualityInformation";
              string cal_mw_qualflag:description="per-observation L1B MW product quality";
              string cal_mw_qualflag:flag_meanings="quality_degraded quality_invalid rad_cal_qual_degraded rad_cal_qual_invalid spectral_cal_qual_degraded spectral_cal_qual_invalid imag_rad_anomaly lunar_intrusion l1a_missing_es ict_igm_outlier es_igm_spike_detect";

            int cal_sw_qualflag(atrack, xtrack, fov);
              string cal_sw_qualflag:long_name="SW quality flags";
              string cal_sw_qualflag:coordinates="lon lat";
                 int cal_sw_qualflag:_FillValue=-2147483647;
564
                 int cal_sw_qualflag:flag_masks=3,  3,  12,  12,  48,  48,
RKGarcia's avatar
RKGarcia committed
565
                                                           64,  128,  256,  512,  1024;
566
                 int cal_sw_qualflag:flag_values=1,  2,  4,  8,  16,
RKGarcia's avatar
RKGarcia committed
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
                                                            32,  64,  128,  256,  512,  1024;
              string cal_sw_qualflag:coverage_content_type="qualityInformation";
              string cal_sw_qualflag:description="per-observation L1B SW product quality";
              string cal_sw_qualflag:flag_meanings="quality_degraded quality_invalid rad_cal_qual_degraded rad_cal_qual_invalid spectral_cal_qual_degraded spectral_cal_qual_invalid imag_rad_anomaly lunar_intrusion l1a_missing_es ict_igm_outlier es_igm_spike_detect";

          ubyte scan_sweep_dir(xtrack);
               ubyte scan_sweep_dir:valid_range=0, 1;
              string scan_sweep_dir:long_name="sweep direction of FOVs within a scan";
               ubyte scan_sweep_dir:_FillValue=255ub;
               ubyte scan_sweep_dir:flag_values=0,  1;
              string scan_sweep_dir:coverage_content_type="auxiliaryInformation";
              string scan_sweep_dir:description="sweep direction of FOVs within a scan";
              string scan_sweep_dir:flag_meanings="forward reverse";

          ubyte for_num(xtrack);
               ubyte for_num:valid_range=1, 30;
              string for_num:long_name="field of regard number";
               ubyte for_num:_FillValue=255ub;
              string for_num:coverage_content_type="auxiliaryInformation";
              string for_num:units="1";
              string for_num:description="field of regard number";

          ubyte fov_num(fov);
               ubyte fov_num:valid_range=1, 9;
              string fov_num:long_name="field of view number";
               ubyte fov_num:_FillValue=255ub;
              string fov_num:coverage_content_type="auxiliaryInformation";
              string fov_num:units="1";
              string fov_num:description="field of view number";

597
598
599
600
601
602
603
604
         double wnum(wnum);
              double wnum:valid_range=648.75,  1096.25;
              string wnum:long_name="wavenumber";
              double wnum:_FillValue=9.9692099683868690e+36;
              string wnum:coverage_content_type="auxiliaryInformation";
              string wnum:standard_name="sensor_band_central_radiation_wavenumber";
              string wnum:units="cm-1";
              string wnum:description="wavenumber";
RKGarcia's avatar
RKGarcia committed
605
606
607
608

data:
     attitude_lbl="Roll", "Pitch", "Yaw";
     spatial_lbl="X", "Y", "Z";
609
     utc_tuple_lbl="year", "month", "day", "hour", "minute",
RKGarcia's avatar
RKGarcia committed
610
                        "second", "millisecond", "microsecond";
611
     scan_sweep_dir=0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0,
RKGarcia's avatar
RKGarcia committed
612
                         1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0;
613
614
     for_num=1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
                  14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0,
RKGarcia's avatar
RKGarcia committed
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
                  27.0, 28.0, 29.0, 30.0;
     fov_num=1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0;


     group: aux  {
     dimensions:
          sweep = 2;  // scan sweep direction: {forward, reverse}

     variables:
                 int geo_qualflag(atrack, xtrack, fov);
                   string geo_qualflag:long_name="geolocation quality flags";
                   string geo_qualflag:coordinates="lon lat";
                      int geo_qualflag:_FillValue=-2147483647;
                      int geo_qualflag:flag_masks=1,  2,  12,  12,  12,  16;
                      int geo_qualflag:flag_values=1,  2,  4,  8,  12,  16;
                   string geo_qualflag:coverage_content_type="qualityInformation";
                   string geo_qualflag:description="per-observation L1B geolocation quality";
                   string geo_qualflag:flag_meanings="obs_time_missing servo_error_missing scd_gap_sm scd_gap_md scd_gap_lg stale_utcpole";

              double max_opd_lw;
                   string max_opd_lw:long_name="maximum longwave optical path difference";
                   double max_opd_lw:_FillValue=9.9692099683868690e+36;
                   string max_opd_lw:coverage_content_type="qualityInformation";
                   string max_opd_lw:units="cm";
                   string max_opd_lw:description="maximum longwave optical path difference";

              double max_opd_mw;
                   string max_opd_mw:long_name="maximum midwave optical path difference";
                   double max_opd_mw:_FillValue=9.9692099683868690e+36;
                   string max_opd_mw:coverage_content_type="qualityInformation";
                   string max_opd_mw:units="cm";
                   string max_opd_mw:description="maximum midwave optical path difference";

              double max_opd_sw;
                   string max_opd_sw:long_name="maximum shortwave optical path difference";
                   double max_opd_sw:_FillValue=9.9692099683868690e+36;
                   string max_opd_sw:coverage_content_type="qualityInformation";
                   string max_opd_sw:units="cm";
                   string max_opd_sw:description="maximum shortwave optical path difference";

               short spectral_fold_point_lw;
                   string spectral_fold_point_lw:long_name="longwave spectral folding index";
                    short spectral_fold_point_lw:_FillValue=-32767s;
                   string spectral_fold_point_lw:coverage_content_type="auxiliaryInformation";
                   string spectral_fold_point_lw:units="1";
                   string spectral_fold_point_lw:description="one-based index for unfolding uncalibrated longwave spectrum into ascending wavenumbers";

               short spectral_fold_point_mw;
                   string spectral_fold_point_mw:long_name="midwave spectral folding index";
                    short spectral_fold_point_mw:_FillValue=-32767s;
                   string spectral_fold_point_mw:coverage_content_type="auxiliaryInformation";
                   string spectral_fold_point_mw:units="1";
                   string spectral_fold_point_mw:description="one-based index for unfolding uncalibrated midwave spectrum into ascending wavenumbers";

               short spectral_fold_point_sw;
                   string spectral_fold_point_sw:long_name="shortwave spectral folding index";
                    short spectral_fold_point_sw:_FillValue=-32767s;
                   string spectral_fold_point_sw:coverage_content_type="auxiliaryInformation";
                   string spectral_fold_point_sw:units="1";
                   string spectral_fold_point_sw:description="one-based index for unfolding uncalibrated shortwave spectrum into ascending wavenumbers";

              double measured_laser_wlen;
                   double measured_laser_wlen:valid_range=695.0,  850.0;
                   string measured_laser_wlen:long_name="measured metrology laser half-wavelengths";
                   double measured_laser_wlen:_FillValue=9.9692099683868690e+36;
                   string measured_laser_wlen:coverage_content_type="qualityInformation";
                   string measured_laser_wlen:units="nm";
                   string measured_laser_wlen:description="measured metrology laser half-wavelengths";

              double neon_wlen;
                   string neon_wlen:long_name="neon laser half-wavelengths";
                   double neon_wlen:_FillValue=9.9692099683868690e+36;
                   string neon_wlen:coverage_content_type="qualityInformation";
                   string neon_wlen:units="nm";
                   string neon_wlen:description="neon laser half-wavelengths";

              double pga_gain_lw(fov);
                   string pga_gain_lw:long_name="longwave PGA gain";
                   double pga_gain_lw:_FillValue=9.9692099683868690e+36;
                   string pga_gain_lw:coverage_content_type="auxiliaryInformation";
                   string pga_gain_lw:units="1";
                   string pga_gain_lw:description="longwave detector channel PGA electrical gain";

              double pga_gain_mw(fov);
                   string pga_gain_mw:long_name="midwave PGA gain";
                   double pga_gain_mw:_FillValue=9.9692099683868690e+36;
                   string pga_gain_mw:coverage_content_type="auxiliaryInformation";
                   string pga_gain_mw:units="1";
                   string pga_gain_mw:description="midwave detector channel PGA electrical gain";

              double pga_gain_sw(fov);
                   string pga_gain_sw:long_name="shortwave PGA gain";
                   double pga_gain_sw:_FillValue=9.9692099683868690e+36;
                   string pga_gain_sw:coverage_content_type="auxiliaryInformation";
                   string pga_gain_sw:units="1";
                   string pga_gain_sw:description="shortwave detector channel PGA electrical gain";

               ubyte cal_view_sweep_dir(sweep);
                    ubyte cal_view_sweep_dir:valid_range=0, 1;
                   string cal_view_sweep_dir:long_name="sweep direction of FOVs for ICT, DS, and resp";
                    ubyte cal_view_sweep_dir:_FillValue=255ub;
                    ubyte cal_view_sweep_dir:flag_values=0,  1;
                   string cal_view_sweep_dir:coverage_content_type="auxiliaryInformation";
                   string cal_view_sweep_dir:units="1";
                   string cal_view_sweep_dir:description="sweep direction of FOVs for ICT, DS, and resp";
                   string cal_view_sweep_dir:flag_meanings="forward reverse";

              double isa_laser_wlen;
                   double isa_laser_wlen:valid_range=695.0,  850.0;
                   string isa_laser_wlen:long_name="ISA matrix metrology laser half-wavelengths";
                   double isa_laser_wlen:_FillValue=9.9692099683868690e+36;
                   string isa_laser_wlen:coverage_content_type="qualityInformation";
                   string isa_laser_wlen:units="nm";
                   string isa_laser_wlen:description="ISA matrix metrology laser half-wavelengths";

               float ssm_baffle_corr_temp(atrack);
                   string ssm_baffle_corr_temp:long_name="ICT model, scan baffle temperature correction";
                    float ssm_baffle_corr_temp:_FillValue=9.9692099683868690e+36f;
                   string ssm_baffle_corr_temp:coverage_content_type="auxiliaryInformation";
                   string ssm_baffle_corr_temp:units="Kelvin";
                   string ssm_baffle_corr_temp:description="ICT radiometric model, modelled SSM baffle orbital offset";

               float earth_temp(atrack);
                   string earth_temp:long_name="ICT model, Earth temperature";
                    float earth_temp:_FillValue=9.9692099683868690e+36f;
                   string earth_temp:coverage_content_type="auxiliaryInformation";
                   string earth_temp:units="Kelvin";
                   string earth_temp:description="ICT radiometric model, assumed Earth temperature term from eng packet";

               float ict_prt1_temp(atrack);
                   string ict_prt1_temp:long_name="ICT PRT1 temperature";
                    float ict_prt1_temp:_FillValue=9.9692099683868690e+36f;
                   string ict_prt1_temp:coverage_content_type="auxiliaryInformation";
                   string ict_prt1_temp:units="Kelvin";
                   string ict_prt1_temp:description="ICT PRT1 temperature";

               float ict_prt2_temp(atrack);
                   string ict_prt2_temp:long_name="ICT PRT2 temperature";
                    float ict_prt2_temp:_FillValue=9.9692099683868690e+36f;
                   string ict_prt2_temp:coverage_content_type="auxiliaryInformation";
                   string ict_prt2_temp:units="Kelvin";
                   string ict_prt2_temp:description="ICT PRT2 temperature";

               float oma_struct_temp_1(atrack);
                   string oma_struct_temp_1:long_name="OMA temperature 1";
                    float oma_struct_temp_1:_FillValue=9.9692099683868690e+36f;
                   string oma_struct_temp_1:coverage_content_type="auxiliaryInformation";
                   string oma_struct_temp_1:units="Kelvin";
                   string oma_struct_temp_1:description="OMA structure temperature 1";

               float oma_struct_temp_2(atrack);
                   string oma_struct_temp_2:long_name="OMA temperature 2";
                    float oma_struct_temp_2:_FillValue=9.9692099683868690e+36f;
                   string oma_struct_temp_2:coverage_content_type="auxiliaryInformation";
                   string oma_struct_temp_2:units="Kelvin";
                   string oma_struct_temp_2:description="OMA structure temperature 2";

               float ssm_scan_mirror_temp(atrack);
                   string ssm_scan_mirror_temp:long_name="scan mirror temperature";
                    float ssm_scan_mirror_temp:_FillValue=9.9692099683868690e+36f;
                   string ssm_scan_mirror_temp:coverage_content_type="auxiliaryInformation";
                   string ssm_scan_mirror_temp:units="Kelvin";
                   string ssm_scan_mirror_temp:description="SSM scan mirror temperature";

               float bs_temp(atrack);
                   string bs_temp:long_name="beamsplitter temperature";
                    float bs_temp:_FillValue=9.9692099683868690e+36f;
                   string bs_temp:coverage_content_type="auxiliaryInformation";
                   string bs_temp:units="Kelvin";
                   string bs_temp:description="beamsplitter temperature";

               float ssm_baffle_temp(atrack);
                   string ssm_baffle_temp:long_name="SSM scan mirror baffle temperature";
                    float ssm_baffle_temp:_FillValue=9.9692099683868690e+36f;
                   string ssm_baffle_temp:coverage_content_type="auxiliaryInformation";
                   string ssm_baffle_temp:units="Kelvin";
                   string ssm_baffle_temp:description="SSM scan mirror baffle temperature including modelled orbital offset";

               float earth_vdc_lw(atrack, xtrack, fov);
                   string earth_vdc_lw:long_name="longwave Earth view DC level";
                   string earth_vdc_lw:coordinates="lon lat";
                    float earth_vdc_lw:_FillValue=9.9692099683868690e+36f;
                   string earth_vdc_lw:coverage_content_type="auxiliaryInformation";
                   string earth_vdc_lw:units="V";
                   string earth_vdc_lw:description="longwave Earth view DC level";

               float earth_vdc_mw(atrack, xtrack, fov);
                   string earth_vdc_mw:long_name="midwave Earth view DC level";
                   string earth_vdc_mw:coordinates="lon lat";
                    float earth_vdc_mw:_FillValue=9.9692099683868690e+36f;
                   string earth_vdc_mw:coverage_content_type="auxiliaryInformation";
                   string earth_vdc_mw:units="V";
                   string earth_vdc_mw:description="midwave Earth view DC level";

               float earth_vdc_sw(atrack, xtrack, fov);
                   string earth_vdc_sw:long_name="shortwave Earth view DC level";
                   string earth_vdc_sw:coordinates="lon lat";
                    float earth_vdc_sw:_FillValue=9.9692099683868690e+36f;
                   string earth_vdc_sw:coverage_content_type="auxiliaryInformation";
                   string earth_vdc_sw:units="V";
                   string earth_vdc_sw:description="shortwave Earth view DC level";

               float ict_vdc_lw(sweep, fov);
                   string ict_vdc_lw:long_name="longwave ICT DC level";
                    float ict_vdc_lw:_FillValue=9.9692099683868690e+36f;
                   string ict_vdc_lw:coverage_content_type="auxiliaryInformation";
                   string ict_vdc_lw:units="V";
                   string ict_vdc_lw:description="granule mean longwave ICT DC level";

               float ict_vdc_mw(sweep, fov);
                   string ict_vdc_mw:long_name="midwave ICT DC level";
                    float ict_vdc_mw:_FillValue=9.9692099683868690e+36f;
                   string ict_vdc_mw:coverage_content_type="auxiliaryInformation";
                   string ict_vdc_mw:units="V";
                   string ict_vdc_mw:description="granule mean midwave ICT DC level";

               float ict_vdc_sw(sweep, fov);
                   string ict_vdc_sw:long_name="shortwave ICT DC level";
                    float ict_vdc_sw:_FillValue=9.9692099683868690e+36f;
                   string ict_vdc_sw:coverage_content_type="auxiliaryInformation";
                   string ict_vdc_sw:units="V";
                   string ict_vdc_sw:description="granule mean shortwave ICT DC level";

               float space_vdc_lw(sweep, fov);
                   string space_vdc_lw:long_name="longwave space view DC level";
                    float space_vdc_lw:_FillValue=9.9692099683868690e+36f;
                   string space_vdc_lw:coverage_content_type="auxiliaryInformation";
                   string space_vdc_lw:units="V";
                   string space_vdc_lw:description="granule mean longwave space view DC level";

               float space_vdc_mw(sweep, fov);
                   string space_vdc_mw:long_name="midwave space view DC level";
                    float space_vdc_mw:_FillValue=9.9692099683868690e+36f;
                   string space_vdc_mw:coverage_content_type="auxiliaryInformation";
                   string space_vdc_mw:units="V";
                   string space_vdc_mw:description="granule mean midwave space view DC level";

               float space_vdc_sw(sweep, fov);
                   string space_vdc_sw:long_name="shortwave space view DC level";
                    float space_vdc_sw:_FillValue=9.9692099683868690e+36f;
                   string space_vdc_sw:coverage_content_type="auxiliaryInformation";
                   string space_vdc_sw:units="V";
                   string space_vdc_sw:description="granule mean shortwave space view DC level";

               short ict_moving_avg_width_lw(atrack, sweep, fov);
                   string ict_moving_avg_width_lw:long_name="longwave ICT moving average size";
                    short ict_moving_avg_width_lw:_FillValue=-32767s;
                   string ict_moving_avg_width_lw:coverage_content_type="auxiliaryInformation";
                   string ict_moving_avg_width_lw:units="1";
                   string ict_moving_avg_width_lw:description="longwave ICT moving average size";

               short ict_moving_avg_width_mw(atrack, sweep, fov);
                   string ict_moving_avg_width_mw:long_name="midwave ICT moving average size";
                    short ict_moving_avg_width_mw:_FillValue=-32767s;
                   string ict_moving_avg_width_mw:coverage_content_type="auxiliaryInformation";
                   string ict_moving_avg_width_mw:units="1";
                   string ict_moving_avg_width_mw:description="midwave ICT moving average size";

               short ict_moving_avg_width_sw(atrack, sweep, fov);
                   string ict_moving_avg_width_sw:long_name="shortwave ICT moving average size";
                    short ict_moving_avg_width_sw:_FillValue=-32767s;
                   string ict_moving_avg_width_sw:coverage_content_type="auxiliaryInformation";
                   string ict_moving_avg_width_sw:units="1";
                   string ict_moving_avg_width_sw:description="shortwave ICT moving average size";

               short space_moving_avg_width_lw(atrack, sweep, fov);
                   string space_moving_avg_width_lw:long_name="longwave space view moving average size";
                    short space_moving_avg_width_lw:_FillValue=-32767s;
                   string space_moving_avg_width_lw:coverage_content_type="auxiliaryInformation";
                   string space_moving_avg_width_lw:units="1";
                   string space_moving_avg_width_lw:description="longwave space view moving average size";

               short space_moving_avg_width_mw(atrack, sweep, fov);
                   string space_moving_avg_width_mw:long_name="midwave space view moving average size";
                    short space_moving_avg_width_mw:_FillValue=-32767s;
                   string space_moving_avg_width_mw:coverage_content_type="auxiliaryInformation";
                   string space_moving_avg_width_mw:units="1";
                   string space_moving_avg_width_mw:description="midwave space view moving average size";

               short space_moving_avg_width_sw(atrack, sweep, fov);
                   string space_moving_avg_width_sw:long_name="shortwave space view moving average size";
                    short space_moving_avg_width_sw:_FillValue=-32767s;
                   string space_moving_avg_width_sw:coverage_content_type="auxiliaryInformation";
                   string space_moving_avg_width_sw:units="1";
                   string space_moving_avg_width_sw:description="shortwave space view moving average size";

     } // aux
} // j1_l1b_cris_fsr