Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

pycama / src / PyCAMA_DDS2B_AAI_cfg.py @ 837:bc739dd2cd7c

History | View | Annotate | Download (174 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
use_abs_lat_max = True
19
use_pacific = False
20
use_center = True
21

    
22
sza_max = 85.0
23
abs_lat_max = 60.0
24
center_count = 240
25

    
26

    
27
# longitude selection over the pacific is always fun because of the dateline.
28
# This is the selection Jos uses, and this circumvents the issue.
29
# Only active if use_pacific is True
30
western_longitude = -180.0
31
eastern_longitude = -135.0
32

    
33
# Removed the 'world' L3 maps for the subset. Saves time.
34

    
35

    
36

    
37
# Unicode characters: http://www.fileformat.info/info/unicode/char/search.htm
38
from pycama import __version__
39

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