Project

General

Profile

Revision 824:986954e17594

ID986954e17594
Parent 823:809a0ab08949
Child 825:df28438350aa

Added by Maarten Sneep over 2 years ago

Add AAI specific config for DDS2B analysis

View differences:

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

  
4
import datetime
5
import plistlib
6
import sys
7

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

  
13
# Constants to more easily change the selection area
14

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

  
19
sza_max = 60.0
20
abs_lat_max = 60.0
21

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

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

  
29

  
30

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

  
34
if __name__ == "__main__":
35
    d = {
36
        'general_settings': {
37
            # 'actions' are the keys to extract certain information. These can be processing mode dependent.
38
            # currently defined actions are 'world', 'histogram', 'along_track', 'scatter', 'outline', 'events' and 'irradiance'
39
            'actions': {'NRTI': ['zonal', 'histogram', 'along_track',            'outline', 'events', 'irradiance'],
40
                        'OFFL': ['zonal', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance'],
41
                        'RPRO': ['zonal', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance'],
42
                        'TEST': ['zonal', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance'],
43
                        'OPER': ['zonal', 'histogram', 'along_track', 'scatter', 'outline', 'events', 'irradiance']
44
                       },
45
            'histogram_bincount': 100,
46
            'include_data': False,
47
            'interval_duration': 'P1D', # default aggregation period is 1 day.
48
            'reference_time': 'ref', # 'start' (begin of granule), 'stop', 'end' (both end of granule), 'ref' (reference time), 'mid' (middle of granule)
49
            'spatial_resolution': 0.25,
50
            'zonal_resolution': 1.0,
51
            'synchronize': True,
52
            'full_synchronize': False,
53
            'max_sza': 80.0,
54
            'pycama_version': __version__,
55
            'scanline_dimension': 'scanline',
56
            'warnings_limit': 5000, # when exceeding this limit an error is generated.
57
            # Optional: map configuration names to actual product mnemonics.
58
            # product_mapping': {'internal_name':'real_name'}
59
            'variables':
60
                [
61
                    {
62
                        'color_scale': 'nipy_spectral',
63
                        'data_range': [-90.0, 90.0],
64
                        'field_name': 'latitude',
65
                        'flag': False,
66
                        'log_range': False,
67
                        'primary_variable': 'latitude',
68
                        'histogram_bincount': 90,
69
                        'show': False,
70
                        'title': 'Latitude',
71
                        'units': "\u00B0N"
72
                    },
73
                    {
74
                        'color_scale': 'nipy_spectral',
75
                        'data_range': [0.0, 90.0],
76
                        'field_name': 'solar_zenith_angle',
77
                        'flag': False,
78
                        'log_range': False,
79
                        'primary_variable': 'solar_zenith_angle',
80
                        'histogram_bincount': 45,
81
                        'show': False,
82
                        'title': 'Solar zenith angle',
83
                        'units': "\u00B0"
84
                    },
85
                    {
86
                        'color_scale': 'nipy_spectral',
87
                        'data_range': [0.0, 90.0],
88
                        'field_name': 'viewing_zenith_angle',
89
                        'flag': False,
90
                        'log_range': False,
91
                        'primary_variable': 'viewing_zenith_angle',
92
                        'histogram_bincount': 45,
93
                        'show': False,
94
                        'title': 'Viewing zenith angle',
95
                        'units': "\u00B0"
96
                    },
97
                    {
98
                        'color_scale': 'nipy_spectral',
99
                        'data_range': [-180.0, 180.0],
100
                        'field_name': 'longitude',
101
                        'flag': False,
102
                        'log_range': False,
103
                        'primary_variable': 'longitude',
104
                        'show': False,
105
                        'internal_only': True,
106
                        'title': 'Longitude',
107
                        'units': "\u00B0E"
108
                    },
109
                    {
110
                        'color_scale': 'nipy_spectral',
111
                        'data_range': [0,2**32-1],
112
                        'field_name': 'processing_quality_flags',
113
                        'flag': True,
114
                        'log_range': False,
115
                        'primary_variable': 'processing_quality_flags',
116
                        'show': False,
117
                        'internal_only': True,
118
                        'title': 'Processing quality flags',
119
                        'units': ""
120
                    },
121
                    {
122
                        'color_scale': 'nipy_spectral',
123
                        'data_range': [0,256],
124
                        'field_name': 'geolocation_flags',
125
                        'flag': True,
126
                        'log_range': False,
127
                        'primary_variable': 'geolocation_flags',
128
                        'show': False,
129
                        'internal_only': True,
130
                        'title': 'Geolocation flags',
131
                        'units': ""
132
                    },
133
                    {
134
                        'color_scale': 'nipy_spectral',
135
                        'data_range': [0,256],
136
                        'field_name': 'surface_classification',
137
                        'flag': True,
138
                        'log_range': False,
139
                        'primary_variable': 'surface_classification',
140
                        'show': False,
141
                        'internal_only': True,
142
                        'title': 'Surface classification',
143
                        'units': ""
144
                    },
145
                    {
146
                        'color_scale': 'nipy_spectral',
147
                        'data_range': [0,360],
148
                        'field_name': 'solar_azimuth_angle',
149
                        'flag': True,
150
                        'log_range': False,
151
                        'primary_variable': 'solar_azimuth_angle',
152
                        'show': False,
153
                        'internal_only': True,
154
                        'title': 'Solar azimuth angle',
155
                        'units': "\u00B0"
156
                    },
157
                    {
158
                        'color_scale': 'nipy_spectral',
159
                        'data_range': [0,360],
160
                        'field_name': 'viewing_azimuth_angle',
161
                        'flag': True,
162
                        'log_range': False,
163
                        'primary_variable': 'viewing_azimuth_angle',
164
                        'show': False,
165
                        'internal_only': True,
166
                        'title': 'Viewing azimuth angle',
167
                        'units': "\u00B0"
168
                    },
169
                    {
170
                        'color_scale': 'nipy_spectral',
171
                        'data_range': [0.0,1.0],
172
                        'field_name': 'qa_value',
173
                        'flag': False,
174
                        'level3': False,
175
                        'include_scatter': False,
176
                        'log_range': False,
177
                        'primary_variable': 'qa_value',
178
                        'show': True,
179
                        'internal_only': False,
180
                        'title': 'QA value',
181
                        'units': "1",
182
                        'transformers':
183
                            [
184
                                {
185
                                    'class':'transform.Multiplier',
186
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
187
                                },
188
                            ]
189
                    }
190
                ]
191
            },
192
        'FRESCO': {
193
            'contact': 'Maarten Sneep',
194
            'contact_email': 'maarten.sneep@knmi.nl',
195
            'developer': 'KNMI',
196
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
197
            'variables':
198
                [
199
                    {
200
                        'color_scale': 'viridis',
201
                        'data_range': [100.0, 1100.0],
202
                        'field_name': 'cloud_pressure_crb',
203
                        'flag': False,
204
                        'log_range': False,
205
                        'primary_variable': 'cloud_pressure_crb',
206
                        'secondary_variable': 'cloud_fraction_crb',
207
                        'show': True,
208
                        'title': 'Cloud pressure',
209
                        'transformers':
210
                            [
211
                                {
212
                                    'class':'transform.Multiplier',
213
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
214
                                },
215
                            ],
216
                        'units': 'hPa'
217
                    },
218
                    {
219
                        'color_scale': 'nipy_spectral',
220
                        'data_range': [0.0, 150.0],
221
                        'field_name': 'cloud_pressure_crb_precision',
222
                        'flag': False,
223
                        'log_range': False,
224
                        'level3': False,
225
                        'include_scatter': False,
226
                        'primary_variable': 'cloud_pressure_crb_precision',
227
                        'secondary_variable': 'cloud_fraction_crb',
228
                        'show': True,
229
                        'title': 'Cloud pressure precision',
230
                        'transformers':
231
                            [
232
                                {
233
                                    'class':'transform.Multiplier',
234
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
235
                                },
236
                            ],
237
                        'units': 'hPa'
238
                    },
239
                    {
240
                        'color_scale': 'Blues_r',
241
                        'data_range': [0.0,1.1],
242
                        'map_range': [0.0,1.0],
243
                        'field_name': 'cloud_fraction_crb',
244
                        'flag': False,
245
                        'log_range': False,
246
                        'primary_variable': 'cloud_fraction_crb',
247
                        'show': True,
248
                        'title': 'Cloud fraction',
249
                        'units': '',
250
                        'transformers':
251
                            [
252
                                {
253
                                    'class': 'transform.ProcessingQualityFlagsFilter',
254
                                    'arguments': {'mask':0xff}
255
                                }
256
                            ],
257
                    },
258
                    {
259
                        'color_scale': 'nipy_spectral',
260
                        'data_range': [0.0,0.05],
261
                        'field_name': 'cloud_fraction_crb_precision',
262
                        'flag': False,
263
                        'log_range': False,
264
                        'primary_variable': 'cloud_fraction_crb_precision',
265
                        'level3': False,
266
                        'include_scatter': False,
267
                        'show': True,
268
                        'title': 'Cloud fraction precision',
269
                        'units': ''
270
                    },
271
                    {
272
                        'color_scale': 'viridis',
273
                        'data_range': [0.0,1.0],
274
                        'field_name': 'scene_albedo',
275
                        'flag': False,
276
                        'log_range': False,
277
                        'primary_variable': 'scene_albedo',
278
                        'show': True,
279
                        'title': 'Scene albedo',
280
                        'units': ''
281
                    },
282
                    {
283
                        'color_scale': 'nipy_spectral',
284
                        'data_range': [0.0,0.05],
285
                        'field_name': 'scene_albedo_precision',
286
                        'flag': False,
287
                        'log_range': False,
288
                        'primary_variable': 'scene_albedo_precision',
289
                        'level3': False,
290
                        'include_scatter': False,
291
                        'show': True,
292
                        'title': 'Scene albedo precision',
293
                        'units': ''
294
                    },
295
                    {
296
                        'color_scale': 'viridis',
297
                        'data_range': [300.0, 1100.0],
298
                        'field_name': 'apparent_scene_pressure',
299
                        'flag': False,
300
                        'log_range': False,
301
                        'primary_variable': 'apparent_scene_pressure',
302
                        'show': True,
303
                        'title': 'Apparent scene pressure',
304
                        'transformers':
305
                            [
306
                                {
307
                                    'class': 'transform.Multiplier',
308
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
309
                                }
310
                            ],
311
                        'units': 'hPa'
312
                    },
313
                    {
314
                        'color_scale': 'nipy_spectral',
315
                        'data_range': [0.0, 100.0],
316
                        'field_name': 'apparent_scene_pressure_precision',
317
                        'flag': False,
318
                        'log_range': False,
319
                        'primary_variable': 'apparent_scene_pressure_precision',
320
                        'level3': False,
321
                        'include_scatter': False,
322
                        'show': True,
323
                        'title': 'Apparent scene pressure precision',
324
                        'transformers':
325
                            [
326
                                {
327
                                    'class': 'transform.Multiplier',
328
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
329
                                }
330
                            ],
331
                        'units': 'hPa'
332
                    },
333
                    {
334
                        'color_scale': 'nipy_spectral',
335
                        'data_range': [0.0, 30.0],
336
                        'field_name': 'chi_square',
337
                        'flag': False,
338
                        'log_range': False,
339
                        'primary_variable': 'chi_square',
340
                        'level3': False,
341
                        'show': True,
342
                        'title': '\u03C7\u00B2',
343
                        'units': ''
344
                    },
345
                    {
346
                        'color_scale': 'nipy_spectral',
347
                        'data_range': [0, 12],
348
                        'field_name': 'number_of_iterations',
349
                        'flag': False,
350
                        'log_range': False,
351
                        'histogram_bincount': 13,
352
                        'primary_variable': 'number_of_iterations',
353
                        'level3': False,
354
                        'show': True,
355
                        'title': 'Number of iterations',
356
                        'units': ''
357
                    },
358
                    {
359
                        'color_scale': 'nipy_spectral',
360
                        'data_range': [0.0, 5e-8],
361
                        'field_name': 'fluorescence',
362
                        'flag': False,
363
                        'log_range': False,
364
                        'primary_variable': 'fluorescence',
365
                        'show': True,
366
                        'title': 'Fluorescence',
367
                        'transformers':
368
                            [
369
                                {
370
                                    'class': 'transform.Select',
371
                                    'arguments': {'dimension': -1, 'index':2, 'collapse':False}
372
                                }
373
                            ],
374
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
375
                    },
376
                    {
377
                        'color_scale': 'nipy_spectral',
378
                        'data_range': [0.0, 1e-8],
379
                        'field_name': 'fluorescence_precision',
380
                        'flag': False,
381
                        'log_range': False,
382
                        'primary_variable': 'fluorescence_precision',
383
                        'level3': False,
384
                        'include_scatter': False,
385
                        'show': True,
386
                        'title': 'Fluorescence precision',
387
                        'transformers':
388
                            [
389
                                {
390
                                    'class': 'transform.Select',
391
                                    'arguments': {'dimension': -1, 'index':2, 'collapse':False}
392
                                }
393
                            ],
394
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
395
                    },
396
                    {
397
                        'color_scale': 'nipy_spectral',
398
                        'data_range': [0.0, 5.0e4],
399
                        'field_name': 'chi_square_fluorescence',
400
                        'flag': False,
401
                        'log_range': False,
402
                        'primary_variable': 'chi_square_fluorescence',
403
                        'level3': False,
404
                        'show': True,
405
                        'title': '\u03C7\u00B2 of fluorescence retrieval',
406
                        'units': ''
407
                    },
408
                    {
409
                        'color_scale': 'nipy_spectral',
410
                        'data_range': [0.0, 10.0],
411
                        'field_name': 'degrees_of_freedom_fluorescence',
412
                        'flag': False,
413
                        'log_range': False,
414
                        'histogram_bincount': 21,
415
                        'primary_variable': 'degrees_of_freedom_fluorescence',
416
                        'show': True,
417
                        'level3': False,
418
                        'title': 'Degrees of freedom for signal of fluorescence retrieval',
419
                        'units': ''
420
                    },
421
                    {
422
                        'color_scale': 'nipy_spectral',
423
                        'data_range': [0, 60],
424
                        'field_name': 'number_of_spectral_points_in_retrieval',
425
                        'flag': False,
426
                        'log_range': False,
427
                        'histogram_bincount': 61,
428
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
429
                        'level3': False,
430
                        'show': True,
431
                        'title': 'Number of points in the spectrum',
432
                        'units': ''
433
                    },
434
                    {
435
                        'color_scale': 'seismic',
436
                        'data_range': [-0.04,0.04],
437
                        'field_name': 'wavelength_calibration_offset',
438
                        'flag': False,
439
                        'log_range': False,
440
                        'primary_variable': 'wavelength_calibration_offset',
441
                        'level3': False,
442
                        'show': True,
443
                        'title': 'Spectral offset (\u03BB(true) \u2212 \u03BB(nominal))',
444
                        'units': 'nm'
445
                    },
446
                    {
447
                        'color_scale': 'seismic',
448
                        'data_range': [-0.1,0.1],
449
                        'field_name': 'wavelength_calibration_irradiance_offset',
450
                        'flag': False,
451
                        'log_range': False,
452
                        'primary_variable': 'wavelength_calibration_irradiance_offset',
453
                        'show': True,
454
                        'title': 'Spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
455
                        'units': 'nm'
456
                    }
457
                ]
458
            },
459
        'OMICLD': {
460
            'equivalent_product': 'FRESCO'
461
            },
462
        'O22CLD': {
463
            'equivalent_product': 'FRESCO'
464
            },
465
        'FRESCB': {
466
                'equivalent_product': 'FRESCO'
467
            },
468
        'AER_AI': {
469
            'contact': 'Deborah Stein-Zweers',
470
            'contact_email': 'deborah.zweers-stein@knmi.nl',
471
            'developer': 'KNMI',
472
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
473
            'variables':
474
                [
475
                    {
476
                        'color_scale': 'nipy_spectral',
477
                        'data_range': [-5,7],
478
                        'map_range': [-3,5],
479
                        'field_name': 'aerosol_index_354_388',
480
                        'flag': False,
481
                        'log_range': False,
482
                        'primary_variable': 'aerosol_index_354_388',
483
                        'show': True,
484
                        'title': 'UV aerosol index (354/388 nm)',
485
                        'units': ''
486
                    },
487
                    {
488
                        'color_scale': 'nipy_spectral',
489
                        'data_range': [-5,7],
490
                        'map_range': [-3,5],
491
                        'field_name': 'aerosol_index_340_380',
492
                        'flag': False,
493
                        'log_range': False,
494
                        'primary_variable': 'aerosol_index_340_380',
495
                        'show': True,
496
                        'title': 'UV aerosol index (340/380 nm)',
497
                        'units': ''
498
                    },
499
                    {
500
                        'color_scale': 'nipy_spectral',
501
                        'data_range': [0,4],
502
                        'field_name': 'aerosol_index_354_388_precision',
503
                        'flag': False,
504
                        'log_range': False,
505
                        'level3': False,
506
                        'include_scatter': False,
507
                        'primary_variable': 'aerosol_index_354_388_precision',
508
                        'show': True,
509
                        'title': 'Precision of the UV aerosol index (354/388 nm)',
510
                        'units': ''
511
                    },
512
                    {
513
                        'color_scale': 'nipy_spectral',
514
                        'data_range': [0,4],
515
                        'field_name': 'aerosol_index_340_380_precision',
516
                        'flag': False,
517
                        'log_range': False,
518
                        'primary_variable': 'aerosol_index_340_380_precision',
519
                        'level3': False,
520
                        'include_scatter': False,
521
                        'show': True,
522
                        'title': 'Precision of the UV aerosol index (340/380 nm)',
523
                        'units': ''
524
                    },
525
                    {
526
                        'color_scale': 'nipy_spectral',
527
                        'data_range': [0, 50],
528
                        'field_name': 'number_of_spectral_points_in_retrieval',
529
                        'flag': False,
530
                        'log_range': False,
531
                        'level3': False,
532
                        'include_scatter': False,
533
                        'histogram_bincount': 51,
534
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
535
                        'show': True,
536
                        'title': 'Number of points in the spectrum',
537
                        'units': ''
538
                    },
539
                    {
540
                        'color_scale': 'seismic',
541
                        'data_range': [-0.04,0.04],
542
                        'field_name': 'wavelength_calibration_offset',
543
                        'flag': False,
544
                        'log_range': False,
545
                        'primary_variable': 'wavelength_calibration_offset',
546
                        'level3': False,
547
                        'show': True,
548
                        'title': 'Spectral offset (\u03BB(true) \u2212 \u03BB(nominal))',
549
                        'units': 'nm'
550
                    },
551
                    {
552
                        'color_scale': 'seismic',
553
                        'data_range': [-0.1,0.1],
554
                        'field_name': 'wavelength_calibration_irradiance_offset',
555
                        'flag': False,
556
                        'log_range': False,
557
                        'primary_variable': 'wavelength_calibration_irradiance_offset',
558
                        'show': True,
559
                        'title': 'Spectral offset irradiance (\u03BB(true) \u2212 \u03BB(nominal))',
560
                        'units': 'nm'
561
                    },
562
                    {
563
                        'color_scale': 'Blues_r',
564
                        'data_range': [0.0, 1.0],
565
                        'map_range': [0.0, 1.0],
566
                        'field_name': 'scene_albedo_380',
567
                        'flag': False,
568
                        'log_range': False,
569
                        'primary_variable': 'scene_albedo_380',
570
                        'show': True,
571
                        'units': '',
572
                        'title': 'Scene albedo at 380 nm'
573
                    },
574
                    {
575
                        'color_scale': 'Blues_r',
576
                        'data_range': [0.0, 1.0],
577
                        'map_range': [0.0, 1.0],
578
                        'field_name': 'scene_albedo_388',
579
                        'flag': False,
580
                        'log_range': False,
581
                        'primary_variable': 'scene_albedo_388',
582
                        'show': True,
583
                        'units': '',
584
                        'title': 'Scene albedo at 388 nm'
585
                    }
586
                ]
587
            },
588
        'AER_LH': {
589
            'contact': 'Martin de Graaf',
590
            'contact_email': 'martin.de.graaf@knmi.nl',
591
            'developer': 'KNMI',
592
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
593
            'full_synchronize': True,
594
            'variables':
595
                [
596
                    {
597
                        'color_scale': 'nipy_spectral',
598
                        'data_range': [100.0, 1100.0],
599
                        'field_name': 'aerosol_mid_pressure',
600
                        'flag': False,
601
                        'log_range': False,
602
                        'primary_variable': 'aerosol_mid_pressure',
603
                        'show': True,
604
                        'title': 'Aerosol mid pressure',
605
                        'transformers':
606
                            [
607
                                {
608
                                    'class': 'transform.Multiplier',
609
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
610
                                }
611
                            ],
612
                        'units': 'hPa'
613
                    },
614
                    {
615
                        'color_scale': 'nipy_spectral',
616
                        'data_range': [0.0, 100.0],
617
                        'field_name': 'aerosol_mid_pressure_precision',
618
                        'flag': False,
619
                        'log_range': False,
620
                        'level3': False,
621
                        'include_scatter': False,
622
                        'primary_variable': 'aerosol_mid_pressure_precision',
623
                        'show': True,
624
                        'title': 'Aerosol mid pressure precision',
625
                        'transformers':
626
                            [
627
                                {
628
                                    'class': 'transform.Multiplier',
629
                                    'arguments': {'operator': '/', 'scalefactor': 100.0}
630
                                }
631
                            ],
632
                        'units': 'hPa'
633
                    },
634
                    {
635
                        'color_scale': 'nipy_spectral',
636
                        'data_range': [0.01, 20.0],
637
                        'map_range': [0.01, 10.0],
638
                        'field_name': 'aerosol_optical_thickness',
639
                        'flag': False,
640
                        'log_range': True,
641
                        'primary_variable': 'aerosol_optical_thickness',
642
                        'show': True,
643
                        'title': 'Aerosol optical thickness',
644
                        'units': ''
645
                    },
646
                    {
647
                        'color_scale': 'nipy_spectral',
648
                        'data_range': [0.0, 1.0],
649
                        'field_name': 'aerosol_optical_thickness_precision',
650
                        'flag': False,
651
                        'log_range': False,
652
                        'level3': False,
653
                        'include_scatter': False,
654
                        'primary_variable': 'aerosol_optical_thickness_precision',
655
                        'show': True,
656
                        'title': 'Aerosol optical thickness precision',
657
                        'units': ''
658
                    },
659
                    {
660
                        'color_scale': 'nipy_spectral',
661
                        'data_range': [0, 100],
662
                        'field_name': 'number_of_spectral_points_in_retrieval',
663
                        'flag': False,
664
                        'log_range': False,
665
                        'histogram_bincount': 101,
666
                        'level3': False,
667
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
668
                        'show': True,
669
                        'title': 'Number of points in the spectrum',
670
                        'units': ''
671
                    },
672
                    {
673
                        'color_scale': 'nipy_spectral',
674
                        'data_range': [0, 20],
675
                        'field_name': 'number_of_iterations',
676
                        'flag': False,
677
                        'log_range': False,
678
                        'histogram_bincount': 21,
679
                        'level3': False,
680
                        'include_scatter': False,
681
                        'primary_variable': 'number_of_iterations',
682
                        'show': True,
683
                        'title': 'Number of iterations',
684
                        'units': ''
685
                    },
686
                    {
687
                        'color_scale': 'nipy_spectral',
688
                        'data_range': [0.0, 4.0],
689
                        'field_name': 'degrees_of_freedom',
690
                        'flag': False,
691
                        'log_range': False,
692
                        'primary_variable': 'degrees_of_freedom',
693
                        'level3': False,
694
                        'include_scatter': False,
695
                        'show': True,
696
                        'title': 'Degrees of freedom for signal',
697
                        'units': ''
698
                    },
699
                    {
700
                        'color_scale': 'nipy_spectral',
701
                        'data_range': [0.0, 100.0],
702
                        'field_name': 'chi_square',
703
                        'flag': False,
704
                        'log_range': False,
705
                        'primary_variable': 'chi_square',
706
                        'level3': False,
707
                        'show': True,
708
                        'title': '\u03C7\u00B2',
709
                        'units': ''
710
                    }
711
                ]
712
            },
713
        'CH4___': {
714
            'contact': 'Jochen Landgraf',
715
            'contact_email': 'J.Landgraf@sron.nl',
716
            'developer': 'KNMI',
717
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
718
            'variables':
719
                [
720
                    {
721
                        'color_scale': 'nipy_spectral',
722
                        'data_range': [1500.0, 2000.0],
723
                        'field_name': 'methane_mixing_ratio',
724
                        'flag': False,
725
                        'log_range': False,
726
                        'primary_variable': 'methane_mixing_ratio',
727
                        'show': True,
728
                        'title': 'Mole fraction of CH\u2084',
729
                        'units': 'parts per 10\u2079'
730
                    },
731
                    {
732
                        'color_scale': 'nipy_spectral',
733
                        'data_range': [0.0, 20.0],
734
                        'field_name': 'methane_mixing_ratio_precision',
735
                        'flag': False,
736
                        'log_range': False,
737
                        'primary_variable': 'methane_mixing_ratio_precision',
738
                        'show': True,
739
                        'title': 'Precision of mole fraction of CH\u2084',
740
                        'units': 'parts per 10\u2079'
741
                    },
742
                    {
743
                        'color_scale': 'nipy_spectral',
744
                        'data_range': [1500.0, 2000.0],
745
                        'field_name': 'methane_mixing_ratio_bias_corrected',
746
                        'flag': False,
747
                        'log_range': False,
748
                        'primary_variable': 'methane_mixing_ratio_bias_corrected',
749
                        'show': True,
750
                        'title': 'Bias corrected mole fraction of CH\u2084',
751
                        'units': 'parts per 10\u2079'
752
                    },
753
                    {
754
                        'color_scale': 'nipy_spectral',
755
                        'data_range': [500, 1000],
756
                        'field_name': 'number_of_spectral_points_in_retrieval',
757
                        'flag': False,
758
                        'log_range': False,
759
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
760
                        'show': True,
761
                        'level3': False,
762
                        'title': 'Number of points in the spectrum',
763
                        'units': ''
764
                    },
765
                    {
766
                        'color_scale': 'seismic',
767
                        'data_range': [-0.1,0.1],
768
                        'field_name': 'wavelength_calibration_offset_SWIR',
769
                        'flag': False,
770
                        'log_range': False,
771
                        'primary_variable': 'wavelength_calibration_offset_SWIR',
772
                        'level3': False,
773
                        'show': True,
774
                        'title': 'Spectral offset SWIR (\u03BB(true) \u2212 \u03BB(nominal))',
775
                        'units': 'nm'
776
                    },
777
                    {
778
                        'color_scale': 'nipy_spectral',
779
                        'data_range': [0.0, 10000.0],
780
                        'field_name': 'chi_square_SWIR',
781
                        'flag': False,
782
                        'log_range': False,
783
                        'primary_variable': 'chi_square_SWIR',
784
                        'show': True,
785
                        'level3': False,
786
                        'title': '\u03C7\u00B2 (SWIR)',
787
                        'units': ''
788
                    },
789
                    {
790
                        'color_scale': 'nipy_spectral',
791
                        'data_range': [0.0, 10000.0],
792
                        'field_name': 'chi_square_NIR',
793
                        'flag': False,
794
                        'log_range': False,
795
                        'primary_variable': 'chi_square_NIR',
796
                        'show': True,
797
                        'level3': False,
798
                        'title': '\u03C7\u00B2 (NIR)',
799
                        'units': ''
800
                    },
801
                    {
802
                        'color_scale': 'nipy_spectral',
803
                        'data_range': [5.0, 20.0],
804
                        'field_name': 'degrees_of_freedom',
805
                        'flag': False,
806
                        'log_range': False,
807
                        'primary_variable': 'degrees_of_freedom',
808
                        'show': True,
809
                        'level3': False,
810
                        'title': 'Degrees of freedom',
811
                        'units': ''
812
                    },
813
                    {
814
                        'color_scale': 'nipy_spectral',
815
                        'data_range': [0, 30],
816
                        'field_name': 'number_of_iterations',
817
                        'flag': False,
818
                        'log_range': False,
819
                        'primary_variable': 'number_of_iterations',
820
                        'histogram_bincount': 31,
821
                        'level3': False,
822
                        'show': True,
823
                        'title': 'Number of iterations',
824
                        'units': ''
825
                    },
826
                    {
827
                        'color_scale': 'nipy_spectral',
828
                        'data_range': [-1.0e-8, 1e-8],
829
                        'field_name': 'fluorescence',
830
                        'flag': False,
831
                        'log_range': False,
832
                        'primary_variable': 'fluorescence',
833
                        'show': True,
834
                        'title': 'Fluorescence',
835
                        'units': 'mol s\u207B\u00B9 m\u207B\u00B2 nm\u207B\u00B9 sr\u207B\u00B9'
836
                    }
837
                ]
838
            },
839
        'CLOUD_': {
840
            'contact': 'Ronny Lutz',
841
            'contact_email': 'ronny.lutz@dlr.de',
842
            'developer': 'DLR',
843
            'developer_contact': 'mattia.pedergnana@dlr.de',
844
            'variables':
845
                [
846
                    {
847
                        'color_scale': 'Blues_r',
848
                        'data_range': [0.0, 1.0],
849
                        'field_name': 'cloud_fraction',
850
                        'flag': False,
851
                        'log_range': False,
852
                        'primary_variable': 'cloud_fraction',
853
                        'show': True,
854
                        'title': 'Radiometric cloud fraction',
855
                        'units': ''
856
                    },
857
                    # {
858
                    #     'color_scale': 'Reds',
859
                    #     'data_range': [0.0,1E-3],
860
                    #     'field_name': 'cloud_fraction_precision',
861
                    #     'flag': False,
862
                    #     'log_range': False,
863
                    #     'primary_variable': 'cloud_fraction_precision',
864
                    #     'show': True,
865
                    #     'title': 'Precision of the radiometric cloud fraction',
866
                    #     'units': ''
867
                    # },
868
                    # {
869
                    #     'color_scale': 'jet_r',
870
                    #     'data_range': [100.0, 1100.0],
871
                    #     'field_name': 'cloud_top_pressure',
872
                    #     'flag': False,
873
                    #     'log_range': True,
874
                    #     'primary_variable': 'cloud_top_pressure',
875
                    #     'show': True,
876
                    #     'title': 'Cloud top pressure',
877
                    #     'units': 'hPa',
878
                    #     'transformers':
879
                    #     [
880
                    #         {
881
                    #             'class':'transform.Multiplier',
882
                    #             'arguments': {'operator': '/', 'scalefactor': 100.0}
883
                    #         }
884
                    #     ],
885
                    # },
886
                    # {
887
                    #     'color_scale': 'Reds',
888
                    #     'data_range': [0.0, 75.0],
889
                    #     'field_name': 'cloud_top_pressure_precision',
890
                    #     'flag': False,
891
                    #     'log_range': False,
892
                    #     'primary_variable': 'cloud_top_pressure_precision',
893
                    #     'show': True,
894
                    #     'title': 'Cloud top pressure precision',
895
                    #     'units': 'hPa',
896
                    #     'transformers':
897
                    #     [
898
                    #         {
899
                    #             'class':'transform.Multiplier',
900
                    #             'arguments': {'operator': '/', 'scalefactor': 100.0}
901
                    #         }
902
                    #     ],
903
                    # },
904
                    {
905
                        'color_scale': 'jet',
906
                        'data_range': [0.0, 1.5E4],
907
                        'field_name': 'cloud_top_height',
908
                        'flag': False,
909
                        'log_range': False,
910
                        'primary_variable': 'cloud_top_height',
911
                        'show': True,
912
                        'title': 'Cloud top height',
913
                        'units': 'm',
914
                    },
915
                    # {
916
                    #     'color_scale': 'Reds',
917
                    #     'data_range': [0.0, 1000.],
918
                    #     'field_name': 'cloud_top_height_precision',
919
                    #     'flag': False,
920
                    #     'log_range': False,
921
                    #     'primary_variable': 'cloud_top_height_precision',
922
                    #     'show': True,
923
                    #     'title': 'Cloud top height precision',
924
                    #     'units': 'm',
925
                    # },
926
                    {
927
                        'color_scale': 'jet',
928
                        'data_range': [1.0, 100.0],
929
                        'field_name': 'cloud_optical_thickness',
930
                        'flag': False,
931
                        'log_range': True,
932
                        'primary_variable': 'cloud_optical_thickness',
933
                        'show': True,
934
                        'title': 'Cloud optical thickness',
935
                        'units': ''
936
                    },
937
                    # {
938
                    #     'color_scale': 'Reds',
939
                    #     'data_range': [1.0, 2.0],
940
                    #     'field_name': 'cloud_optical_thickness_precision',
941
                    #     'flag': False,
942
                    #     'log_range': False,
943
                    #     'primary_variable': 'cloud_optical_thickness_precision',
944
                    #     'show': True,
945
                    #     'title': 'Cloud optical thickness precision',
946
                    #     'units': ''
947
                    # },
948
                    {
949
                        'color_scale': 'Blues_r',
950
                        'data_range': [0.0, 1.0],
951
                        'field_name': 'cloud_fraction_crb',
952
                        'flag': False,
953
                        'log_range': False,
954
                        'primary_variable': 'cloud_fraction_crb',
955
                        'show': True,
956
                        'title': 'Cloud fraction (CRB)',
957
                        'units': ''
958
                    },
959
                    # {
960
                    #     'color_scale': 'Reds',
961
                    #     'data_range': [0.0, 1E-3],
962
                    #     'field_name': 'cloud_fraction_crb_precision',
963
                    #     'flag': False,
964
                    #     'log_range': False,
965
                    #     'primary_variable': 'cloud_fraction_crb_precision',
966
                    #     'show': True,
967
                    #     'title': 'Precision of the cloud fraction (CRB)',
968
                    #     'units': ''
969
                    # },
970
                    # {
971
                    #     'color_scale': 'jet_r',
972
                    #     'data_range': [100.0, 1100.0],
973
                    #     'field_name': 'cloud_pressure_crb',
974
                    #     'flag': False,
975
                    #     'log_range': True,
976
                    #     'primary_variable': 'cloud_pressure_crb',
977
                    #     'show': True,
978
                    #     'title': 'Cloud pressure (CRB)',
979
                    #     'units': 'hPa',
980
                    #     'transformers':
981
                    #     [
982
                    #         {
983
                    #             'class':'transform.Multiplier',
984
                    #             'arguments': {'operator': '/', 'scalefactor': 100.0}
985
                    #         }
986
                    #     ],
987
                    # },
988
                    # {
989
                    #     'color_scale': 'Reds',
990
                    #     'data_range': [0.0,75.0],
991
                    #     'field_name': 'cloud_pressure_crb_precision',
992
                    #     'flag': False,
993
                    #     'log_range': False,
994
                    #     'primary_variable': 'cloud_pressure_crb_precision',
995
                    #     'show': True,
996
                    #     'title': 'Cloud pressure precision (CRB)',
997
                    #     'units': 'hPa',
998
                    #     'transformers':
999
                    #     [
1000
                    #         {
1001
                    #             'class':'transform.Multiplier',
1002
                    #             'arguments': {'operator': '/', 'scalefactor': 100.0}
1003
                    #         }
1004
                    #     ],
1005
                    # },
1006
                    {
1007
                        'color_scale': 'jet',
1008
                        'data_range': [0.0, 1.5E4],
1009
                        'field_name': 'cloud_height_crb',
1010
                        'flag': False,
1011
                        'log_range': False,
1012
                        'primary_variable': 'cloud_height_crb',
1013
                        'show': True,
1014
                        'title': 'Cloud height (CRB)',
1015
                        'units': 'm',
1016
                    },
1017
                    # {
1018
                    #     'color_scale': 'Reds',
1019
                    #     'data_range': [0.0, 1000.],
1020
                    #     'field_name': 'cloud_height_precision',
1021
                    #     'flag': False,
1022
                    #     'log_range': False,
1023
                    #     'primary_variable': 'cloud_height_crb_precision',
1024
                    #     'show': True,
1025
                    #     'title': 'Cloud height precision (CRB)',
1026
                    #     'units': 'm',
1027
                    # },
1028
                    {
1029
                        'color_scale': 'Blues',
1030
                        'data_range': [0.0, 1.0],
1031
                        'field_name': 'cloud_albedo_crb',
1032
                        'flag': False,
1033
                        'log_range': False,
1034
                        'primary_variable': 'cloud_albedo_crb',
1035
                        'show': True,
1036
                        'title': 'Cloud albedo (CRB)',
1037
                        'units': ''
1038
                    },
1039
                    # {
1040
                    #     'color_scale': 'Reds',
1041
                    #     'data_range': [0.0, 0.007],
1042
                    #     'field_name': 'cloud_albedo_crb_precision',
1043
                    #     'flag': False,
1044
                    #     'log_range': False,
1045
                    #     'primary_variable': 'cloud_albedo_crb_precision',
1046
                    #     'show': True,
1047
                    #     'title': 'Precision of the cloud albedo (CRB)',
1048
                    #     'units': ''
1049
                    # },
1050
                    {
1051
                        'color_scale': 'Blues',
1052
                        'data_range': [0.0, 1.0],
1053
                        'field_name': 'surface_albedo_fitted',
1054
                        'flag': False,
1055
                        'log_range': False,
1056
                        'primary_variable': 'surface_albedo_fitted',
1057
                        'show': True,
1058
                        'include_scatter': False,
1059
                        'Level3': False,
1060
                        'title': 'Fitted surface albedo',
1061
                        'units': ''
1062
                    },
1063
                    # {
1064
                    #     'color_scale': 'Reds',
1065
                    #     'data_range': [0.0, 0.005],
1066
                    #     'field_name': 'surface_albedo_fitted_precision',
1067
                    #     'flag': False,
1068
                    #     'log_range': False,
1069
                    #     'primary_variable': 'surface_albedo_fitted_precision',
1070
                    #     'show': True,
1071
                    #     'include_scatter': False,
1072
                    #     'Level3': False,
1073
                    #     'title': 'Precision of the fitted surface albedo',
1074
                    #     'units': ''
1075
                    # },
1076
                    {
1077
                        'color_scale': 'Blues',
1078
                        'data_range': [0.0, 1.0],
1079
                        'field_name': 'surface_albedo_fitted_crb',
1080
                        'flag': False,
1081
                        'log_range': False,
1082
                        'primary_variable': 'surface_albedo_fitted_crb',
1083
                        'show': True,
1084
                        'include_scatter': False,
1085
                        'Level3': False,
1086
                        'title': 'Fitted surface albedo (CRB)',
1087
                        'units': ''
1088
                    },
1089
                    # {
1090
                    #     'color_scale': 'Reds',
1091
                    #     'data_range': [0.0, 0.005],
1092
                    #     'field_name': 'surface_albedo_fitted_crb_precision',
1093
                    #     'flag': False,
1094
                    #     'log_range': False,
1095
                    #     'primary_variable': 'surface_albedo_fitted_crb_precision',
1096
                    #     'show': True,
1097
                    #     'include_scatter': False,
1098
                    #     'Level3': False,
1099
                    #     'title': 'Precision of the fitted surface albedo (CRB)',
1100
                    #     'units': ''
1101
                    # },
1102
                    # {
1103
                    #     'color_scale': 'nipy_spectral',
1104
                    #     'data_range': [0, 100],
1105
                    #     'field_name': 'number_of_iterations',
1106
                    #     'flag': False,
1107
                    #     'log_range': False,
1108
                    #     'histogram_bincount': 71,
1109
                    #     'primary_variable': 'number_of_iterations',
1110
                    #     'show': True,
1111
                    #     'include_scatter': False,
1112
                    #     'Level3': False,
1113
                    #     'title': 'Number of iterations for the wavelength calibration',
1114
                    #     'units': ''
1115
                    # },
1116
                    # {
1117
                    #     'color_scale': 'nipy_spectral',
1118
                    #     'data_range': [0, 1000],
1119
                    #     'field_name': 'calibration_subwindows_shift',
1120
                    #     'flag': False,
1121
                    #     'log_range': False,
1122
                    #     'primary_variable': 'calibration_subwindows_shift',
1123
                    #     'show': True,
1124
                    #     'title': 'Wavelength calibration subwindow shift',
1125
                    #     'units': 'nm'
1126
                    # },
1127
                    # {
1128
                    #     'color_scale': 'nipy_spectral',
1129
                    #     'data_range': [0, 1000],
1130
                    #     'field_name': 'calibration_subwindows_squeeze',
1131
                    #     'flag': False,
1132
                    #     'log_range': False,
1133
                    #     'primary_variable': 'calibration_subwindows_squeeze',
1134
                    #     'show': True,
1135
                    #     'title': 'Wavelength calibration subwindow squeeze',
1136
                    #     'units': ''
1137
                    # },
1138
                    # {
1139
                    #     'color_scale': 'nipy_spectral',
1140
                    #     'data_range': [0, 1000],
1141
                    #     'field_name': 'calibration_polynomial_coefficients',
1142
                    #     'flag': False,
1143
                    #     'log_range': False,
1144
                    #     'primary_variable': 'calibration_polynomial_coefficients',
1145
                    #     'show': True,
1146
                    #     'title': 'Wavelength calibration polynomian coefficients',
1147
                    #     'units': ''
1148
                    # },
1149
                    # {
1150
                    #     'color_scale': 'nipy_spectral',
1151
                    #     'data_range': [0, 1000],
1152
                    #     'field_name': 'calibration_subwindows_root_mean_square',
1153
                    #     'flag': False,
1154
                    #     'log_range': False,
1155
                    #     'primary_variable': 'calibration_subwindows_root_mean_square',
1156
                    #     'show': True,
1157
                    #     'title': 'Wavelength calibration subwindows RMS',
1158
                    #     'units': ''
1159
                    # },
1160
                    {
1161
                        'color_scale': 'Reds',
1162
                        'data_range': [0., .1], # TODO  range to be confirmed
1163
                        'field_name': 'fitted_root_mean_square',
1164
                        'flag': False,
1165
                        'log_range': False,
1166
                        'primary_variable': 'fitted_root_mean_square',
1167
                        'show': True,
1168
                        'include_scatter': False,
1169
                        'title': 'RMS',
1170
                        'Level3': False,
1171
                        'units': ''
1172
                    },
1173
                    {
1174
                        'color_scale': 'Reds',
1175
                        'data_range': [0., .1], # TODO  range to be confirmed
1176
                        'field_name': 'fitted_root_mean_square_crb',
1177
                        'flag': False,
1178
                        'log_range': False,
1179
                        'primary_variable': 'fitted_root_mean_square_crb',
1180
                        'show': True,
1181
                        'include_scatter': False,
1182
                        'title': 'RMS (CRB)',
1183
                        'Level3': False,
1184
                        'units': ''
1185
                    },
1186
                    # {
1187
                    #     'color_scale': 'Reds_r',
1188
                    #     'data_range': [0, 5],
1189
                    #     'field_name': 'degrees_of_freedom',
1190
                    #     'flag': False,
1191
                    #     'log_range': False,
1192
                    #     'primary_variable': 'degrees_of_freedom',
1193
                    #     'show': True,
1194
                    #     'include_scatter': False,
1195
                    #     'title': 'Degrees of freedom',
1196
                    #     'units': ''
1197
                    # },
1198
                    # {
1199
                    #     'color_scale': 'Reds_r',
1200
                    #     'data_range': [2,12],
1201
                    #     'field_name': 'shannon_information_content',
1202
                    #     'flag': False,
1203
                    #     'log_range': False,
1204
                    #     'primary_variable': 'shannon_information_content',
1205
                    #     'show': True,
1206
                    #     'include_scatter': False,
1207
                    #     'title': 'Shannon information content',
1208
                    #     'units': ''
1209
                    # },
1210
                    # {
1211
                    #     'color_scale': 'Reds',
1212
                    #     'data_range': [0,3000],
1213
                    #     'field_name': 'condition_number',
1214
                    #     'flag': False,
1215
                    #     'log_range': False,
1216
                    #     'primary_variable': 'condition_number',
1217
                    #     'show': True,
1218
                    #     'include_scatter': False,
1219
                    #     'Level3': False,
1220
                    #     'title': 'Condition number',
1221
                    #     'units': ''
1222
                    # },
1223
                    # {
1224
                    #     'color_scale': 'Reds',
1225
                    #     'data_range': [5.0e-6, 4.0e-5],
1226
                    #     'field_name': 'regularization_parameter',
1227
                    #     'flag': False,
1228
                    #     'log_range': True,
1229
                    #     'primary_variable': 'regularization_parameter',
1230
                    #     'show': True,
1231
                    #     'include_scatter': False,
1232
                    #     'Level3': False,
1233
                    #     'title': 'Regularization parameter',
1234
                    #     'units': ''
1235
                    # },
1236
                    {
1237
                        'color_scale': 'RdBu',
1238
                        'data_range': [-0.03, 0.03],
1239
                        'field_name': 'wavelength_shift',
1240
                        'flag': False,
1241
                        'log_range': False,
1242
                        'primary_variable': 'wavelength_shift',
1243
                        'show': True,
1244
                        'include_scatter': False,
1245
                        'Level3': False,
1246
                        'title': 'Fitting wavelength shift',
1247
                        'units': 'nm'
1248
                    },
1249
                    {
1250
                        'field_name': 'cloud_fraction_apriori',
1251
                        'primary_variable': 'cloud_fraction_apriori',
1252
                        'data_range': [0, 1],
1253
                        'color_scale': 'Blues_r',
1254
                        'flag': False,
1255
                        'log_range': False,
1256
                        'show': True,
1257
                        'include_scatter': True,
1258
                        'Level3': False,
1259
                        'title': 'OCRA cloud fraction',
1260
                        'units': '1'
1261
                    },
1262
                    {
1263
                        'field_name': 'reflectance_blue_ocra',
1264
                        'primary_variable': 'reflectances_ocra',
1265
                        'data_range': [0, 1],
1266
                        'color_scale': 'viridis',
1267
                        'flag': False,
1268
                        'log_range': False,
1269
                        'show': True,
1270
                        'include_scatter': False,
1271
                        'Level3': False,
1272
                        'title': 'OCRA “blue” reflectance',
1273
                        'units': '1',
1274
                        'transformers':
1275
                            [
1276
                                {
1277
                                    'class': 'transform.Select',
1278
                                    'arguments': {'index': 0, 'dimension': -1}
1279
                                }
1280
                            ],
1281
                    },
1282
                    {
1283
                        'field_name': 'reflectance_green_ocra',
1284
                        'primary_variable': 'reflectances_ocra',
1285
                        'data_range': [0, 1],
1286
                        'color_scale': 'viridis',
1287
                        'flag': False,
1288
                        'log_range': False,
1289
                        'show': True,
1290
                        'include_scatter': False,
1291
                        'Level3': False,
1292
                        'title': 'OCRA “green” reflectance',
1293
                        'units': '1',
1294
                        'transformers':
1295
                            [
1296
                                {
1297
                                    'class': 'transform.Select',
1298
                                    'arguments': {'index': 1, 'dimension': -1}
1299
                                }
1300
                            ],
1301
                    },
1302
#                     {
1303
#                         'field_name': 'reflectance_red_ocra',
1304
#                         'primary_variable': 'reflectances_ocra',
1305
#                         'data_range': [0, 1],
1306
#                         'color_scale': 'viridis',
1307
#                         'flag': False,
1308
#                         'log_range': False,
1309
#                         'show': True,
1310
#                         'include_scatter': False,
1311
#                         'Level3': False,
1312
#                         'title': 'OCRA “red” reflectance',
1313
#                         'units': '1',
1314
#                         'transformers':
1315
#                             [
1316
#                                 {
1317
#                                     'class': 'transform.Select',
1318
#                                     'arguments': {'index': 2, 'dimension': -1}
1319
#                                 }
1320
#                             ],
1321
#                     }                    
1322
                ]
1323
            },
1324
        'CO____': {
1325
            'contact': 'Jochen Landgraf',
1326
            'contact_email': 'J.Landgraf@sron.nl',
1327
            'developer': 'KNMI',
1328
            'developer_contact': 'tropomi_l2_dev@knmi.nl',
1329
            'variables':
1330
                [
1331
                    {
1332
                        'color_scale': 'nipy_spectral',
1333
                        'data_range': [0.01, 0.07],
1334
                        'field_name': 'carbonmonoxide_total_column',
1335
                        'flag': False,
1336
                        'log_range': False,
1337
                        'primary_variable': 'carbonmonoxide_total_column',
1338
                        'show': True,
1339
                        'title': 'CO total vertical column',
1340
                        'units': 'mol m\u207B\u00B2'
1341
                    },
1342
                    {
1343
                        'color_scale': 'nipy_spectral',
1344
                        'data_range': [0.01, 0.07],
1345
                        'field_name': 'carbonmonoxide_total_column_corrected',
1346
                        'flag': False,
1347
                        'log_range': False,
1348
                        'primary_variable': 'carbonmonoxide_total_column_corrected',
1349
                        'show': True,
1350
                        'title': 'CO total vertical column (stripe-corrected)',
1351
                        'units': 'mol m\u207B\u00B2',
1352
                        'modes': ['OFFL', 'RPRO']
1353
                    },
1354
                    {
1355
                        'color_scale': 'nipy_spectral',
1356
                        'data_range': [0.0, 0.007],
1357
                        'field_name': 'carbonmonoxide_total_column_precision',
1358
                        'flag': False,
1359
                        'log_range': False,
1360
                        'primary_variable': 'carbonmonoxide_total_column_precision',
1361
                        'show': True,
1362
                        'level3': False,
1363
                        'title': 'CO total vertical column precision',
1364
                        'units': 'mol m\u207B\u00B2'
1365
                    },
1366
                    {
1367
                        'color_scale': 'nipy_spectral',
1368
                        'data_range': [0,200],
1369
                        'field_name': 'number_of_spectral_points_in_retrieval',
1370
                        'flag': False,
1371
                        'log_range': False,
1372
                        'primary_variable': 'number_of_spectral_points_in_retrieval',
1373
                        'show': True,
1374
                        'level3': False,
1375
                        'title': 'Number of spectral points in retrieval',
1376
                        'units': ''
1377
                    },
1378
                    {
1379
                        'color_scale': 'nipy_spectral',
1380
                        'data_range': [0,4500],
1381
                        'field_name': 'chi_square',
1382
                        'flag': False,
1383
                        'log_range': False,
1384
                        'primary_variable': 'chi_square',
1385
                        'show': True,
1386
                        'level3': False,
1387
                        'title': '\u03C7\u00B2',
1388
                        'units': ''
1389
                    },
1390
                    {
1391
                        'color_scale': 'nipy_spectral',
1392
                        'data_range': [0,10],
1393
                        'field_name': 'degrees_of_freedom',
1394
                        'flag': False,
1395
                        'log_range': False,
1396
                        'primary_variable': 'degrees_of_freedom',
1397
                        'level3': False,
1398
                        'show': True,
1399
                        'title': 'Degrees of freedom for signal',
1400
                        'units': ''
1401
                    },
1402
                    {
1403
                        'color_scale': 'nipy_spectral',
1404
                        'data_range': [0,25],
1405
                        'field_name': 'number_of_iterations',
1406
                        'flag': False,
1407
                        'log_range': False,
1408
                        'primary_variable': 'number_of_iterations',
1409
                        'show': True,
1410
                        'level3': False,
1411
                        'title': 'Number of iterations',
1412
                        'histogram_bincount': 26,
1413
                        'units': ''
1414
                    },
1415
                    {
1416
                        'color_scale': 'nipy_spectral',
1417
                        'data_range': [-0.001, 0.001],
1418
                        'field_name': 'carbonmonoxide_total_column_stripe_offset',
1419
                        'flag': False,
1420
                        'log_range': False,
1421
                        'primary_variable': 'carbonmonoxide_total_column_stripe_offset',
1422
                        'show': False,
1423
                        'title': 'CO total vertical column stripe offset',
1424
                        'units': 'mol m\u207B\u00B2',
1425
                        'modes': ['OFFL', 'RPRO']
1426
                    }
1427
                ]
1428
            },
1429
        'HCHO__': {
1430
            'contact': 'Isabelle De Smedt',
1431
            'contact_email': 'isabelle.desmedt@aeronomie.be',
1432
            'developer': 'DLR',
1433
            'developer_contact': 'mattia.pedergnana@dlr.de',
1434
            'variables':
1435
                [
1436
                    {
1437
                        'color_scale': 'nipy_spectral',
1438
                        'data_range': [0.,5E-4],
1439
                        'field_name': 'formaldehyde_tropospheric_vertical_column',
1440
                        'flag': False,
1441
                        'log_range': False,
1442
                        'primary_variable': 'formaldehyde_tropospheric_vertical_column',
1443
                        'show': True,
1444
                        'title': 'HCHO vertical column',
1445
                        'units': 'mol m\u207B\u00B2'
1446
                    },
1447
                    {
1448
                        'color_scale': 'nipy_spectral',
1449
                        'data_range': [0.,5E-4],
1450
                        'field_name': 'formaldehyde_tropospheric_vertical_column_precision',
1451
                        'flag': False,
1452
                        'log_range': False,
1453
                        'primary_variable': 'formaldehyde_tropospheric_vertical_column_precision',
1454
                        'show': True,
1455
                        'title': 'HCHO vertical column precision',
1456
                        'units': 'mol m\u207B\u00B2'
1457
                    },
1458
                    {
1459
                        'color_scale': 'nipy_spectral',
1460
                        'data_range': [0.,1.5E-4],
1461
                        'field_name': 'formaldehyde_tropospheric_vertical_column_correction',
1462
                        'flag': False,
1463
                        'log_range': False,
1464
                        'primary_variable': 'formaldehyde_tropospheric_vertical_column_correction',
1465
                        'show': True,
1466
                        'title': 'HCHO vertical column correction',
1467
                        'units': 'mol m\u207B\u00B2'
1468
                    },
1469
                    # {
1470
                    #     'color_scale': 'nipy_spectral',
1471
                    #     'data_range': [-5E-4,5E-4],
1472
                    #     'field_name': 'formaldehyde_slant_column_density',
1473
                    #     'flag': False,
1474
                    #     'log_range': False,
1475
                    #     'primary_variable': 'fitted_slant_columns',
1476
                    #     'show': True,
1477
                    #     'title': 'HCHO slant column',
1478
                    #     'units': 'mol m\u207B\u00B2',
1479
                    #     'transformers':
1480
                    #         [
1481
                    #             {
1482
                    #                 'class': 'transform.Select',
1483
                    #                 'arguments': {'dimension': -1, 'index': 0}
1484
                    #             }
1485
                    #         ]
1486
                    # },
1487
                    # {
1488
                    #     'color_scale': 'nipy_spectral',
1489
                    #     'data_range': [0.0,5E-4],
1490
                    #     'field_name': 'formaldehyde_slant_column_density_precision',
1491
                    #     'flag': False,
1492
                    #     'log_range': False,
1493
                    #     'primary_variable': 'fitted_slant_columns_precision',
1494
                    #     'show': True,
1495
                    #     'title': 'HCHO slant column precision',
1496
                    #     'units': 'mol m\u207B\u00B2',
1497
                    #     'transformers':
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff