Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

pycama / src / PyCAMA_DDS2B_AAI_cfg.py @ 824:986954e17594

History | View | Annotate | Download (173 KB)

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

    
4
import datetime
5
import plistlib
6
import sys
7

    
8
# Copy of the operational configuration script (PyCAMA_config_generator.py)
9
# This script modifies the standard configuration to select a range over the 
10
# Pacific with a in specific solar zenith angle ranges to provide a constant 
11
# background signal to identify radiance effects.
12

    
13
# Constants to more easily change the selection area
14

    
15
# when True use sza_max and a selection on the solar zenith angle
16
# otherwise use a symmetric latitude band
17
use_sza = True
18

    
19
sza_max = 60.0
20
abs_lat_max = 60.0
21

    
22
# longitude selection over the pacific is always fun because of the dateline.
23
# This is the selection Jos uses, and this circumvents the issue.
24
western_longitude = -180.0
25
eastern_longitude = -135.0
26

    
27
# Removed the 'world' L3 maps for the subset. Saves time.
28

    
29

    
30

    
31
# Unicode characters: http://www.fileformat.info/info/unicode/char/search.htm
32
from pycama import __version__
33

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