Project

General

Profile

PyCAMA_config_generator.py

Maarten Sneep, 11/23/2018 05:51 PM

Download (175 KB)

 
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3

    
4
import datetime
5
import plistlib
6
import sys
7

    
8
# Unicode characters: http://www.fileformat.info/info/unicode/char/search.htm
9
from pycama import __version__
10

    
11
if __name__ == "__main__":
12
    d = {
13
        'general_settings': {
14
            # 'actions' are the keys to extract certain information. These can be processing mode dependent.
15
            # currently defined actions are 'world', 'histogram', 'along_track', 'scatter', 'outline', 'events' and 'irradiance'
16
            'actions': {'NRTI': ['world', 'histogram', 'along_track',            'outline', 'events', 'irradiance'],
17
                        'OFFL': ['world', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance'],
18
                        'RPRO': ['world', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance'],
19
                        'TEST': ['world', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance'],
20
                        'OPER': ['world', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance']
21
                       },
22
            'histogram_bincount': 100,
23
            'include_data': False,
24
            'interval_duration': 'P1D', # default aggregation period is 1 day.
25
            'reference_time': 'ref', # 'start' (begin of granule), 'stop', 'end' (both end of granule), 'ref' (reference time), 'mid' (middle of granule)
26
            'spatial_resolution': 0.25,
27
            'synchronize': True,
28
            'full_synchronize': False,
29
            'pycama_version': __version__,
30
            'scanline_dimension': 'scanline',
31
            'warnings_limit': 5000, # when exceeding this limit an error is generated.
32
            # Optional: map configuration names to actual product mnemonics.
33
            # product_mapping': {'internal_name':'real_name'}
34
            'variables':
35
                [
36
                    {
37
                        'color_scale': 'nipy_spectral',
38
                        'data_range': [-90.0, 90.0],
39
                        'field_name': 'latitude',
40
                        'flag': False,
41
                        'log_range': False,
42
                        'primary_variable': 'latitude',
43
                        'histogram_bincount': 90,
44
                        'show': False,
45
                        'title': 'Latitude',
46
                        'units': "\u00B0N"
47
                    },
48
                    {
49
                        'color_scale': 'nipy_spectral',
50
                        'data_range': [0.0, 90.0],
51
                        'field_name': 'solar_zenith_angle',
52
                        'flag': False,
53
                        'log_range': False,
54
                        'primary_variable': 'solar_zenith_angle',
55
                        'histogram_bincount': 45,
56
                        'show': False,
57
                        'title': 'Solar zenith angle',
58
                        'units': "\u00B0"
59
                    },
60
                    {
61
                        'color_scale': 'nipy_spectral',
62
                        'data_range': [0.0, 90.0],
63
                        'field_name': 'viewing_zenith_angle',
64
                        'flag': False,
65
                        'log_range': False,
66
                        'primary_variable': 'viewing_zenith_angle',
67
                        'histogram_bincount': 45,
68
                        'show': False,
69
                        'title': 'Viewing zenith angle',
70
                        'units': "\u00B0"
71
                    },
72
                    {
73
                        'color_scale': 'nipy_spectral',
74
                        'data_range': [-180.0, 180.0],
75
                        'field_name': 'longitude',
76
                        'flag': False,
77
                        'log_range': False,
78
                        'primary_variable': 'longitude',
79
                        'show': False,
80
                        'internal_only': True,
81
                        'title': 'Longitude',
82
                        'units': "\u00B0E"
83
                    },
84
                    {
85
                        'color_scale': 'nipy_spectral',
86
                        'data_range': [0,2**32-1],
87
                        'field_name': 'processing_quality_flags',
88
                        'flag': True,
89
                        'log_range': False,
90
                        'primary_variable': 'processing_quality_flags',
91
                        'show': False,
92
                        'internal_only': True,
93
                        'title': 'Processing quality flags',
94
                        'units': ""
95
                    },
96
                    {
97
                        'color_scale': 'nipy_spectral',
98
                        'data_range': [0,256],
99
                        'field_name': 'geolocation_flags',
100
                        'flag': True,
101
                        'log_range': False,
102
                        'primary_variable': 'geolocation_flags',
103
                        'show': False,
104
                        'internal_only': True,
105
                        'title': 'Geolocation flags',
106
                        'units': ""
107
                    },
108
                    {
109
                        'color_scale': 'nipy_spectral',
110
                        'data_range': [0,256],
111
                        'field_name': 'surface_classification',
112
                        'flag': True,
113
                        'log_range': False,
114
                        'primary_variable': 'surface_classification',
115
                        'show': False,
116
                        'internal_only': True,
117
                        'title': 'Surface classification',
118
                        'units': ""
119
                    },
120
                    {
121
                        'color_scale': 'nipy_spectral',
122
                        'data_range': [0,360],
123
                        'field_name': 'solar_azimuth_angle',
124
                        'flag': True,
125
                        'log_range': False,
126
                        'primary_variable': 'solar_azimuth_angle',
127
                        'show': False,
128
                        'internal_only': True,
129
                        'title': 'Solar azimuth angle',
130
                        'units': "\u00B0"
131
                    },
132
                    {
133
                        'color_scale': 'nipy_spectral',
134
                        'data_range': [0,360],
135
                        'field_name': 'viewing_azimuth_angle',
136
                        'flag': True,
137
                        'log_range': False,
138
                        'primary_variable': 'viewing_azimuth_angle',
139
                        'show': False,
140
                        'internal_only': True,
141
                        'title': 'Viewing azimuth angle',
142
                        'units': "\u00B0"
143
                    },
144
                    {
145
                        'color_scale': 'nipy_spectral',
146
                        'data_range': [0.0,1.0],
147
                        'field_name': 'qa_value',
148
                        'flag': False,
149
                        'level3': False,
150
                        'include_scatter': False,
151
                        'log_range': False,
152
                        'primary_variable': 'qa_value',
153
                        'show': True,
154
                        'internal_only': False,
155
                        'title': 'QA value',
156
                        'units': "1",
157
                        'transformers':
158
                            [
159
                                {
160
                                    'class':'transform.Multiplier',
161
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
162
                                },
163
                            ]
164
                    }
165
                ]
166
            },
167
        'FRESCO': {
168
            'contact': 'Maarten Sneep',
169
            'contact_email': 'maarten.sneep@knmi.nl',
170
            'developer': 'KNMI',
171
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
172
            'variables':
173
                [
174
                    {
175
                        'color_scale': 'viridis',
176
                        'data_range': [100.0, 1100.0],
177
                        'field_name': 'cloud_pressure_crb',
178
                        'flag': False,
179
                        'log_range': False,
180
                        'primary_variable': 'cloud_pressure_crb',
181
                        'secondary_variable': 'cloud_fraction_crb',
182
                        'show': True,
183
                        'title': 'Cloud pressure',
184
                        'transformers':
185
                            [
186
                                {
187
                                    'class':'transform.Multiplier',
188
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
189
                                },
190
                            ],
191
                        'units': 'hPa'
192
                    },
193
                    {
194
                        'color_scale': 'nipy_spectral',
195
                        'data_range': [0.0, 150.0],
196
                        'field_name': 'cloud_pressure_crb_precision',
197
                        'flag': False,
198
                        'log_range': False,
199
                        'level3': False,
200
                        'include_scatter': False,
201
                        'primary_variable': 'cloud_pressure_crb_precision',
202
                        'secondary_variable': 'cloud_fraction_crb',
203
                        'show': True,
204
                        'title': 'Cloud pressure precision',
205
                        'transformers':
206
                            [
207
                                {
208
                                    'class':'transform.Multiplier',
209
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
210
                                },
211
                            ],
212
                        'units': 'hPa'
213
                    },
214
                    {
215
                        'color_scale': 'Blues_r',
216
                        'data_range': [0.0,1.1],
217
                        'map_range': [0.0,1.0],
218
                        'field_name': 'cloud_fraction_crb',
219
                        'flag': False,
220
                        'log_range': False,
221
                        'primary_variable': 'cloud_fraction_crb',
222
                        'show': True,
223
                        'title': 'Cloud fraction',
224
                        'units': '',
225
                        'transformers':
226
                            [
227
                                {
228
                                    'class': 'transform.ProcessingQualityFlagsFilter',
229
                                    'arguments': {'mask':0xff}
230
                                }
231
                            ],
232
                    },
233
                    {
234
                        'color_scale': 'nipy_spectral',
235
                        'data_range': [0.0,0.05],
236
                        'field_name': 'cloud_fraction_crb_precision',
237
                        'flag': False,
238
                        'log_range': False,
239
                        'primary_variable': 'cloud_fraction_crb_precision',
240
                        'level3': False,
241
                        'include_scatter': False,
242
                        'show': True,
243
                        'title': 'Cloud fraction precision',
244
                        'units': ''
245
                    },
246
                    {
247
                        'color_scale': 'viridis',
248
                        'data_range': [0.0,1.0],
249
                        'field_name': 'scene_albedo',
250
                        'flag': False,
251
                        'log_range': False,
252
                        'primary_variable': 'scene_albedo',
253
                        'show': True,
254
                        'title': 'Scene albedo',
255
                        'units': ''
256
                    },
257
                    {
258
                        'color_scale': 'nipy_spectral',
259
                        'data_range': [0.0,0.05],
260
                        'field_name': 'scene_albedo_precision',
261
                        'flag': False,
262
                        'log_range': False,
263
                        'primary_variable': 'scene_albedo_precision',
264
                        'level3': False,
265
                        'include_scatter': False,
266
                        'show': True,
267
                        'title': 'Scene albedo precision',
268
                        'units': ''
269
                    },
270
                    {
271
                        'color_scale': 'viridis',
272
                        'data_range': [300.0, 1100.0],
273
                        'field_name': 'apparent_scene_pressure',
274
                        'flag': False,
275
                        'log_range': False,
276
                        'primary_variable': 'apparent_scene_pressure',
277
                        'show': True,
278
                        'title': 'Apparent scene pressure',
279
                        'transformers':
280
                            [
281
                                {
282
                                    'class': 'transform.Multiplier',
283
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
284
                                }
285
                            ],
286
                        'units': 'hPa'
287
                    },
288
                    {
289
                        'color_scale': 'nipy_spectral',
290
                        'data_range': [0.0, 100.0],
291
                        'field_name': 'apparent_scene_pressure_precision',
292
                        'flag': False,
293
                        'log_range': False,
294
                        'primary_variable': 'apparent_scene_pressure_precision',
295
                        'level3': False,
296
                        'include_scatter': False,
297
                        'show': True,
298
                        'title': 'Apparent scene pressure precision',
299
                        'transformers':
300
                            [
301
                                {
302
                                    'class': 'transform.Multiplier',
303
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
304
                                }
305
                            ],
306
                        'units': 'hPa'
307
                    },
308
                    {
309
                        'color_scale': 'nipy_spectral',
310
                        'data_range': [0.0, 30.0],
311
                        'field_name': 'chi_square',
312
                        'flag': False,
313
                        'log_range': False,
314
                        'primary_variable': 'chi_square',
315
                        'level3': False,
316
                        'show': True,
317
                        'title': '\u03C7\u00B2',
318
                        'units': ''
319
                    },
320
                    {
321
                        'color_scale': 'nipy_spectral',
322
                        'data_range': [0, 12],
323
                        'field_name': 'number_of_iterations',
324
                        'flag': False,
325
                        'log_range': False,
326
                        'histogram_bincount': 13,
327
                        'primary_variable': 'number_of_iterations',
328
                        'level3': False,
329
                        'show': True,
330
                        'title': 'Number of iterations',
331
                        'units': ''
332
                    },
333
                    {
334
                        'color_scale': 'nipy_spectral',
335
                        'data_range': [0.0, 5e-8],
336
                        'field_name': 'fluorescence',
337
                        'flag': False,
338
                        'log_range': False,
339
                        'primary_variable': 'fluorescence',
340
                        'show': True,
341
                        'title': 'Fluorescence',
342
                        'transformers':
343
                            [
344
                                {
345
                                    'class': 'transform.Select',
346
                                    'arguments': {'dimension': -1, 'index':2, 'collapse':False}
347
                                }
348
                            ],
349
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
350
                    },
351
                    {
352
                        'color_scale': 'nipy_spectral',
353
                        'data_range': [0.0, 1e-8],
354
                        'field_name': 'fluorescence_precision',
355
                        'flag': False,
356
                        'log_range': False,
357
                        'primary_variable': 'fluorescence_precision',
358
                        'level3': False,
359
                        'include_scatter': False,
360
                        'show': True,
361
                        'title': 'Fluorescence precision',
362
                        'transformers':
363
                            [
364
                                {
365
                                    'class': 'transform.Select',
366
                                    'arguments': {'dimension': -1, 'index':2, 'collapse':False}
367
                                }
368
                            ],
369
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
370
                    },
371
                    {
372
                        'color_scale': 'nipy_spectral',
373
                        'data_range': [0.0, 5.0e4],
374
                        'field_name': 'chi_square_fluorescence',
375
                        'flag': False,
376
                        'log_range': False,
377
                        'primary_variable': 'chi_square_fluorescence',
378
                        'level3': False,
379
                        'show': True,
380
                        'title': '\u03C7\u00B2 of fluorescence retrieval',
381
                        'units': ''
382
                    },
383
                    {
384
                        'color_scale': 'nipy_spectral',
385
                        'data_range': [0.0, 10.0],
386
                        'field_name': 'degrees_of_freedom_fluorescence',
387
                        'flag': False,
388
                        'log_range': False,
389
                        'histogram_bincount': 21,
390
                        'primary_variable': 'degrees_of_freedom_fluorescence',
391
                        'show': True,
392
                        'level3': False,
393
                        'title': 'Degrees of freedom for signal of fluorescence retrieval',
394
                        'units': ''
395
                    },
396
                    {
397
                        'color_scale': 'nipy_spectral',
398
                        'data_range': [0, 30],
399
                        'field_name': 'number_of_spectral_points_in_retrieval',
400
                        'flag': False,
401
                        'log_range': False,
402
                        'histogram_bincount': 31,
403
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
404
                        'level3': False,
405
                        'show': True,
406
                        'title': 'Number of points in the spectrum',
407
                        'units': ''
408
                    },
409
                    {
410
                        'color_scale': 'seismic',
411
                        'data_range': [-0.04,0.04],
412
                        'field_name': 'wavelength_calibration_offset',
413
                        'flag': False,
414
                        'log_range': False,
415
                        'primary_variable': 'wavelength_calibration_offset',
416
                        'level3': False,
417
                        'show': True,
418
                        'title': 'Spectral offset (\u03BB(true) \u2212 \u03BB(nominal))',
419
                        'units': 'nm'
420
                    },
421
                    {
422
                        'color_scale': 'nipy_spectral',
423
                        'data_range': [0.0,0.005],
424
                        'field_name': 'wavelength_calibration_offset_precision',
425
                        'flag': False,
426
                        'log_range': False,
427
                        'primary_variable': 'wavelength_calibration_offset_precision',
428
                        'level3': False,
429
                        'include_scatter': False,
430
                        'show': True,
431
                        'title': 'Precision of spectral offset',
432
                        'units': 'nm'
433
                    },
434
                    {
435
                        'color_scale': 'nipy_spectral',
436
                        'data_range': [0.0, 5.0e4],
437
                        'field_name': 'wavelength_calibration_chi_square',
438
                        'flag': False,
439
                        'log_range': False,
440
                        'primary_variable': 'wavelength_calibration_chi_square',
441
                        'level3': False,
442
                        'show': True,
443
                        'title': '\u03C7\u00B2 of wavelength calibration',
444
                        'units': ''
445
                    },
446
                    {
447
                        'color_scale': 'seismic',
448
                        'data_range': [-0.1,0.1],
449
                        'field_name': 'wavelength_calibration_irradiance_offset',
450
                        'flag': False,
451
                        'log_range': False,
452
                        'primary_variable': 'wavelength_calibration_irradiance_offset',
453
                        'show': True,
454
                        'title': 'Spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
455
                        'units': 'nm'
456
                    },
457
                    {
458
                        'color_scale': 'nipy_spectral',
459
                        'data_range': [0.0,0.1],
460
                        'field_name': 'wavelength_calibration_irradiance_offset_precision',
461
                        'flag': False,
462
                        'log_range': False,
463
                        'primary_variable': 'wavelength_calibration_irradiance_offset_precision',
464
                        'show': True,
465
                        'title': 'Precision of spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
466
                        'units': 'nm'
467
                    },
468
                    {
469
                        'color_scale': 'nipy_spectral',
470
                        'data_range': [0.0,100.0],
471
                        'field_name': 'wavelength_calibration_irradiance_chi_square',
472
                        'flag': False,
473
                        'log_range': False,
474
                        'primary_variable': 'wavelength_calibration_irradiance_chi_square',
475
                        'show': True,
476
                        'title': '\u03C7\u00B2 of irradiance wavelength calibration',
477
                        'units': ''
478
                    }
479
                ]
480
            },
481
        'OMICLD': {
482
            'equivalent_product': 'FRESCO'
483
            },
484
        'O22CLD': {
485
            'equivalent_product': 'FRESCO'
486
            },
487
        'AER_AI': {
488
            'contact': 'Deborah Stein-Zweers',
489
            'contact_email': 'deborah.zweers-stein@knmi.nl',
490
            'developer': 'KNMI',
491
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
492
            'variables':
493
                [
494
                    {
495
                        'color_scale': 'nipy_spectral',
496
                        'data_range': [-5,7],
497
                        'map_range': [-3,5],
498
                        'field_name': 'aerosol_index_354_388',
499
                        'flag': False,
500
                        'log_range': False,
501
                        'primary_variable': 'aerosol_index_354_388',
502
                        'show': True,
503
                        'title': 'UV aerosol index (354/388 nm)',
504
                        'units': ''
505
                    },
506
                    {
507
                        'color_scale': 'nipy_spectral',
508
                        'data_range': [-5,7],
509
                        'map_range': [-3,5],
510
                        'field_name': 'aerosol_index_340_380',
511
                        'flag': False,
512
                        'log_range': False,
513
                        'primary_variable': 'aerosol_index_340_380',
514
                        'show': True,
515
                        'title': 'UV aerosol index (340/380 nm)',
516
                        'units': ''
517
                    },
518
                    {
519
                        'color_scale': 'nipy_spectral',
520
                        'data_range': [0,2],
521
                        'field_name': 'aerosol_index_354_388_precision',
522
                        'flag': False,
523
                        'log_range': False,
524
                        'level3': False,
525
                        'include_scatter': False,
526
                        'primary_variable': 'aerosol_index_354_388_precision',
527
                        'show': True,
528
                        'title': 'Precision of the UV aerosol index (354/388 nm)',
529
                        'units': ''
530
                    },
531
                    {
532
                        'color_scale': 'nipy_spectral',
533
                        'data_range': [0,2],
534
                        'field_name': 'aerosol_index_340_380_precision',
535
                        'flag': False,
536
                        'log_range': False,
537
                        'primary_variable': 'aerosol_index_340_380_precision',
538
                        'level3': False,
539
                        'include_scatter': False,
540
                        'show': True,
541
                        'title': 'Precision of the UV aerosol index (340/380 nm)',
542
                        'units': ''
543
                    },
544
                    {
545
                        'color_scale': 'nipy_spectral',
546
                        'data_range': [0, 50],
547
                        'field_name': 'number_of_spectral_points_in_retrieval',
548
                        'flag': False,
549
                        'log_range': False,
550
                        'level3': False,
551
                        'include_scatter': False,
552
                        'histogram_bincount': 51,
553
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
554
                        'show': True,
555
                        'title': 'Number of points in the spectrum',
556
                        'units': ''
557
                    },
558
                    {
559
                        'color_scale': 'seismic',
560
                        'data_range': [-0.04,0.04],
561
                        'field_name': 'wavelength_calibration_offset',
562
                        'flag': False,
563
                        'log_range': False,
564
                        'primary_variable': 'wavelength_calibration_offset',
565
                        'level3': False,
566
                        'show': True,
567
                        'title': 'Spectral offset (\u03BB(true) \u2212 \u03BB(nominal))',
568
                        'units': 'nm'
569
                    },
570
                    {
571
                        'color_scale': 'nipy_spectral',
572
                        'data_range': [0.0,0.001],
573
                        'field_name': 'wavelength_calibration_offset_precision',
574
                        'flag': False,
575
                        'level3': False,
576
                        'include_scatter': False,
577
                        'log_range': False,
578
                        'primary_variable': 'wavelength_calibration_offset_precision',
579
                        'show': True,
580
                        'title': 'Precision of spectral offset',
581
                        'units': 'nm'
582
                    },
583
                    {
584
                        'color_scale': 'nipy_spectral',
585
                        'data_range': [0.0, 2.5e6],
586
                        'field_name': 'wavelength_calibration_chi_square',
587
                        'flag': False,
588
                        'log_range': False,
589
                        'level3': False,
590
                        'primary_variable': 'wavelength_calibration_chi_square',
591
                        'show': True,
592
                        'title': '\u03C7\u00B2 of wavelength calibration',
593
                        'units': ''
594
                    },
595
                    {
596
                        'color_scale': 'seismic',
597
                        'data_range': [-0.1,0.1],
598
                        'field_name': 'wavelength_calibration_irradiance_offset',
599
                        'flag': False,
600
                        'log_range': False,
601
                        'primary_variable': 'wavelength_calibration_irradiance_offset',
602
                        'show': True,
603
                        'title': 'Spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
604
                        'units': 'nm'
605
                    },
606
                    {
607
                        'color_scale': 'nipy_spectral',
608
                        'data_range': [0.0,0.1],
609
                        'field_name': 'wavelength_calibration_irradiance_offset_precision',
610
                        'flag': False,
611
                        'log_range': False,
612
                        'primary_variable': 'wavelength_calibration_irradiance_offset_precision',
613
                        'show': True,
614
                        'title': 'Precision of spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
615
                        'units': 'nm'
616
                    },
617
                    {
618
                        'color_scale': 'nipy_spectral',
619
                        'data_range': [0.0,100.0],
620
                        'field_name': 'wavelength_calibration_irradiance_chi_square',
621
                        'flag': False,
622
                        'log_range': False,
623
                        'primary_variable': 'wavelength_calibration_irradiance_chi_square',
624
                        'show': True,
625
                        'title': '\u03C7\u00B2 of irradiance wavelength calibration',
626
                        'units': ''
627
                    }
628
                ]
629
            },
630
        'AER_LH': {
631
            'contact': 'Martin de Graaf',
632
            'contact_email': 'martin.de.graaf@knmi.nl',
633
            'developer': 'KNMI',
634
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
635
            'full_synchronize': True,
636
            'variables':
637
                [
638
                    {
639
                        'color_scale': 'nipy_spectral',
640
                        'data_range': [100.0, 1100.0],
641
                        'field_name': 'aerosol_mid_pressure',
642
                        'flag': False,
643
                        'log_range': False,
644
                        'primary_variable': 'aerosol_mid_pressure',
645
                        'show': True,
646
                        'title': 'Aerosol mid pressure',
647
                        'transformers':
648
                            [
649
                                {
650
                                    'class': 'transform.Multiplier',
651
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
652
                                }
653
                            ],
654
                        'units': 'hPa'
655
                    },
656
                    {
657
                        'color_scale': 'nipy_spectral',
658
                        'data_range': [0.0, 400.0],
659
                        'field_name': 'aerosol_mid_pressure_precision',
660
                        'flag': False,
661
                        'log_range': False,
662
                        'level3': False,
663
                        'include_scatter': False,
664
                        'primary_variable': 'aerosol_mid_pressure_precision',
665
                        'show': True,
666
                        'title': 'Aerosol mid pressure precision',
667
                        'transformers':
668
                            [
669
                                {
670
                                    'class': 'transform.Multiplier',
671
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
672
                                }
673
                            ],
674
                        'units': 'hPa'
675
                    },
676
                    {
677
                        'color_scale': 'nipy_spectral',
678
                        'data_range': [0, 100],
679
                        'field_name': 'number_of_spectral_points_in_retrieval',
680
                        'flag': False,
681
                        'log_range': False,
682
                        'histogram_bincount': 101,
683
                        'level3': False,
684
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
685
                        'show': True,
686
                        'title': 'Number of points in the spectrum',
687
                        'units': ''
688
                    },
689
                    {
690
                        'color_scale': 'nipy_spectral',
691
                        'data_range': [0, 10],
692
                        'field_name': 'number_of_iterations',
693
                        'flag': False,
694
                        'log_range': False,
695
                        'histogram_bincount': 11,
696
                        'level3': False,
697
                        'include_scatter': False,
698
                        'primary_variable': 'number_of_iterations',
699
                        'show': True,
700
                        'title': 'Number of iterations',
701
                        'units': ''
702
                    },
703
                    {
704
                        'color_scale': 'nipy_spectral',
705
                        'data_range': [0.0, 10.0],
706
                        'field_name': 'degrees_of_freedom',
707
                        'flag': False,
708
                        'log_range': False,
709
                        'primary_variable': 'degrees_of_freedom',
710
                        'level3': False,
711
                        'include_scatter': False,
712
                        'show': True,
713
                        'title': 'Degrees of freedom for signal',
714
                        'units': ''
715
                    },
716
                    {
717
                        'color_scale': 'nipy_spectral',
718
                        'data_range': [0.0, 200.0],
719
                        'field_name': 'root_mean_square_error_of_fit',
720
                        'flag': False,
721
                        'log_range': False,
722
                        'level3': False,
723
                        'primary_variable': 'root_mean_square_error_of_fit',
724
                        'show': True,
725
                        'title': 'RMS deviation of fit',
726
                        'units': ''
727
                    },
728
                    {
729
                        'color_scale': 'nipy_spectral',
730
                        'data_range': [0.0, 100.0],
731
                        'field_name': 'chi_square',
732
                        'flag': False,
733
                        'log_range': False,
734
                        'primary_variable': 'chi_square',
735
                        'level3': False,
736
                        'show': True,
737
                        'title': '\u03C7\u00B2',
738
                        'units': ''
739
                    },
740
                    {
741
                        'color_scale': 'nipy_spectral',
742
                        'data_range': [0.0, 100.0],
743
                        'field_name': 'chi_square_reflectance',
744
                        'flag': False,
745
                        'log_range': False,
746
                        'primary_variable': 'chi_square_reflectance',
747
                        'level3': False,
748
                        'show': True,
749
                        'title': '\u03C7\u00B2 of reflectance',
750
                        'units': ''
751
                    },
752
                    {
753
                        'color_scale': 'nipy_spectral',
754
                        'data_range': [0.0, 100.0],
755
                        'field_name': 'chi_squared_statevector',
756
                        'flag': False,
757
                        'log_range': False,
758
                        'level3': False,
759
                        'primary_variable': 'chi_squared_statevector',
760
                        'show': True,
761
                        'title': '\u03C7\u00B2 of state vector',
762
                        'units': ''
763
                    }
764
                ]
765
            },
766
        'CH4___': {
767
            'contact': 'Jochen Landgraf',
768
            'contact_email': 'J.Landgraf@sron.nl',
769
            'developer': 'KNMI',
770
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
771
            'variables':
772
                [
773
                    {
774
                        'color_scale': 'nipy_spectral',
775
                        'data_range': [1500.0, 2000.0],
776
                        'field_name': 'methane_mixing_ratio',
777
                        'flag': False,
778
                        'log_range': False,
779
                        'primary_variable': 'methane_mixing_ratio',
780
                        'show': True,
781
                        'title': 'Mole fraction of CH\u2084',
782
                        'units': 'parts per 10\u2079'
783
                    },
784
                    {
785
                        'color_scale': 'nipy_spectral',
786
                        'data_range': [0.0, 20.0],
787
                        'field_name': 'methane_mixing_ratio_precision',
788
                        'flag': False,
789
                        'log_range': False,
790
                        'primary_variable': 'methane_mixing_ratio_precision',
791
                        'show': True,
792
                        'title': 'Precision of mole fraction of CH\u2084',
793
                        'units': 'parts per 10\u2079'
794
                    },
795
                    {
796
                        'color_scale': 'nipy_spectral',
797
                        'data_range': [0.0, 20.0],
798
                        'field_name': 'dry_air_summation',
799
                        'flag': False,
800
                        'log_range': False,
801
                        'primary_variable': 'dry_air_subcolumns',
802
                        'show': False,
803
                        'title': 'Dry air summation',
804
                        'units': 'parts per 10\u2079',
805
                        'transformers': [
806
                            {
807
                                'class':'transform.Select',
808
                                'arguments': {'dimension': -1, 'sum': True}
809
                            }
810
                        ]
811
                    },
812
                    {
813
                        'color_scale': 'nipy_spectral',
814
                        'data_range': [0.0, 20.0],
815
                        'field_name': 'xch4_prior_summation',
816
                        'flag': False,
817
                        'log_range': False,
818
                        'primary_variable': 'methane_profile_apriori',
819
                        'show': False,
820
                        'title': 'Dry air summation',
821
                        'units': 'parts per 10\u2079',
822
                        'transformers': [
823
                            {
824
                                'class':'transform.Select',
825
                                'arguments': {'dimension': -1, 'sum': True}
826
                            }
827
                        ]
828
                    },
829
                    {
830
                        'color_scale': 'seismic',
831
                        'data_range': [-15.0, 15.0],
832
                        'field_name': 'XCH4_prior',
833
                        'flag': False,
834
                        'log_range': False,
835
                        'primary_variable': '(xch4_prior_summation/dry_air_summation)*1e9',
836
                        'show': False,
837
                        'title': '$\Delta$ XCH$_4$',
838
                        'units': '%'
839
                    },
840
                    {
841
                        'color_scale': 'seismic',
842
                        'data_range': [-15.0, 15.0],
843
                        'field_name': 'delta_XCH4',
844
                        'flag': False,
845
                        'log_range': False,
846
                        'primary_variable': '100*((methane_mixing_ratio/XCH4_prior)-1)',
847
                        'show': True,
848
                        'title': '$\Delta$ XCH$_4$',
849
                        'units': '%'
850
                    },
851
                    {
852
                        'color_scale': 'nipy_spectral',
853
                        'data_range': [0.0, 20.0],
854
                        'field_name': 'methane_mixing_ratio_precision',
855
                        'flag': False,
856
                        'log_range': False,
857
                        'primary_variable': 'methane_mixing_ratio_precision',
858
                        'show': True,
859
                        'title': 'Precision of mole fraction of CH\u2084',
860
                        'units': 'parts per 10\u2079'
861
                    },
862
                    {
863
                        'color_scale': 'nipy_spectral',
864
                        'data_range': [1500.0, 2000.0],
865
                        'field_name': 'methane_mixing_ratio_bias_corrected',
866
                        'flag': False,
867
                        'log_range': False,
868
                        'primary_variable': 'methane_mixing_ratio_bias_corrected',
869
                        'show': True,
870
                        'title': 'Bias corrected mole fraction of CH\u2084',
871
                        'units': 'parts per 10\u2079'
872
                    },
873
                    {
874
                        'color_scale': 'nipy_spectral',
875
                        'data_range': [500, 1000],
876
                        'field_name': 'number_of_spectral_points_in_retrieval',
877
                        'flag': False,
878
                        'log_range': False,
879
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
880
                        'show': True,
881
                        'level3': False,
882
                        'title': 'Number of points in the spectrum',
883
                        'units': ''
884
                    },
885
                    {
886
                        'color_scale': 'nipy_spectral',
887
                        'data_range': [0, 200],
888
                        'field_name': 'number_of_spectral_points_in_retrieval_NIR',
889
                        'flag': False,
890
                        'log_range': False,
891
                        'primary_variable': 'number_of_spectral_points_in_retrieval_NIR',
892
                        'show': True,
893
                        'level3': False,
894
                        'title': 'Number of points in the spectrum (NIR)',
895
                        'units': ''
896
                    },
897
                    {
898
                        'color_scale': 'seismic',
899
                        'data_range': [-0.1,0.1],
900
                        'field_name': 'wavelength_calibration_offset_SWIR',
901
                        'flag': False,
902
                        'log_range': False,
903
                        'primary_variable': 'wavelength_calibration_offset_SWIR',
904
                        'level3': False,
905
                        'show': True,
906
                        'title': 'Spectral offset SWIR (\u03BB(true) \u2212 \u03BB(nominal))',
907
                        'units': 'nm'
908
                    },
909
                    {
910
                        'color_scale': 'seismic',
911
                        'data_range': [-0.1,0.1],
912
                        'field_name': 'wavelength_calibration_offset_NIR',
913
                        'flag': False,
914
                        'log_range': False,
915
                        'primary_variable': 'wavelength_calibration_offset_NIR',
916
                        'show': True,
917
                        'level3': False,
918
                        'title': 'Spectral offset NIR (\u03BB(true) \u2212 \u03BB(nominal))',
919
                        'units': 'nm'
920
                    },
921
                    # {
922
                    #     'color_scale': 'nipy_spectral',
923
                    #     'data_range': [0.0, 10000.0],
924
                    #     'field_name': 'chi_square',
925
                    #     'flag': False,
926
                    #     'log_range': False,
927
                    #     'primary_variable': 'chi_square',
928
                    #     'show': True,
929
                    #     'title': '\u03C7\u00B2',
930
                    #     'units': ''
931
                    # },
932
                    {
933
                        'color_scale': 'nipy_spectral',
934
                        'data_range': [0.0, 10000.0],
935
                        'field_name': 'chi_square_SWIR',
936
                        'flag': False,
937
                        'log_range': False,
938
                        'primary_variable': 'chi_square_SWIR',
939
                        'show': True,
940
                        'level3': False,
941
                        'title': '\u03C7\u00B2 (SWIR)',
942
                        'units': ''
943
                    },
944
                    {
945
                        'color_scale': 'nipy_spectral',
946
                        'data_range': [0.0, 10000.0],
947
                        'field_name': 'chi_square_NIR',
948
                        'flag': False,
949
                        'log_range': False,
950
                        'primary_variable': 'chi_square_NIR',
951
                        'show': True,
952
                        'level3': False,
953
                        'title': '\u03C7\u00B2 (NIR)',
954
                        'units': ''
955
                    },
956
                    {
957
                        'color_scale': 'nipy_spectral',
958
                        'data_range': [5.0, 20.0],
959
                        'field_name': 'degrees_of_freedom',
960
                        'flag': False,
961
                        'log_range': False,
962
                        'primary_variable': 'degrees_of_freedom',
963
                        'show': True,
964
                        'level3': False,
965
                        'title': 'Degrees of freedom',
966
                        'units': ''
967
                    },
968
                    {
969
                        'color_scale': 'nipy_spectral',
970
                        'data_range': [0.0, 5.0],
971
                        'field_name': 'degrees_of_freedom_methane',
972
                        'flag': False,
973
                        'log_range': False,
974
                        'primary_variable': 'degrees_of_freedom_methane',
975
                        'show': True,
976
                        'level3': False,
977
                        'title': 'Degrees of freedom for CH\u2084',
978
                        'units': ''
979
                    },
980
                    {
981
                        'color_scale': 'nipy_spectral',
982
                        'data_range': [0.0, 5.0],
983
                        'field_name': 'degrees_of_freedom_aerosol',
984
                        'flag': False,
985
                        'log_range': False,
986
                        'primary_variable': 'degrees_of_freedom_aerosol',
987
                        'show': True,
988
                        'level3': False,
989
                        'title': 'Degrees of freedom for aerosol',
990
                        'units': ''
991
                    },
992
                    {
993
                        'color_scale': 'nipy_spectral',
994
                        'data_range': [0, 30],
995
                        'field_name': 'number_of_iterations',
996
                        'flag': False,
997
                        'log_range': False,
998
                        'primary_variable': 'number_of_iterations',
999
                        'histogram_bincount': 31,
1000
                        'level3': False,
1001
                        'show': True,
1002
                        'title': 'Number of iterations',
1003
                        'units': ''
1004
                    },
1005
                    {
1006
                        'color_scale': 'nipy_spectral',
1007
                        'data_range': [-1.0e-8, 1e-8],
1008
                        'field_name': 'fluorescence',
1009
                        'flag': False,
1010
                        'log_range': False,
1011
                        'primary_variable': 'fluorescence',
1012
                        'show': True,
1013
                        'title': 'Fluorescence',
1014
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
1015
                    },
1016
                    {
1017
                        'color_scale': 'nipy_spectral',
1018
                        'data_range': [-1.0e-8, 1e-8],
1019
                        'field_name': 'fluorescence_apriori',
1020
                        'flag': False,
1021
                        'log_range': False,
1022
                        'primary_variable': 'fluorescence_apriori',
1023
                        'show': True,
1024
                        'level3': False,
1025
                        'title': 'Fluorescence a priori',
1026
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
1027
                    }
1028
                ]
1029
            },
1030
        'CLOUD_': {
1031
            'contact': 'Ronny Lutz',
1032
            'contact_email': 'ronny.lutz@dlr.de',
1033
            'developer': 'DLR',
1034
            'developer_contact': 'mattia.pedergnana@dlr.de',
1035
            'variables':
1036
                [
1037
                    {
1038
                        'color_scale': 'Blues_r',
1039
                        'data_range': [0.0, 1.0],
1040
                        'field_name': 'cloud_fraction',
1041
                        'flag': False,
1042
                        'log_range': False,
1043
                        'primary_variable': 'cloud_fraction',
1044
                        'show': True,
1045
                        'title': 'Radiometric cloud fraction',
1046
                        'units': ''
1047
                    },
1048
                    {
1049
                        'color_scale': 'Reds',
1050
                        'data_range': [0.0,1E-3],
1051
                        'field_name': 'cloud_fraction_precision',
1052
                        'flag': False,
1053
                        'log_range': False,
1054
                        'primary_variable': 'cloud_fraction_precision',
1055
                        'show': True,
1056
                        'title': 'Precision of the radiometric cloud fraction',
1057
                        'units': ''
1058
                    },
1059
                    {
1060
                        'color_scale': 'jet_r',
1061
                        'data_range': [100.0, 1100.0],
1062
                        'field_name': 'cloud_top_pressure',
1063
                        'flag': False,
1064
                        'log_range': True,
1065
                        'primary_variable': 'cloud_top_pressure',
1066
                        'show': True,
1067
                        'title': 'Cloud top pressure',
1068
                        'units': 'hPa',
1069
                        'transformers':
1070
                        [
1071
                            {
1072
                                'class':'transform.Multiplier',
1073
                                'arguments': {'operator': '/', 'scalefactor': 100.0}
1074
                            }
1075
                        ],
1076
                    },
1077
                    {
1078
                        'color_scale': 'Reds',
1079
                        'data_range': [0.0, 75.0],
1080
                        'field_name': 'cloud_top_pressure_precision',
1081
                        'flag': False,
1082
                        'log_range': False,
1083
                        'primary_variable': 'cloud_top_pressure_precision',
1084
                        'show': True,
1085
                        'title': 'Cloud top pressure precision',
1086
                        'units': 'hPa',
1087
                        'transformers':
1088
                        [
1089
                            {
1090
                                'class':'transform.Multiplier',
1091
                                'arguments': {'operator': '/', 'scalefactor': 100.0}
1092
                            }
1093
                        ],
1094
                    },
1095
                    {
1096
                        'color_scale': 'jet',
1097
                        'data_range': [0.0, 1.5E4],
1098
                        'field_name': 'cloud_top_height',
1099
                        'flag': False,
1100
                        'log_range': False,
1101
                        'primary_variable': 'cloud_top_height',
1102
                        'show': True,
1103
                        'title': 'Cloud top height',
1104
                        'units': 'm',
1105
                    },
1106
                    {
1107
                        'color_scale': 'Reds',
1108
                        'data_range': [0.0, 1000.],
1109
                        'field_name': 'cloud_top_height_precision',
1110
                        'flag': False,
1111
                        'log_range': False,
1112
                        'primary_variable': 'cloud_top_height_precision',
1113
                        'show': True,
1114
                        'title': 'Cloud top height precision',
1115
                        'units': 'm',
1116
                    },
1117
                    {
1118
                        'color_scale': 'jet',
1119
                        'data_range': [0.0, 30.0],
1120
                        'field_name': 'cloud_optical_thickness',
1121
                        'flag': False,
1122
                        'log_range': False,
1123
                        'primary_variable': 'cloud_optical_thickness',
1124
                        'show': True,
1125
                        'title': 'Cloud optical thickness',
1126
                        'units': ''
1127
                    },
1128
                    {
1129
                        'color_scale': 'Reds',
1130
                        'data_range': [1.0, 2.0],
1131
                        'field_name': 'cloud_optical_thickness_precision',
1132
                        'flag': False,
1133
                        'log_range': False,
1134
                        'primary_variable': 'cloud_optical_thickness_precision',
1135
                        'show': True,
1136
                        'title': 'Cloud optical thickness precision',
1137
                        'units': ''
1138
                    },
1139
                    {
1140
                        'color_scale': 'Blues_r',
1141
                        'data_range': [0.0, 1.0],
1142
                        'field_name': 'cloud_fraction_crb',
1143
                        'flag': False,
1144
                        'log_range': False,
1145
                        'primary_variable': 'cloud_fraction_crb',
1146
                        'show': True,
1147
                        'title': 'Cloud fraction (CRB)',
1148
                        'units': ''
1149
                    },
1150
                    {
1151
                        'color_scale': 'Reds',
1152
                        'data_range': [0.0, 1E-3],
1153
                        'field_name': 'cloud_fraction_crb_precision',
1154
                        'flag': False,
1155
                        'log_range': False,
1156
                        'primary_variable': 'cloud_fraction_crb_precision',
1157
                        'show': True,
1158
                        'title': 'Precision of the cloud fraction (CRB)',
1159
                        'units': ''
1160
                    },
1161
                    {
1162
                        'color_scale': 'jet_r',
1163
                        'data_range': [100.0, 1100.0],
1164
                        'field_name': 'cloud_pressure_crb',
1165
                        'flag': False,
1166
                        'log_range': True,
1167
                        'primary_variable': 'cloud_pressure_crb',
1168
                        'show': True,
1169
                        'title': 'Cloud pressure (CRB)',
1170
                        'units': 'hPa',
1171
                        'transformers':
1172
                        [
1173
                            {
1174
                                'class':'transform.Multiplier',
1175
                                'arguments': {'operator': '/', 'scalefactor': 100.0}
1176
                            }
1177
                        ],
1178
                    },
1179
                    {
1180
                        'color_scale': 'Reds',
1181
                        'data_range': [0.0,75.0],
1182
                        'field_name': 'cloud_pressure_crb_precision',
1183
                        'flag': False,
1184
                        'log_range': False,
1185
                        'primary_variable': 'cloud_pressure_crb_precision',
1186
                        'show': True,
1187
                        'title': 'Cloud pressure precision (CRB)',
1188
                        'units': 'hPa',
1189
                        'transformers':
1190
                        [
1191
                            {
1192
                                'class':'transform.Multiplier',
1193
                                'arguments': {'operator': '/', 'scalefactor': 100.0}
1194
                            }
1195
                        ],
1196
                    },
1197
                    {
1198
                        'color_scale': 'jet',
1199
                        'data_range': [0.0, 1.5E4],
1200
                        'field_name': 'cloud_height_crb',
1201
                        'flag': False,
1202
                        'log_range': False,
1203
                        'primary_variable': 'cloud_height_crb',
1204
                        'show': True,
1205
                        'title': 'Cloud height (CRB)',
1206
                        'units': 'm',
1207
                    },
1208
                    {
1209
                        'color_scale': 'Reds',
1210
                        'data_range': [0.0, 1000.],
1211
                        'field_name': 'cloud_height_precision',
1212
                        'flag': False,
1213
                        'log_range': False,
1214
                        'primary_variable': 'cloud_height_crb_precision',
1215
                        'show': True,
1216
                        'title': 'Cloud height precision (CRB)',
1217
                        'units': 'm',
1218
                    },
1219
                    {
1220
                        'color_scale': 'Blues',
1221
                        'data_range': [0.0, 1.0],
1222
                        'field_name': 'cloud_albedo_crb',
1223
                        'flag': False,
1224
                        'log_range': False,
1225
                        'primary_variable': 'cloud_albedo_crb',
1226
                        'show': True,
1227
                        'title': 'Cloud albedo (CRB)',
1228
                        'units': ''
1229
                    },
1230
                    {
1231
                        'color_scale': 'Reds',
1232
                        'data_range': [0.0, 0.007],
1233
                        'field_name': 'cloud_albedo_crb_precision',
1234
                        'flag': False,
1235
                        'log_range': False,
1236
                        'primary_variable': 'cloud_albedo_crb_precision',
1237
                        'show': True,
1238
                        'title': 'Precision of the cloud albedo (CRB)',
1239
                        'units': ''
1240
                    },
1241
                    {
1242
                        'color_scale': 'Blues',
1243
                        'data_range': [0.0, 1.0],
1244
                        'field_name': 'surface_albedo_fitted',
1245
                        'flag': False,
1246
                        'log_range': False,
1247
                        'primary_variable': 'surface_albedo_fitted',
1248
                        'show': True,
1249
                        'include_scatter': False,
1250
                        'Level3': False,
1251
                        'title': 'Fitted surface albedo',
1252
                        'units': ''
1253
                    },
1254
                    {
1255
                        'color_scale': 'Reds',
1256
                        'data_range': [0.0, 0.005],
1257
                        'field_name': 'surface_albedo_fitted_precision',
1258
                        'flag': False,
1259
                        'log_range': False,
1260
                        'primary_variable': 'surface_albedo_fitted_precision',
1261
                        'show': True,
1262
                        'include_scatter': False,
1263
                        'Level3': False,
1264
                        'title': 'Precision of the fitted surface albedo',
1265
                        'units': ''
1266
                    },
1267
                    {
1268
                        'color_scale': 'Blues',
1269
                        'data_range': [0.0, 1.0],
1270
                        'field_name': 'surface_albedo_fitted_crb',
1271
                        'flag': False,
1272
                        'log_range': False,
1273
                        'primary_variable': 'surface_albedo_fitted_crb',
1274
                        'show': True,
1275
                        'include_scatter': False,
1276
                        'Level3': False,
1277
                        'title': 'Fitted surface albedo (CRB)',
1278
                        'units': ''
1279
                    },
1280
                    {
1281
                        'color_scale': 'Reds',
1282
                        'data_range': [0.0, 0.005],
1283
                        'field_name': 'surface_albedo_fitted_crb_precision',
1284
                        'flag': False,
1285
                        'log_range': False,
1286
                        'primary_variable': 'surface_albedo_fitted_crb_precision',
1287
                        'show': True,
1288
                        'include_scatter': False,
1289
                        'Level3': False,
1290
                        'title': 'Precision of the fitted surface albedo (CRB)',
1291
                        'units': ''
1292
                    },
1293
                    {
1294
                        'color_scale': 'nipy_spectral',
1295
                        'data_range': [0, 100],
1296
                        'field_name': 'number_of_iterations',
1297
                        'flag': False,
1298
                        'log_range': False,
1299
                        'histogram_bincount': 71,
1300
                        'primary_variable': 'number_of_iterations',
1301
                        'show': True,
1302
                        'include_scatter': False,
1303
                        'Level3': False,
1304
                        'title': 'Number of iterations for the wavelength calibration',
1305
                        'units': ''
1306
                    },
1307
                    {
1308
                        'color_scale': 'nipy_spectral',
1309
                        'data_range': [0, 1000],
1310
                        'field_name': 'calibration_subwindows_shift',
1311
                        'flag': False,
1312
                        'log_range': False,
1313
                        'primary_variable': 'calibration_subwindows_shift',
1314
                        'show': True,
1315
                        'title': 'Wavelength calibration subwindow shift',
1316
                        'units': 'nm'
1317
                    },
1318
                    {
1319
                        'color_scale': 'nipy_spectral',
1320
                        'data_range': [0, 1000],
1321
                        'field_name': 'calibration_subwindows_squeeze',
1322
                        'flag': False,
1323
                        'log_range': False,
1324
                        'primary_variable': 'calibration_subwindows_squeeze',
1325
                        'show': True,
1326
                        'title': 'Wavelength calibration subwindow squeeze',
1327
                        'units': ''
1328
                    },
1329
                    {
1330
                        'color_scale': 'nipy_spectral',
1331
                        'data_range': [0, 1000],
1332
                        'field_name': 'calibration_polynomial_coefficients',
1333
                        'flag': False,
1334
                        'log_range': False,
1335
                        'primary_variable': 'calibration_polynomial_coefficients',
1336
                        'show': True,
1337
                        'title': 'Wavelength calibration polynomian coefficients',
1338
                        'units': ''
1339
                    },
1340
                    {
1341
                        'color_scale': 'nipy_spectral',
1342
                        'data_range': [0, 1000],
1343
                        'field_name': 'calibration_subwindows_root_mean_square',
1344
                        'flag': False,
1345
                        'log_range': False,
1346
                        'primary_variable': 'calibration_subwindows_root_mean_square',
1347
                        'show': True,
1348
                        'title': 'Wavelength calibration subwindows RMS',
1349
                        'units': ''
1350
                    },
1351
                    {
1352
                        'color_scale': 'Reds',
1353
                        'data_range': [0., .1],
1354
                        'field_name': 'fitted_root_mean_square',
1355
                        'flag': False,
1356
                        'log_range': False,
1357
                        'primary_variable': 'fitted_root_mean_square',
1358
                        'show': True,
1359
                        'include_scatter': False,
1360
                        'title': 'RMS',
1361
                        'units': ''
1362
                    },{
1363
                        'color_scale': 'Reds_r',
1364
                        'data_range': [0, 5],
1365
                        'field_name': 'degrees_of_freedom',
1366
                        'flag': False,
1367
                        'log_range': False,
1368
                        'primary_variable': 'degrees_of_freedom',
1369
                        'show': True,
1370
                        'include_scatter': False,
1371
                        'title': 'Degrees of freedom',
1372
                        'units': ''
1373
                    },{
1374
                        'color_scale': 'Reds_r',
1375
                        'data_range': [2,12],
1376
                        'field_name': 'shannon_information_content',
1377
                        'flag': False,
1378
                        'log_range': False,
1379
                        'primary_variable': 'shannon_information_content',
1380
                        'show': True,
1381
                        'include_scatter': False,
1382
                        'title': 'Shannon information content',
1383
                        'units': ''
1384
                    },{
1385
                        'color_scale': 'Reds',
1386
                        'data_range': [0,3000],
1387
                        'field_name': 'condition_number',
1388
                        'flag': False,
1389
                        'log_range': False,
1390
                        'primary_variable': 'condition_number',
1391
                        'show': True,
1392
                        'include_scatter': False,
1393
                        'Level3': False,
1394
                        'title': 'Condition number',
1395
                        'units': ''
1396
                    },{
1397
                        'color_scale': 'Reds',
1398
                        'data_range': [5.0e-6, 4.0e-5],
1399
                        'field_name': 'regularization_parameter',
1400
                        'flag': False,
1401
                        'log_range': True,
1402
                        'primary_variable': 'regularization_parameter',
1403
                        'show': True,
1404
                        'include_scatter': False,
1405
                        'Level3': False,
1406
                        'title': 'Regularization parameter',
1407
                        'units': ''
1408
                    },{
1409
                        'color_scale': 'RdBu',
1410
                        'data_range': [-0.03, 0.03],
1411
                        'field_name': 'wavelength_shift',
1412
                        'flag': False,
1413
                        'log_range': False,
1414
                        'primary_variable': 'wavelength_shift',
1415
                        'show': True,
1416
                        'include_scatter': False,
1417
                        'Level3': False,
1418
                        'title': 'Fitting wavelength shift',
1419
                        'units': 'nm'
1420
                    }
1421
                    #,{
1422
                        #'color_scale': 'nipy_spectral',
1423
                        #'data_range': [0, 1000],
1424
                        #'field_name': 'fitting_squeeze',
1425
                        #'flag': False,
1426
                        #'log_range': False,
1427
                        #'primary_variable': 'fitting_squeeze',
1428
                        #'show': True,
1429
                        #'title': 'Fitting squeeze',
1430
                        #'units': ''
1431
                    #},{
1432
                        #'color_scale': 'nipy_spectral',
1433
                        #'data_range': [0, 1000],
1434
                        #'field_name': 'cost_function',
1435
                        #'flag': False,
1436
                        #'log_range': False,
1437
                        #'primary_variable': 'cost_function',
1438
                        #'show': True,
1439
                        #'title': 'Cost function',
1440
                        #'units': ''
1441
                    #}
1442
                ]
1443
            },
1444
        'CO____': {
1445
            'contact': 'Jochen Landgraf',
1446
            'contact_email': 'J.Landgraf@sron.nl',
1447
            'developer': 'KNMI',
1448
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
1449
            'variables':
1450
                [
1451
                    {
1452
                        'color_scale': 'nipy_spectral',
1453
                        'data_range': [0.01, 0.07],
1454
                        'field_name': 'carbonmonoxide_total_column',
1455
                        'flag': False,
1456
                        'log_range': False,
1457
                        'primary_variable': 'carbonmonoxide_total_column',
1458
                        'show': True,
1459
                        'title': 'CO total vertical column',
1460
                        'units': 'mol m\u207B\u00B2'
1461
                    },
1462
                    {
1463
                        'color_scale': 'nipy_spectral',
1464
                        'data_range': [0.0, 0.007],
1465
                        'field_name': 'carbonmonoxide_total_column_precision',
1466
                        'flag': False,
1467
                        'log_range': False,
1468
                        'primary_variable': 'carbonmonoxide_total_column_precision',
1469
                        'show': True,
1470
                        'level3': False,
1471
                        'title': 'CO total vertical column precision',
1472
                        'units': 'mol m\u207B\u00B2'
1473
                    },
1474
                    {
1475
                        'color_scale': 'nipy_spectral',
1476
                        'data_range': [0,200],
1477
                        'field_name': 'number_of_spectral_points_in_retrieval',
1478
                        'flag': False,
1479
                        'log_range': False,
1480
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
1481
                        'show': True,
1482
                        'level3': False,
1483
                        'title': 'Number of spectral points in retrieval',
1484
                        'units': ''
1485
                    },
1486
                    {
1487
                        'color_scale': 'nipy_spectral',
1488
                        'data_range': [0,4500],
1489
                        'field_name': 'chi_square',
1490
                        'flag': False,
1491
                        'log_range': False,
1492
                        'primary_variable': 'chi_square',
1493
                        'show': True,
1494
                        'level3': False,
1495
                        'title': '\u03C7\u00B2',
1496
                        'units': ''
1497
                    },
1498
                    {
1499
                        'color_scale': 'nipy_spectral',
1500
                        'data_range': [0,10],
1501
                        'field_name': 'degrees_of_freedom',
1502
                        'flag': False,
1503
                        'log_range': False,
1504
                        'primary_variable': 'degrees_of_freedom',
1505
                        'level3': False,
1506
                        'show': True,
1507
                        'title': 'Degrees of freedom for signal',
1508
                        'units': ''
1509
                    },
1510
                    {
1511
                        'color_scale': 'nipy_spectral',
1512
                        'data_range': [0,25],
1513
                        'field_name': 'number_of_iterations',
1514
                        'flag': False,
1515
                        'log_range': False,
1516
                        'primary_variable': 'number_of_iterations',
1517
                        'show': True,
1518
                        'level3': False,
1519
                        'title': 'Number of iterations',
1520
                        'histogram_bincount': 26,
1521
                        'units': ''
1522
                    }
1523
                ]
1524
            },
1525
        'HCHO__': {
1526
            'contact': 'Isabelle De Smedt',
1527
            'contact_email': 'isabelle.desmedt@aeronomie.be',
1528
            'developer': 'DLR',
1529
            'developer_contact': 'mattia.pedergnana@dlr.de',
1530
            'variables':
1531
                [
1532
                    {
1533
                        'color_scale': 'nipy_spectral',
1534
                        'data_range': [0.,5E-4],
1535
                        'field_name': 'formaldehyde_tropospheric_vertical_column',
1536
                        'flag': False,
1537
                        'log_range': False,
1538
                        'primary_variable': 'formaldehyde_tropospheric_vertical_column',
1539
                        'show': True,
1540
                        'title': 'HCHO vertical column',
1541
                        'units': 'mol m\u207B\u00B2'
1542
                    },
1543
                    {
1544
                        'color_scale': 'nipy_spectral',
1545
                        'data_range': [0.,5E-4],
1546
                        'field_name': 'formaldehyde_tropospheric_vertical_column_precision',
1547
                        'flag': False,
1548
                        'log_range': False,
1549
                        'primary_variable': 'formaldehyde_tropospheric_vertical_column_precision',
1550
                        'show': True,
1551
                        'title': 'HCHO vertical column precision',
1552
                        'units': 'mol m\u207B\u00B2'
1553
                    },
1554
                    {
1555
                        'color_scale': 'nipy_spectral',
1556
                        'data_range': [0.,1.5E-4],
1557
                        'field_name': 'formaldehyde_tropospheric_vertical_column_correction',
1558
                        'flag': False,
1559
                        'log_range': False,
1560
                        'primary_variable': 'formaldehyde_tropospheric_vertical_column_correction',
1561
                        'show': True,
1562
                        'title': 'HCHO vertical column correction',
1563
                        'units': 'mol m\u207B\u00B2'
1564
                    },
1565
                    {
1566
                        'color_scale': 'nipy_spectral',
1567
                        'data_range': [-5E-4,5E-4],
1568
                        'field_name': 'formaldehyde_slant_column_density',
1569
                        'flag': False,
1570
                        'log_range': False,
1571
                        'primary_variable': 'fitted_slant_columns',
1572
                        'show': True,
1573
                        'title': 'HCHO slant column',
1574
                        'units': 'mol m\u207B\u00B2',
1575
                        'transformers':
1576
                            [
1577
                                {
1578
                                    'class': 'transform.Select',
1579
                                    'arguments': {'dimension': -1, 'index': 0}
1580
                                }
1581
                            ]
1582
                    },
1583
                    {
1584
                        'color_scale': 'nipy_spectral',
1585
                        'data_range': [0.0,5E-4],
1586
                        'field_name': 'formaldehyde_slant_column_density_precision',
1587
                        'flag': False,
1588
                        'log_range': False,
1589
                        'primary_variable': 'fitted_slant_columns_precision',
1590
                        'show': True,
1591
                        'title': 'HCHO slant column precision',
1592
                        'units': 'mol m\u207B\u00B2',
1593
                        'transformers':
1594
                            [
1595
                                {
1596
                                    'class': 'transform.Select',
1597
                                    'arguments': {'dimension': -1, 'index': 0}
1598
                                }
1599
                            ]
1600
                    },
1601
                    {
1602
                        'color_scale': 'nipy_spectral',
1603
                        'data_range': [-5E-4,5E-4],
1604
                        'field_name': 'formaldehyde_slant_column_density_window1',
1605
                        'flag': False,
1606
                        'log_range': False,
1607
                        'primary_variable': 'fitted_slant_columns_win1',
1608
                        'show': True,
1609
                        'title': 'HCHO slant column (window1)',
1610
                        'units': 'mol m\u207B\u00B2',
1611
                        'transformers':
1612
                            [
1613
                                {
1614
                                    'class': 'transform.Select',
1615
                                    'arguments': {'dimension': -1, 'index': 6}
1616
                                }
1617
                            ]
1618
                    },
1619
                    {
1620
                        'color_scale': 'nipy_spectral',
1621
                        'data_range': [0.0,5E-4],
1622
                        'field_name': 'formaldehyde_slant_column_density_window1_precision',
1623
                        'flag': False,
1624
                        'log_range': False,
1625
                        'primary_variable': 'fitted_slant_columns_win1_precision',
1626
                        'show': True,
1627
                        'title': 'HCHO slant column precision (window1)',
1628
                        'units': 'mol m\u207B\u00B2',
1629
                        'transformers':
1630
                            [
1631
                                {
1632
                                    'class': 'transform.Select',
1633
                                    'arguments': {'dimension': -1, 'index': 6}
1634
                                }
1635
                            ]
1636
                    },
1637
                    {
1638
                        'color_scale': 'nipy_spectral',
1639
                        'data_range': [0.0,5.0],
1640
                        'field_name': 'formaldehyde_tropospheric_air_mass_factor',
1641
                        'flag': False,
1642
                        'log_range': False,
1643
                        'primary_variable': 'formaldehyde_tropospheric_air_mass_factor',
1644
                        'show': True,
1645
                        'title': 'Airmass factor total',
1646
                        'units': ''
1647
                    },
1648
                    {
1649
                        'color_scale': 'nipy_spectral',
1650
                        'data_range': [0.0,5.0],
1651
                        'field_name': 'formaldehyde_tropospheric_air_mass_factor_precision',
1652
                        'flag': False,
1653
                        'log_range': False,
1654
                        'primary_variable': 'formaldehyde_tropospheric_air_mass_factor_precision',
1655
                        'show': True,
1656
                        'title': 'Airmass factor total precision',
1657
                        'units': ''
1658
                    },
1659
                    {
1660
                        'color_scale': 'nipy_spectral',
1661
                        'data_range': [0.0,5.0],
1662
                        'field_name': 'formaldehyde_clear_air_mass_factor',
1663
                        'flag': False,
1664
                        'log_range': False,
1665
                        'primary_variable': 'formaldehyde_clear_air_mass_factor',
1666
                        'show': True,
1667
                        'title': 'Airmass factor clear',
1668
                        'units': ''
1669
                    },
1670
                    {
1671
                        'color_scale': 'nipy_spectral',
1672
                        'data_range': [0.0,5.0],
1673
                        'field_name': 'formaldehyde_cloudy_air_mass_factor',
1674
                        'flag': False,
1675
                        'log_range': False,
1676
                        'primary_variable': 'formaldehyde_cloudy_air_mass_factor',
1677
                        'show': True,
1678
                        'title': 'Airmass factor cloud',
1679
                        'units': ''
1680
                    },
1681
                    {
1682
                        'color_scale': 'nipy_spectral',
1683
                        'data_range': [0,5E-4],
1684
                        'field_name': 'integrated_formaldehyde_profile_apriori',
1685
                        'flag': False,
1686
                        'log_range': False,
1687
                        'primary_variable': 'formaldehyde_profile_apriori',
1688
                        'secondary_variable': 'surface_pressure',
1689
                        'show': True,
1690
                        'title': 'Integrated a priori HCHO profile',
1691
                        'transformers':
1692
                            [
1693
                                {
1694
                                    'class': 'transform.IntegratedColumn',
1695
                                    'arguments': {'dimension':-1,
1696
                                                  'coefficients_a':'read_from_file("tm5_constant_a")',
1697
                                                  'coefficients_b':'read_from_file("tm5_constant_b")'}
1698
                                }
1699
                            ],
1700
                        'units': 'mol m\u207B\u00B2'
1701
                    },
1702
                    {
1703
                        'color_scale': 'nipy_spectral',
1704
                        'data_range': [-0.02,0.02],
1705
                        'field_name': 'fitted_wavelength_radiance_shift',
1706
                        'flag': False,
1707
                        'log_range': False,
1708
                        'primary_variable': 'fitted_radiance_shift',
1709
                        'show': True,
1710
                        'title': 'DOAS fit wavelength shift',
1711
                        'units': 'nm'
1712
                    },
1713
                    {
1714
                        'color_scale': 'nipy_spectral',
1715
                        'data_range': [-5E-4,5E-4],
1716
                        'field_name': 'fitted_wavelength_radiance_squeeze',
1717
                        'flag': False,
1718
                        'log_range': False,
1719
                        'primary_variable': 'fitted_radiance_squeeze',
1720
                        'show': True,
1721
                        'title': 'DOAS fit wavelength squeeze',
1722
                        'units': ''
1723
                    },
1724
                    {
1725
                        'color_scale': 'nipy_spectral',
1726
                        'data_range': [0.0,5E-3],
1727
                        'field_name': 'fitted_root_mean_square',
1728
                        'flag': False,
1729
                        'log_range': False,
1730
                        'primary_variable': 'fitted_root_mean_square',
1731
                        'show': True,
1732
                        'title': 'DOAS fit RMS',
1733
                        'units': ''
1734
                    },
1735
                    {
1736
                        'color_scale': 'nipy_spectral',
1737
                        'data_range': [0.0,0.01],
1738
                        'field_name': 'fitted_root_mean_square_win1',
1739
                        'flag': False,
1740
                        'log_range': False,
1741
                        'primary_variable': 'fitted_root_mean_square_win1',
1742
                        'show': True,
1743
                        'title': 'DOAS fit RMS (first interval)',
1744
                        'units': ''
1745
                    },
1746
                   # {
1747
                   #     'color_scale': 'nipy_spectral',
1748
                   #     'data_range': [140,160],
1749
                   #     'histogram_bincount': 21,
1750
                   #     'field_name': 'number_of_spectral_points_in_retrieval',
1751
                   #     'flag': False,
1752
                   #     'log_range': False,
1753
                   #     'primary_variable': 'number_of_spectral_points_in_retrieval',
1754
                   #     'show': True,
1755
                   #     'include_scatter': False,
1756
                   #     'title': 'Number of spectral points',
1757
                   #     'units': ''
1758
                   # },
1759
                    {
1760
                        'color_scale': 'nipy_spectral',
1761
                        'data_range': [-0.1,0.1],
1762
                        'field_name': 'calibration_subwindows_shift',
1763
                        'flag': False,
1764
                        'log_range': False,
1765
                        'primary_variable': 'calibration_subwindows_shift',
1766
                        'show': True,
1767
                        'title': 'Wavelength calibration subwindows shift',
1768
                        'units': 'nm'
1769
                    },
1770
                    {
1771
                        'color_scale': 'nipy_spectral',
1772
                        'data_range': [-0.1,0.1],
1773
                        'field_name': 'calibration_subwindows_squeeze',
1774
                        'flag': False,
1775
                        'log_range': False,
1776
                        'primary_variable': 'calibration_subwindows_squeeze',
1777
                        'show': True,
1778
                        'title': 'Wavelength calibration subwindows squeeze',
1779
                        'units': ''
1780
                    },
1781
                    {
1782
                        'color_scale': 'nipy_spectral',
1783
                        'data_range': [-0.1,0.1],
1784
                        'field_name': 'calibration_polynomial_coefficients',
1785
                        'flag': False,
1786
                        'log_range': False,
1787
                        'primary_variable': 'calibration_polynomial_coefficients',
1788
                        'show': True,
1789
                        'title': 'Wavelength calibration polynomial coefficients',
1790
                        'units': ''
1791
                    },
1792
                    {
1793
                        'color_scale': 'nipy_spectral',
1794
                        'data_range': [-0.1,0.1],
1795
                        'field_name': 'calibration_subwindows_root_mean_square',
1796
                        'flag': False,
1797
                        'log_range': False,
1798
                        'primary_variable': 'calibration_subwindows_root_mean_square',
1799
                        'show': True,
1800
                        'title': 'Wavelength calibration subwindows RMS',
1801
                        'units': ''
1802
                    },
1803
                    {
1804
                        'color_scale': 'nipy_spectral',
1805
                        'data_range': [-0.1,0.1],
1806
                        'field_name': 'calibration_subwindows_shift_first_interval',
1807
                        'flag': False,
1808
                        'log_range': False,
1809
                        'primary_variable': 'calibration_subwindows_shift_first_interval',
1810
                        'show': True,
1811
                        'title': 'Wavelength calibration shift first interval',
1812
                        'units': 'nm'
1813
                    },
1814
                    {
1815
                        'color_scale': 'nipy_spectral',
1816
                        'data_range': [-0.1,0.1],
1817
                        'field_name': 'calibration_subwindows_squeeze_first_interval',
1818
                        'flag': False,
1819
                        'log_range': False,
1820
                        'primary_variable': 'calibration_subwindows_squeeze_first_interval',
1821
                        'show': True,
1822
                        'title': 'Wavelength calibration squeeze first interval',
1823
                        'units': ''
1824
                    },
1825
                    {
1826
                        'color_scale': 'nipy_spectral',
1827
                        'data_range': [-0.1,0.1],
1828
                        'field_name': 'calibration_polynomial_coefficients_first_interval',
1829
                        'flag': False,
1830
                        'log_range': False,
1831
                        'primary_variable': 'calibration_polynomial_coefficients_first_interval',
1832
                        'show': True,
1833
                        'title': 'Wavelength calibration polynomial first interval',
1834
                        'units': ''
1835
                    },
1836
                    {
1837
                        'color_scale': 'nipy_spectral',
1838
                        'data_range': [-0.1,0.1],
1839
                        'field_name': 'calibration_subwindows_rms_first_interval',
1840
                        'flag': False,
1841
                        'log_range': False,
1842
                        'primary_variable': 'calibration_subwindows_rms_first_interval',
1843
                        'show': True,
1844
                        'title': 'Wavelength calibration RMS first interval',
1845
                        'units': ''
1846
                    },
1847
                    #{
1848
                    #    'color_scale': 'nipy_spectral',
1849
                    #    'data_range': [200,300],
1850
                    #    'field_name': 'number_of_spectral_points_in_retrieval_win1',
1851
                    #    'flag': False,
1852
                    #    'log_range': False,
1853
                    #    'primary_variable': 'number_of_spectral_points_in_retrieval_win1',
1854
                    #    'show': True,
1855
                    #    'include_scatter': False,
1856
                    #    'title': 'Number of spectral points in first interval',
1857
                    #    'units': ''
1858
                    #},
1859
                    {
1860
                        'color_scale': 'nipy_spectral',
1861
                        'data_range': [-2E-3,2E-3],
1862
                        'field_name': 'formaldehyde_slant_column_corrected',
1863
                        'flag': False,
1864
                        'log_range': False,
1865
                        'primary_variable': 'formaldehyde_slant_column_corrected',
1866
                        'show': False,
1867
                        'title': 'HCHO slant column corrected',
1868
                        'units': ''
1869
                    },
1870
                    {
1871
                        'color_scale': 'nipy_spectral',
1872
                        'data_range': [0,5E-4],
1873
                        'field_name': 'formaldehyde_slant_column_correction',
1874
                        'flag': False,
1875
                        'log_range': False,
1876
                        'primary_variable': 'formaldehyde_slant_column_corrected - formaldehyde_slant_column_density',
1877
                        'show': True,
1878
                        'title': 'HCHO slant column correction',
1879
                        'units': 'mol m\u207B\u00B2'
1880
                    }
1881
                ]
1882
            },
1883
        'NO2___': {
1884
            'contact': 'Henk Eskes',
1885
            'contact_email': 'henk.eskes@knmi.nl',
1886
            'alternate_contact': 'Jos van Geffen',
1887
            'alternate_contact_email': 'jos.van.geffen@knmi.nl',
1888
            'developer': 'KNMI',
1889
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
1890
            'variables':
1891
                [
1892
                    {
1893
                        'color_scale': 'nipy_spectral',
1894
                        'data_range': [2.0e-07, 2.0e-4],
1895
                        'field_name': 'nitrogendioxide_tropospheric_column',
1896
                        'flag': False,
1897
                        'log_range': True,
1898
                        'primary_variable': 'nitrogendioxide_tropospheric_column',
1899
                        'show': True,
1900
                        'title': 'NO\u2082 tropospheric vertical column',
1901
                        'units': 'mol m\u207B\u00B2'
1902
                    },
1903
                    {
1904
                        'color_scale': 'nipy_spectral',
1905
                        'data_range': [1.0e-06,1e-4],
1906
                        'field_name': 'nitrogendioxide_tropospheric_column_precision',
1907
                        'flag': False,
1908
                        'log_range': True,
1909
                        'level3': False,
1910
                        'primary_variable': 'nitrogendioxide_tropospheric_column_precision',
1911
                        'show': True,
1912
                        'title': 'NO\u2082 tropospheric vertical column precision',
1913
                        'units': 'mol m\u207B\u00B2'
1914
                    },
1915
                    {
1916
                        'color_scale': 'nipy_spectral',
1917
                        'data_range': [0.0, 12.0],
1918
                        'field_name': 'air_mass_factor_troposphere',
1919
                        'flag': False,
1920
                        'log_range': False,
1921
                        'level3': False,
1922
                        'primary_variable': 'air_mass_factor_troposphere',
1923
                        'show': True,
1924
                        'title': 'Tropospheric airmass factor',
1925
                        'units': ''
1926
                    },
1927
                    {
1928
                        'color_scale': 'nipy_spectral',
1929
                        'data_range': [0.0, 12.0],
1930
                        'field_name': 'air_mass_factor_total',
1931
                        'flag': False,
1932
                        'log_range': False,
1933
                        'level3': False,
1934
                        'primary_variable': 'air_mass_factor_total',
1935
                        'show': True,
1936
                        'title': 'Total airmass factor',
1937
                        'units': ''
1938
                    },
1939
                    {
1940
                        'color_scale': 'nipy_spectral',
1941
                        'data_range': [270, 310],
1942
                        'histogram_bincount': 41,
1943
                        'level3': False,
1944
                        'field_name': 'number_of_spectral_points_in_retrieval',
1945
                        'flag': False,
1946
                        'log_range': False,
1947
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
1948
                        'show': True,
1949
                        'include_scatter': False,
1950
                        'title': 'Number of spectral points in retrieval',
1951
                        'units': ''
1952
                    },
1953
                    {
1954
                        'color_scale': 'nipy_spectral',
1955
                        'data_range': [0,15],
1956
                        'field_name': 'number_of_iterations',
1957
                        'flag': False,
1958
                        'log_range': False,
1959
                        'primary_variable': 'number_of_iterations',
1960
                        'histogram_bincount': 16,
1961
                        'show': True,
1962
                        'include_scatter': False,
1963
                        'title': 'Number of iterations',
1964
                        'units': '1',
1965
                        'level3': False,
1966
                    },
1967
                    {
1968
                        'color_scale': 'seismic',
1969
                        'data_range': [-0.08,0.08],
1970
                        'field_name': 'wavelength_calibration_offset',
1971
                        'flag': False,
1972
                        'log_range': False,
1973
                        'primary_variable': 'wavelength_calibration_offset',
1974
                        'show': True,
1975
                        'title': 'Wavelength calibration offset',
1976
                        'units': 'nm'
1977
                    },
1978
                    {
1979
                        'color_scale': 'nipy_spectral',
1980
                        'data_range': [0.0, 0.001],
1981
                        'field_name': 'wavelength_calibration_offset_precision',
1982
                        'flag': False,
1983
                        'log_range': False,
1984
                        'level3': False,
1985
                        'primary_variable': 'wavelength_calibration_offset_precision',
1986
                        'show': True,
1987
                        'title': 'Wavelength calibration offset precision',
1988
                        'units': 'nm'
1989
                    },
1990
                    {
1991
                        'color_scale': 'nipy_spectral',
1992
                        'data_range': [2.0e2, 1.0e5],
1993
                        'field_name': 'wavelength_calibration_chi_square',
1994
                        'flag': False,
1995
                        'log_range': True,
1996
                        'primary_variable': 'wavelength_calibration_chi_square',
1997
                        'show': True,
1998
                        'level3': False,
1999
                        'title': 'Wavelength calibration \u03C7\u00B2',
2000
                        'units': ''
2001
                    },
2002
                    {
2003
                        'color_scale': 'nipy_spectral',
2004
                        'data_range': [0, 0.0001],
2005
                        'field_name': 'nitrogendioxide_stratospheric_column',
2006
                        'flag': False,
2007
                        'log_range': False,
2008
                        'primary_variable': 'nitrogendioxide_stratospheric_column',
2009
                        'show': True,
2010
                        'title': 'Stratospheric vertical NO\u2082 column',
2011
                        'units': ''
2012
                    },
2013
                    {
2014
                        'color_scale': 'nipy_spectral',
2015
                        'data_range': [0, 1e-5],
2016
                        'field_name': 'nitrogendioxide_stratospheric_column_precision',
2017
                        'flag': False,
2018
                        'level3': False,
2019
                        'log_range': False,
2020
                        'primary_variable': 'nitrogendioxide_stratospheric_column_precision',
2021
                        'show': True,
2022
                        'title': 'Stratospheric vertical NO\u2082 column precision',
2023
                        'units': ''
2024
                    },
2025
                    {
2026
                        'color_scale': 'nipy_spectral',
2027
                        'data_range': [5.0e-06, 5.0e-4],
2028
                        'field_name': 'nitrogendioxide_total_column',
2029
                        'flag': False,
2030
                        'log_range': True,
2031
                        'primary_variable': 'nitrogendioxide_total_column',
2032
                        'show': True,
2033
                        'title': 'Total vertical NO\u2082 column',
2034
                        'units': ''
2035
                    },
2036
                    {
2037
                        'color_scale': 'nipy_spectral',
2038
                        'data_range': [1e-6, 1e-4],
2039
                        'field_name': 'nitrogendioxide_total_column_precision',
2040
                        'level3': False,
2041
                        'flag': False,
2042
                        'log_range': True,
2043
                        'primary_variable': 'nitrogendioxide_total_column_precision',
2044
                        'show': True,
2045
                        'title': 'Total vertical NO\u2082 column precision',
2046
                        'units': ''
2047
                    },
2048
                    {
2049
                        'color_scale': 'nipy_spectral',
2050
                        'data_range': [5.0e-6, 5.0e-4],
2051
                        'field_name': 'nitrogendioxide_summed_total_column',
2052
                        'flag': False,
2053
                        'log_range': True,
2054
                        'primary_variable': 'nitrogendioxide_summed_total_column',
2055
                        'show': True,
2056
                        'title': 'Summed vertical NO\u2082 column',
2057
                        'units': ''
2058
                    },
2059
                    {
2060
                        'color_scale': 'nipy_spectral',
2061
                        'data_range': [1e-6, 1e-4],
2062
                        'level3': False,
2063
                        'field_name': 'nitrogendioxide_summed_total_column_precision',
2064
                        'flag': False,
2065
                        'log_range': True,
2066
                        'primary_variable': 'nitrogendioxide_summed_total_column_precision',
2067
                        'show': True,
2068
                        'title': 'Summed vertical NO\u2082 column precision',
2069
                        'units': ''
2070
                    },
2071
                    {
2072
                        'color_scale': 'nipy_spectral',
2073
                        'data_range': [0.0,2500],
2074
                        'field_name': 'chi_square',
2075
                        'flag': False,
2076
                        'log_range': False,
2077
                        'primary_variable': 'chi_square',
2078
                        'show': True,
2079
                        'title': '\u03C7\u00B2',
2080
                        'level3': False,
2081
                        'units': ''
2082
                    },
2083
                    {
2084
                        'color_scale': 'nipy_spectral',
2085
                        'data_range': [1.0e-5,1e-3],
2086
                        'field_name': 'root_mean_square_error_of_fit',
2087
                        'flag': False,
2088
                        'log_range': True,
2089
                        'primary_variable': 'root_mean_square_error_of_fit',
2090
                        'show': True,
2091
                        'title': 'RMS',
2092
                        'level3': False,
2093
                        'units': ''
2094
                    },
2095
                    {
2096
                        'color_scale': 'nipy_spectral',
2097
                        'data_range': [0,12],
2098
                        'field_name': 'air_mass_factor_stratosphere',
2099
                        'flag': False,
2100
                        'log_range': False,
2101
                        'primary_variable': 'air_mass_factor_stratosphere',
2102
                        'show': True,
2103
                        'level3': False,
2104
                        'title': 'Stratospheric airmass factor',
2105
                        'units': ''
2106
                    },
2107
                                        {
2108
                        'color_scale': 'seismic',
2109
                        'data_range': [-0.1,0.1],
2110
                        'field_name': 'wavelength_calibration_irradiance_offset',
2111
                        'flag': False,
2112
                        'log_range': False,
2113
                        'primary_variable': 'wavelength_calibration_irradiance_offset',
2114
                        'show': True,
2115
                        'title': 'Spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
2116
                        'units': 'nm'
2117
                    },
2118
                    {
2119
                        'color_scale': 'nipy_spectral',
2120
                        'data_range': [0.0,0.1],
2121
                        'field_name': 'wavelength_calibration_irradiance_offset_precision',
2122
                        'flag': False,
2123
                        'log_range': False,
2124
                        'primary_variable': 'wavelength_calibration_irradiance_offset_precision',
2125
                        'show': True,
2126
                        'title': 'Precision of spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
2127
                        'units': 'nm'
2128
                    },
2129
                    {
2130
                        'color_scale': 'nipy_spectral',
2131
                        'data_range': [0.0,100.0],
2132
                        'field_name': 'wavelength_calibration_irradiance_chi_square',
2133
                        'flag': False,
2134
                        'log_range': False,
2135
                        'primary_variable': 'wavelength_calibration_irradiance_chi_square',
2136
                        'show': True,
2137
                        'title': '\u03C7\u00B2 of irradiance wavelength calibration',
2138
                        'units': ''
2139
                    }
2140
                ]
2141
            },
2142
        'NP_BD6': {
2143
            'contact': 'Richard Siddans',
2144
            'contact_email': 'richard.siddans@stfc.ac.uk',
2145
            'developer': 'RAL',
2146
            'developer_contact': 'richard.siddans@stfc.ac.uk',
2147
            'variables':
2148
                [
2149
                    {
2150
                        'color_scale': 'viridis',
2151
                        'data_range': [-350,-150],
2152
                        'field_name': 'viirs_delta_time',
2153
                        'flag': False,
2154
                        'log_range': False,
2155
                        'primary_variable': 'viirs_delta_time',
2156
                        'show': True,
2157
                        'title': '$\Delta$ time',
2158
                        'units': 's'
2159
                    },
2160
                    {
2161
                        'color_scale': 'nipy_spectral',
2162
                        'data_range': [0,80],
2163
                        'field_name': 'viirs_viewing_zenith_angle',
2164
                        'flag': False,
2165
                        'log_range': False,
2166
                        'primary_variable': 'viirs_viewing_zenith_angle',
2167
                        'show': True,
2168
                        'title': 'VIIRS viewing zenith angle',
2169
                        'units': '\u00B0'
2170
                    },
2171
                    {
2172
                        'color_scale': 'nipy_spectral',
2173
                        'data_range': [0,600],
2174
                        'field_name': 'vcm_confidently_cloudy',
2175
                        'flag': False,
2176
                        'log_range': False,
2177
                        'primary_variable': 'vcm_confidently_cloudy',
2178
                        'show': False,
2179
                        'internal_only': True,
2180
                        'title': 'VIIRS cloud mask confidently cloud',
2181
                        'transformers':
2182
                            [
2183
                                {
2184
                                    'class': 'transform.Select',
2185
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2186
                                }
2187
                            ],
2188
                        'units': ''
2189
                    },
2190
                    {
2191
                        'color_scale': 'viridis',
2192
                        'data_range': [0,600],
2193
                        'field_name': 'vcm_probably_cloudy',
2194
                        'flag': False,
2195
                        'log_range': False,
2196
                        'primary_variable': 'vcm_probably_cloudy',
2197
                        'show': False,
2198
                        'internal_only': True,
2199
                        'title': 'VIIRS cloud mask probably cloudy',
2200
                        'transformers':
2201
                            [
2202
                                {
2203
                                    'class': 'transform.Select',
2204
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2205
                                }
2206
                            ],
2207
                        'units': ''
2208
                    },
2209
                    {
2210
                        'color_scale': 'viridis',
2211
                        'data_range': [0,600],
2212
                        'field_name': 'vcm_probably_clear',
2213
                        'flag': False,
2214
                        'log_range': False,
2215
                        'primary_variable': 'vcm_probably_clear',
2216
                        'show': False,
2217
                        'internal_only': True,
2218
                        'title': 'VIIRS cloud mask probably clear',
2219
                        'transformers':
2220
                            [
2221
                                {
2222
                                    'class':'transform.Select',
2223
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2224
                                }
2225
                            ],
2226
                        'units': ''
2227
                    },
2228
                    {
2229
                        'color_scale': 'viridis',
2230
                        'data_range': [0,600],
2231
                        'field_name': 'vcm_confidently_clear',
2232
                        'flag': False,
2233
                        'log_range': False,
2234
                        'primary_variable': 'vcm_confidently_clear',
2235
                        'show': False,
2236
                        'internal_only': True,
2237
                        'title': 'VIIRS cloud mask confidently clear',
2238
                        'transformers':
2239
                            [
2240
                                {
2241
                                    'class':'transform.Select',
2242
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2243
                                }
2244
                            ],
2245
                        'units': ''
2246
                    },
2247
                    {
2248
                        'color_scale': 'viridis',
2249
                        'data_range': [0,600],
2250
                        'field_name': 'vcm_nvalid',
2251
                        'flag': False,
2252
                        'log_range': False,
2253
                        'primary_variable': 'vcm_confidently_cloudy+vcm_probably_cloudy+vcm_probably_clear+vcm_confidently_clear',
2254
                        'show': True,
2255
                        'title': 'VIIRS cloud mask valid input',
2256
                        'units': ''
2257
                    },
2258
                    {
2259
                        'color_scale': 'viridis',
2260
                        'data_range': [0.0,1.0],
2261
                        'field_name': 'vcm_confidently_cloudy_fraction',
2262
                        'flag': False,
2263
                        'log_range': False,
2264
                        'primary_variable': 'vcm_confidently_cloudy/vcm_nvalid',
2265
                        'show': True,
2266
                        'title': 'VIIRS cloud mask confidently cloud',
2267
                        'units': ''
2268
                    },
2269
                    {
2270
                        'color_scale': 'viridis',
2271
                        'data_range': [0.0,1.0],
2272
                        'field_name': 'vcm_probably_cloudy_fraction',
2273
                        'flag': False,
2274
                        'log_range': False,
2275
                        'primary_variable': 'vcm_probably_cloudy/vcm_nvalid',
2276
                        'show': True,
2277
                        'title': 'VIIRS cloud mask probably cloudy',
2278
                        'units': ''
2279
                    },
2280
                    {
2281
                        'color_scale': 'viridis',
2282
                        'data_range': [0.0,1.0],
2283
                        'field_name': 'vcm_probably_clear_fraction',
2284
                        'flag': False,
2285
                        'log_range': False,
2286
                        'primary_variable': 'vcm_probably_clear/vcm_nvalid',
2287
                        'show': True,
2288
                        'title': 'VIIRS cloud mask probably clear',
2289
                        'units': ''
2290
                    },
2291
                    {
2292
                        'color_scale': 'viridis',
2293
                        'data_range': [0.0,1.0],
2294
                        'field_name': 'vcm_confidently_clear_fraction',
2295
                        'flag': False,
2296
                        'log_range': False,
2297
                        'primary_variable': 'vcm_confidently_clear/vcm_nvalid',
2298
                        'show': True,
2299
                        'title': 'VIIRS cloud mask confidently clear',
2300
                        'units': ''
2301
                    },
2302
                    {
2303
                        'color_scale': 'viridis',
2304
                        'data_range': [0.0,1.0],
2305
                        'field_name': 'band07_srf_mean',
2306
                        'flag': False,
2307
                        'log_range': False,
2308
                        'primary_variable': 'band07_srf_mean',
2309
                        'show': True,
2310
                        'title': 'Mean of valid VIIRS band M07 reflectance',
2311
                        'transformers':
2312
                            [
2313
                                {
2314
                                    'class': 'transform.SunNormalizedRadiance',
2315
                                    'arguments': {}
2316
                                }
2317
                            ],
2318
                        'units': ''
2319
                    },
2320
                    {
2321
                        'color_scale': 'viridis',
2322
                        'data_range': [0.0,1.0],
2323
                        'field_name': 'band09_srf_mean',
2324
                        'flag': False,
2325
                        'log_range': False,
2326
                        'primary_variable': 'band09_srf_mean',
2327
                        'show': True,
2328
                        'title': 'Mean of valid VIIRS band M09 reflectance',
2329
                        'transformers':
2330
                            [
2331
                                {
2332
                                    'class': 'transform.SunNormalizedRadiance',
2333
                                    'arguments': {}
2334
                                }
2335
                            ],
2336
                        'units': ''
2337
                    },
2338
                    {
2339
                        'color_scale': 'viridis',
2340
                        'data_range': [0.0,1.0],
2341
                        'field_name': 'band11_srf_mean',
2342
                        'flag': False,
2343
                        'log_range': False,
2344
                        'primary_variable': 'band11_srf_mean',
2345
                        'show': True,
2346
                        'title': 'Mean of valid VIIRS band M11 reflectance',
2347
                        'transformers':
2348
                            [
2349
                                {
2350
                                    'class': 'transform.SunNormalizedRadiance',
2351
                                    'arguments': {}
2352
                                }
2353
                            ],
2354
                        'units': ''
2355
                    },
2356
                    {
2357
                        'color_scale': 'viridis',
2358
                        'data_range': [0.0,1.0],
2359
                        'field_name': 'band07_fov_mean',
2360
                        'flag': False,
2361
                        'log_range': False,
2362
                        'primary_variable': 'band07_fov_mean',
2363
                        'show': True,
2364
                        'title': 'Mean of valid VIIRS band M07 reflectance in FOV',
2365
                        'transformers':
2366
                            [
2367
                                {
2368
                                    'class': 'transform.Select',
2369
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2370
                                },
2371
                                {
2372
                                    'class': 'transform.SunNormalizedRadiance',
2373
                                    'arguments': {}
2374
                                }
2375
                            ],
2376
                        'units': ''
2377
                    },
2378
                    {
2379
                        'color_scale': 'viridis',
2380
                        'data_range': [0.0,0.75],
2381
                        'field_name': 'band09_fov_mean',
2382
                        'flag': False,
2383
                        'log_range': False,
2384
                        'primary_variable': 'band09_fov_mean',
2385
                        'show': True,
2386
                        'title': 'Mean of valid VIIRS band M09 reflectance in FOV',
2387
                        'transformers':
2388
                            [
2389
                                {
2390
                                    'class': 'transform.Select',
2391
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2392
                                },
2393
                                {
2394
                                    'class': 'transform.SunNormalizedRadiance',
2395
                                    'arguments': {}
2396
                                }
2397
                            ],
2398
                        'units': ''
2399
                    },
2400
                    {
2401
                        'color_scale': 'viridis',
2402
                        'data_range': [0.0,0.5],
2403
                        'field_name': 'band11_fov_mean',
2404
                        'flag': False,
2405
                        'log_range': False,
2406
                        'primary_variable': 'band11_fov_mean',
2407
                        'show': True,
2408
                        'title': 'Mean of valid VIIRS band M11 reflectance in FOV',
2409
                        'transformers':
2410
                            [
2411
                                {
2412
                                    'class': 'transform.Select',
2413
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2414
                                },
2415
                                {
2416
                                    'class': 'transform.SunNormalizedRadiance',
2417
                                    'arguments': {}
2418
                                }
2419
                            ],
2420
                        'units': ''
2421
                    },
2422
                    {
2423
                        'color_scale': 'viridis',
2424
                        'data_range': [0.0,0.4],
2425
                        'field_name': 'band07_fov_stdev',
2426
                        'flag': False,
2427
                        'log_range': False,
2428
                        'primary_variable': 'band07_fov_stdev',
2429
                        'show': True,
2430
                        'title': 'Standard deviation of valid VIIRS band M07 reflectance in FOV',
2431
                        'transformers':
2432
                            [
2433
                                {
2434
                                    'class': 'transform.Select',
2435
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2436
                                },
2437
                                {
2438
                                    'class': 'transform.SunNormalizedRadiance',
2439
                                    'arguments': {}
2440
                                }
2441
                            ],
2442
                        'units': ''
2443
                    },
2444
                    {
2445
                        'color_scale': 'viridis',
2446
                        'data_range': [0.0,0.25],
2447
                        'field_name': 'band09_fov_stdev',
2448
                        'flag': False,
2449
                        'log_range': False,
2450
                        'primary_variable': 'band09_fov_stdev',
2451
                        'show': True,
2452
                        'title': 'Standard deviation of valid VIIRS band M09 reflectance in FOV',
2453
                        'transformers':
2454
                            [
2455
                                {
2456
                                    'class': 'transform.Select',
2457
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2458
                                },
2459
                                {
2460
                                    'class': 'transform.SunNormalizedRadiance',
2461
                                    'arguments': {}
2462
                                }
2463
                            ],
2464
                        'units': ''
2465
                    },
2466
                    {
2467
                        'color_scale': 'viridis',
2468
                        'data_range': [0.0,0.25],
2469
                        'field_name': 'band11_fov_stdev',
2470
                        'flag': False,
2471
                        'log_range': False,
2472
                        'primary_variable': 'band11_fov_stdev',
2473
                        'show': True,
2474
                        'title': 'Standard deviation of valid VIIRS band M11 reflectance in FOV',
2475
                        'transformers':
2476
                            [
2477
                                {
2478
                                    'class': 'transform.Select',
2479
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2480
                                },
2481
                                {
2482
                                    'class': 'transform.SunNormalizedRadiance',
2483
                                    'arguments': {}
2484
                                }
2485
                            ],
2486
                        'units': ''
2487
                    },
2488
                    {
2489
                        'color_scale': 'viridis',
2490
                        'data_range': [0,600],
2491
                        'field_name': 'band07_fov_nvalid',
2492
                        'flag': False,
2493
                        'log_range': False,
2494
                        'primary_variable': 'band07_fov_nvalid',
2495
                        'show': True,
2496
                        'title': 'Number of valid VIIRS band M07 pixels in FOV',
2497
                        'transformers':
2498
                            [
2499
                                {
2500
                                    'class': 'transform.Select',
2501
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2502
                                }
2503
                            ],
2504
                        'units': ''
2505
                    },
2506
                    {
2507
                        'color_scale': 'viridis',
2508
                        'data_range': [0,600],
2509
                        'field_name': 'band09_fov_nvalid',
2510
                        'flag': False,
2511
                        'log_range': False,
2512
                        'primary_variable': 'band09_fov_nvalid',
2513
                        'show': True,
2514
                        'title': 'Number of valid VIIRS band M09 pixels in FOV',
2515
                        'transformers':
2516
                            [
2517
                                {
2518
                                    'class': 'transform.Select',
2519
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2520
                                }
2521
                            ],
2522
                        'units': ''
2523
                    },
2524
                    {
2525
                        'color_scale': 'viridis',
2526
                        'data_range': [0,600],
2527
                        'field_name': 'band11_fov_nvalid',
2528
                        'flag': False,
2529
                        'log_range': False,
2530
                        'primary_variable': 'band11_fov_nvalid',
2531
                        'show': True,
2532
                        'title': 'Number of valid VIIRS band M11 pixels in FOV',
2533
                        'transformers':
2534
                            [
2535
                                {
2536
                                    'class': 'transform.Select',
2537
                                    'arguments': {'dimension': -1, 'index':0, 'collapse':False}
2538
                                }
2539
                            ],
2540
                        'units': ''
2541
                    },
2542
                    {
2543
                        'color_scale': 'viridis',
2544
                        'data_range': [0.95,1.0],
2545
                        'field_name': 'band07_srf_coverage',
2546
                        'flag': False,
2547
                        'log_range': False,
2548
                        'primary_variable': 'band07_srf_coverage',
2549
                        'show': True,
2550
                        'title': 'Fractional energy of SRF covered by valid VIIRS band M07 radiances',
2551
                        'units': ''
2552
                    },
2553
                    {
2554
                        'color_scale': 'viridis',
2555
                        'data_range': [0.95,1.0],
2556
                        'field_name': 'band09_srf_coverage',
2557
                        'flag': False,
2558
                        'log_range': False,
2559
                        'primary_variable': 'band09_srf_coverage',
2560
                        'show': True,
2561
                        'title': 'Fractional energy of SRF covered by valid VIIRS band M09 radiances',
2562
                        'units': ''
2563
                    },
2564
                    {
2565
                        'color_scale': 'viridis',
2566
                        'data_range': [0.95,1.0],
2567
                        'field_name': 'band11_srf_coverage',
2568
                        'flag': False,
2569
                        'log_range': False,
2570
                        'primary_variable': 'band11_srf_coverage',
2571
                        'show': True,
2572
                        'title': 'Fractional energy of SRF covered by valid VIIRS band M11 radiances',
2573
                        'units': ''
2574
                    }
2575
                ]
2576
            },
2577
        'NP_BD7': {
2578
            'equivalent_product': 'NP_BD6'
2579
            },
2580
        'NP_BD3': {
2581
            'equivalent_product': 'NP_BD6'
2582
            },
2583
        'O3_TCL': {
2584
            'contact': 'Klaus-Peter Heue',
2585
            'contact_email': 'Klaus-peter.heue@dlr.de',
2586
            'developer': 'DLR',
2587
            'developer_contact': 'mattia.pedergnana@dlr.de',
2588
            'do_not_process': True,
2589
            'actions': [],
2590
            'variables': []
2591
            },
2592
        'O3_TPR': {
2593
            'contact': 'Johan de Haan',
2594
            'contact_email': 'johan.de.haan@knmi.nl',
2595
            'developer': 'KNMI',
2596
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
2597
            'variables':
2598
                [
2599
                    {
2600
                        'color_scale': 'nipy_spectral',
2601
                        'data_range': [0,10],
2602
                        'field_name': 'number_of_iterations',
2603
                        'flag': False,
2604
                        'log_range': False,
2605
                        'primary_variable': 'number_of_iterations',
2606
                        'histogram_bincount':11,
2607
                        'show': True,
2608
                        'level3': False,
2609
                        'title': 'Number of iterations',
2610
                        'units': ''
2611
                    },
2612
                    {
2613
                        'color_scale': 'nipy_spectral',
2614
                        'data_range': [21,120],
2615
                        'field_name': 'number_of_spectral_points_in_retrieval',
2616
                        'histogram_bincount':100,
2617
                        'flag': False,
2618
                        'log_range': False,
2619
                        'level3': False,
2620
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
2621
                        'show': True,
2622
                        'title': 'Number of spectral points in retrieval',
2623
                        'units': ''
2624
                    },
2625
                    {
2626
                        'color_scale': 'nipy_spectral',
2627
                        'data_range': [0,2],
2628
                        'field_name': 'ozone_tropospheric_column',
2629
                        'flag': False,
2630
                        'log_range': False,
2631
                        'primary_variable': 'ozone_tropospheric_column',
2632
                        'show': True,
2633
                        'title': 'O\u2083 tropospheric column',
2634
                        'units': 'mol m\u207B\u00B2'
2635
                    },
2636
                    {
2637
                        'color_scale': 'nipy_spectral',
2638
                        'data_range': [0,1],
2639
                        'field_name': 'ozone_tropospheric_column_precision',
2640
                        'flag': False,
2641
                        'log_range': False,
2642
                        'level3': False,
2643
                        'primary_variable': 'ozone_tropospheric_column_precision',
2644
                        'show': True,
2645
                        'title': 'Precision of the O\u2083 tropospheric column',
2646
                        'units': 'mol m\u207B\u00B2'
2647
                    },
2648
                    {
2649
                        'color_scale': 'nipy_spectral',
2650
                        'data_range': [0,100],
2651
                        'field_name': 'root_mean_square_error_of_fit',
2652
                        'flag': False,
2653
                        'log_range': False,
2654
                        'primary_variable': 'root_mean_square_error_of_fit',
2655
                        'show': True,
2656
                        'level3': False,
2657
                        'title': 'RMS',
2658
                        'units': ''
2659
                    },
2660
                    {
2661
                        'color_scale': 'nipy_spectral',
2662
                        'data_range': [0,10],
2663
                        'field_name': 'degrees_of_freedom',
2664
                        'flag': False,
2665
                        'log_range': False,
2666
                        'primary_variable': 'degrees_of_freedom',
2667
                        'level3': False,
2668
                        'show': True,
2669
                        'title': 'Total degrees of freedom',
2670
                        'units': ''
2671
                    },
2672
                    {
2673
                        'color_scale': 'nipy_spectral',
2674
                        'data_range': [0,3],
2675
                        'field_name': 'degrees_of_freedom_ozone',
2676
                        'flag': False,
2677
                        'log_range': False,
2678
                        'primary_variable': 'degrees_of_freedom_ozone',
2679
                        'show': True,
2680
                        'title': 'Degrees of freedom for O\u2083',
2681
                        'units': ''
2682
                    },
2683
                    {
2684
                        'color_scale': 'nipy_spectral',
2685
                        'data_range': [0,3],
2686
                        'level3': False,
2687
                        'field_name': 'cost_function',
2688
                        'flag': False,
2689
                        'log_range': False,
2690
                        'primary_variable': 'cost_function',
2691
                        'show': True,
2692
                        'title': 'Cost function',
2693
                        'units': ''
2694
                    }
2695
                ]
2696
            },
2697
        'O3__PR': {
2698
                        'contact': 'Johan de Haan',
2699
            'contact_email': 'johan.de.haan@knmi.nl',
2700
            'developer': 'KNMI',
2701
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
2702
            'variables':
2703
                [
2704
                    {
2705
                        'color_scale': 'nipy_spectral',
2706
                        'data_range': [0,10],
2707
                        'field_name': 'number_of_iterations',
2708
                        'flag': False,
2709
                        'log_range': False,
2710
                        'primary_variable': 'number_of_iterations',
2711
                        'histogram_bincount':11,
2712
                        'level3': False,
2713
                        'show': True,
2714
                        'title': 'Number of iterations',
2715
                        'units': ''
2716
                    },
2717
                    {
2718
                        'color_scale': 'nipy_spectral',
2719
                        'data_range': [91,190],
2720
                        'level3': False,
2721
                        'field_name': 'number_of_spectral_points_in_retrieval',
2722
                        'histogram_bincount': 100,
2723
                        'flag': False,
2724
                        'log_range': False,
2725
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
2726
                        'show': True,
2727
                        'title': 'Number of spectral points in retrieval',
2728
                        'units': ''
2729
                    },
2730
                    {
2731
                        'color_scale': 'nipy_spectral',
2732
                        'data_range': [0,2],
2733
                        'field_name': 'ozone_total_column',
2734
                        'flag': False,
2735
                        'log_range': False,
2736
                        'primary_variable': 'ozone_total_column',
2737
                        'show': True,
2738
                        'title': 'O\u2083 total column',
2739
                        'units': 'mol m\u207B\u00B2'
2740
                    },
2741
                    {
2742
                        'color_scale': 'nipy_spectral',
2743
                        'data_range': [0,1],
2744
                        'level3': False,
2745
                        'field_name': 'ozone_total_column_precision',
2746
                        'flag': False,
2747
                        'log_range': False,
2748
                        'primary_variable': 'ozone_total_column_precision',
2749
                        'show': True,
2750
                        'title': 'Precision of the O\u2083 total column',
2751
                        'units': 'mol m\u207B\u00B2'
2752
                    },
2753
                    {
2754
                        'color_scale': 'nipy_spectral',
2755
                        'data_range': [0,2],
2756
                        'field_name': 'ozone_tropospheric_column',
2757
                        'flag': False,
2758
                        'log_range': False,
2759
                        'primary_variable': 'ozone_tropospheric_column',
2760
                        'show': True,
2761
                        'title': 'O\u2083 tropospheric column',
2762
                        'units': 'mol m\u207B\u00B2'
2763
                    },
2764
                    {
2765
                        'color_scale': 'nipy_spectral',
2766
                        'data_range': [0,1],
2767
                        'field_name': 'ozone_tropospheric_column_precision',
2768
                        'level3': False,
2769
                        'flag': False,
2770
                        'log_range': False,
2771
                        'primary_variable': 'ozone_tropospheric_column_precision',
2772
                        'show': True,
2773
                        'title': 'Precision of the O\u2083 tropospheric column',
2774
                        'units': 'mol m\u207B\u00B2'
2775
                    },
2776
                    {
2777
                        'color_scale': 'nipy_spectral',
2778
                        'data_range': [0,100],
2779
                        'field_name': 'root_mean_square_error_of_fit',
2780
                        'flag': False,
2781
                        'level3': False,
2782
                        'log_range': False,
2783
                        'primary_variable': 'root_mean_square_error_of_fit',
2784
                        'show': True,
2785
                        'title': 'RMS',
2786
                        'units': ''
2787
                    },
2788
                    {
2789
                        'color_scale': 'nipy_spectral',
2790
                        'data_range': [0,10],
2791
                        'field_name': 'degrees_of_freedom',
2792
                        'flag': False,
2793
                        'log_range': False,
2794
                        'primary_variable': 'degrees_of_freedom',
2795
                        'level3': False,
2796
                        'show': True,
2797
                        'title': 'Total degrees of freedom',
2798
                        'units': ''
2799
                    },
2800
                    {
2801
                        'color_scale': 'nipy_spectral',
2802
                        'data_range': [0,3],
2803
                        'field_name': 'degrees_of_freedom_ozone',
2804
                        'flag': False,
2805
                        'log_range': False,
2806
                        'primary_variable': 'degrees_of_freedom_ozone',
2807
                        'show': True,
2808
                        'title': 'Degrees of freedom for O\u2083',
2809
                        'units': ''
2810
                    },
2811
                    {
2812
                        'color_scale': 'nipy_spectral',
2813
                        'data_range': [0,3],
2814
                        'field_name': 'cost_function',
2815
                        'level3': False,
2816
                        'flag': False,
2817
                        'log_range': False,
2818
                        'primary_variable': 'cost_function',
2819
                        'show': True,
2820
                        'title': 'Cost function',
2821
                        'units': ''
2822
                    }
2823
                ]
2824
            },
2825
        'O3____': {
2826
            'contact': 'Klaus-Peter Heue',
2827
            'contact_email': 'klaus-peter.heue@dlr.de',
2828
            'developer': 'DLR',
2829
            'developer_contact': 'mattia.pedergnana@dlr.de',
2830
            'variables': [
2831
                    {
2832
                        'color_scale': 'nipy_spectral',
2833
                        'data_range': [0,0.3],
2834
                        'field_name': 'ozone_total_vertical_column',
2835
                        'flag': False,
2836
                        'log_range': False,
2837
                        'primary_variable': 'ozone_total_vertical_column',
2838
                        'show': True,
2839
                        'title': 'O\u2083 vertical column',
2840
                        'units': 'mol m\u207B\u00B2',
2841
                        'transformers':
2842
                            [
2843
                                {
2844
                                    'class': 'transform.ThresholdFilter',
2845
                                    'arguments': {'threshold': 10, 'comparison':">"}
2846
                                }
2847
                            ]
2848
                    },
2849
                    {
2850
                        'color_scale': 'nipy_spectral',
2851
                        'data_range': [0,0.03],
2852
                        'field_name': 'ozone_total_vertical_column_precision',
2853
                        'flag': False,
2854
                        'log_range': False,
2855
                        'primary_variable': 'ozone_total_vertical_column_precision',
2856
                        'show': True,
2857
                        'title': 'O\u2083 vertical column precision',
2858
                        'units': 'mol m\u207B\u00B2',
2859
                        'transformers':
2860
                            [
2861
                                {
2862
                                    'class': 'transform.ThresholdFilter',
2863
                                    'arguments': {'threshold': 10, 'comparison':">"}
2864
                                }
2865
                            ]
2866
                    },
2867
                    {
2868
                        'color_scale': 'nipy_spectral',
2869
                        'data_range': [0,1],
2870
                        'field_name': 'ozone_slant_column_density',
2871
                        'flag': False,
2872
                        'log_range': False,
2873
                        'primary_variable': 'fitted_slant_columns',
2874
                        'show': True,
2875
                        'title': 'O\u2083 slant column',
2876
                        'units': 'mol m\u207B\u00B2',
2877
                        'transformers':
2878
                            [
2879
                                {
2880
                                    'class': 'transform.Select',
2881
                                    'arguments': {'dimension': -1, 'index': 0}
2882
                                },
2883
                                {
2884
                                    'class': 'transform.ThresholdFilter',
2885
                                    'arguments': {'threshold': 20, 'comparison':">"}
2886
                                }
2887
                            ],
2888
                        'modes': ['NRTI']
2889
                    },
2890
                    {
2891
                        'color_scale': 'nipy_spectral',
2892
                        'data_range': [0,7E-3],
2893
                        'field_name': 'ozone_slant_column_precision',
2894
                        'flag': False,
2895
                        'log_range': False,
2896
                        'primary_variable': 'fitted_slant_columns_precision',
2897
                        'show': True,
2898
                        'title': 'O\u2083 slant column precision',
2899
                        'units': 'mol m\u207B\u00B2',
2900
                        'transformers':
2901
                            [
2902
                                {
2903
                                    'class': 'transform.Select',
2904
                                    'arguments': {'dimension': -1, 'index': 0}
2905
                                },
2906
                                {
2907
                                    'class': 'transform.ThresholdFilter',
2908
                                    'arguments': {'threshold': 20, 'comparison':">"}
2909
                                }
2910
                            ],
2911
                        'modes': ['NRTI']
2912
                    },
2913
                    {
2914
                        'color_scale': 'nipy_spectral',
2915
                        'data_range': [0,6],
2916
                        'field_name': 'number_of_iterations_slant_column',
2917
                        'flag': False,
2918
                        'log_range': False,
2919
                        'primary_variable': 'number_of_iterations_slant_column',
2920
                        'histogram_bincount': 21,
2921
                        'show': True,
2922
                        'include_scatter': False,
2923
                        'Level3': False,
2924
                        'title': 'Number of iterations for slant column retrieval',
2925
                        'units': '',
2926
                        'modes': ['NRTI']
2927
                    },
2928
                    {
2929
                        'color_scale': 'nipy_spectral',
2930
                        'data_range': [0,0.01],
2931
                        'field_name': 'root_mean_square_slant_column_fit',
2932
                        'flag': False,
2933
                        'log_range': False,
2934
                        'primary_variable': 'fitted_root_mean_square',
2935
                        'show': True,
2936
                        'include_scatter': False,
2937
                        'title': 'Fitting RMS',
2938
                        'units': ''
2939
                    },
2940
                    {
2941
                        'color_scale': 'nipy_spectral',
2942
                        'data_range': [-0.05,0.05],
2943
                        'field_name': 'fitted_radiance_shift',
2944
                        'flag'