docs/_build/html/_sources/netcdf_file.txt

changeset 11
79fea4145278
parent 0
58ac47f4bbea
equal deleted inserted replaced
10:f6927689a3b2 11:79fea4145278
1 The SCC netCDF file format
2 ==========================
3
4 Rationale
5 ---------
6
7 The Single Calculus Chain (SCC) is composed by two different modules:
8
9 - pre-processing module ( scc\_preprocessing)
10
11 - optical processing module ( ELDA)
12
13 To perfom aerosol optical retrievals the SCC needs not only the raw
14 lidar data but also a certain number of parameters to use in both
15 pre-processing and optical processing stages. The SCC gets these
16 parameters looking at two different locations:
17
18 - Single Calculus Chain relational database (SCC\_DB)
19
20 - Input files
21
22 There are some paramenters that can be found only in the input files
23 (those ones changing from measurement to measurement), others that can
24 be found only in the SCC\_DB and other ones that can be found in both
25 these locations. In the last case, if a particular parameter is needed,
26 the SCC will search first in the input files and then in SCC\_DB. If the
27 parameter is found in the input files the SCC will keep it without
28 looking into SCC\_DB.
29
30 The input files have to be submitted to the SCC in NetCDF format. At the
31 present the SCC can handle four different types of input files:
32
33 1. Raw Lidar Data
34 2. Sounding Data
35 3. Overlap
36 4. Lidar Ratio
37
38
39 As already mentioned, the Raw Lidar Data file contains not only the
40 raw lidar data but also other parameters to use to perform the
41 pre-processing and optical processing. The Sounding Data file
42 contains the data coming from a correlative radiosounding and it is used
43 by the SCC for molecular density calculation. The Overlap file
44 contains the measured overlap function. The Lidar Ratio file contains
45 a lidar ratio profile to use in elastic backscatter retrievals. The
46 Raw Lidar Data file is of course mandatory and the Sounding Data,
47 Overlap and Lidar Ratio files are optional. If Sounding Data file
48 is not submitted by the user, the molecular density will be calculated
49 by the SCC using the “US Standard Atmosphere 1976”. If the Overlap
50 file is not submitted by the user, the SCC will get the full overlap
51 height from SCC\_DB and it will produce optical results starting from
52 this height. If Lidar Ratio file is not submitted by the user, the
53 SCC will consider a fixed value for lidar ratio got from SCC\_DB.
54
55 The user can decide to submit all these files or any number of them (of
56 course the file Raw Lidar Data is mandatory). For example the user
57 can submit together with the Raw Lidar Data file only the Sounding
58 Data file or only the Overlap file.
59
60 This document provides a detailed explanation about the structure of the
61 NetCDF input files to use for SCC data submission. All Earlinet groups
62 should read it carefully because they have to produce such kind of input
63 files if they want to use the SCC for their standard lidar retrievals.
64 Every comments or suggestions regarding this document can be sent to
65 Giuseppe D’Amico by e-mail at ``damico@imaa.cnr.it``
66
67 This document is available for downloading at ``www.earlinetasos.org``
68
69 In table tab:rawdata is reported a list of dimensions, variables and
70 global attributes that can be used in the NetCDF Raw Lidar Data input
71 file. For each of them it is indicated:
72
73 - The name. For the multidimensional variables also the corresponding
74 dimensions are reported
75
76 - A description explaining the meaning
77
78 - The type
79
80 - If it is mandatory or optional
81
82 As already mentioned, the SCC can get some parameters looking first in
83 the Raw Lidar Data input file and then into SCC\_DB. This means that
84 to use the parameters stored in SCC\_DB the optional variables or
85 optional global attributes must not appear within Raw Lidar Data
86 file. This is the suggested and recommended way to use the SCC. Please
87 include optional parameters in the Raw Lidar Data only as an
88 exception.
89
90 In table tab:sounding, tab:overlap and tab:lr are reported all the
91 information about the structure of Sounding Data, Overlap and
92 Lidar Ratio input files respectively.
93
94 Example
95 -------
96
97 Let’s now consider an example of Raw Lidar Data input file. Suppose
98 we want to generate NetCDF input file corresponding to a measurement
99 with the following properties:
100
101 +----------------------+-------------------------------------------+
102 | Start Date | :math:`30^{th}` January 2009 |
103 +----------------------+-------------------------------------------+
104 | Start Time UT | 00:00:01 |
105 +----------------------+-------------------------------------------+
106 | Stop Time UT | 00:05:01 |
107 +----------------------+-------------------------------------------+
108 | Station Name | Dummy station |
109 +----------------------+-------------------------------------------+
110 | Earlinet call-sign | cc |
111 +----------------------+-------------------------------------------+
112 | Pointing angle | 5 degrees with respect to the zenith |
113 +----------------------+-------------------------------------------+
114
115 Moreover suppose that this measurement is composed by the following
116 lidar channels:
117
118 1. 1064 lidar channel
119
120 +------------------------------+-------------------------------+
121 | Emission wavelength=1064nm | Detection wavelength=1064nm |
122 +------------------------------+-------------------------------+
123 | Time resolution=30s | Number of laser shots=1500 |
124 +------------------------------+-------------------------------+
125 | Number of bins=3000 | Detection mode=analog |
126 +------------------------------+-------------------------------+
127 | Range resolution=7.5m | Polarization state=total |
128 +------------------------------+-------------------------------+
129
130 2. 532 cross lidar channel
131
132 +-----------------------------+---------------------------------+
133 | Emission wavelength=532nm | Detection wavelength=532nm |
134 +-----------------------------+---------------------------------+
135 | Time resolution=60s | Number of laser shots=3000 |
136 +-----------------------------+---------------------------------+
137 | Number of bins=5000 | Detection mode=photoncounting |
138 +-----------------------------+---------------------------------+
139 | Range resolution=15m | Polarization state=cross |
140 +-----------------------------+---------------------------------+
141
142 3. 532 parallel lidar channel
143
144 +-----------------------------+---------------------------------+
145 | Emission wavelength=532nm | Detection wavelength=532nm |
146 +-----------------------------+---------------------------------+
147 | Time resolution=60s | Number of laser shots=3000 |
148 +-----------------------------+---------------------------------+
149 | Number of bins=5000 | Detection mode=photoncounting |
150 +-----------------------------+---------------------------------+
151 | Range resolution=15m | Polarization state=parallel |
152 +-----------------------------+---------------------------------+
153
154 4. 607 :math:`N_2` vibrational Raman channel
155
156 +-----------------------------+---------------------------------+
157 | Emission wavelength=532nm | Detection wavelength=607nm |
158 +-----------------------------+---------------------------------+
159 | Time resolution=60s | Number of laser shots=3000 |
160 +-----------------------------+---------------------------------+
161 | Number of bins=5000 | Detection mode=photoncounting |
162 +-----------------------------+---------------------------------+
163 | Range resolution=15m |
164 +-----------------------------+---------------------------------+
165
166 Finally let’s assume we have also performed dark measurements before the
167 lidar measurements from the 23:50:01 UT up to 23:53:01 UT of
168 29:math:`^\mathrmth` January 2009.
169
170 Dimensions
171 ~~~~~~~~~~
172
173 Looking at table tab:rawdata we have to fix the following dimensions:
174
175 ::
176
177 points
178 channels
179 time
180 nb_of_time_scales
181 scan_angles
182 time_bck
183
184 The dimension ``time`` is unlimited so we don’t have to fix it.
185
186 We have 4 lidar channels so:
187
188 ::
189
190 channels=4
191
192 Regarding the dimension ``points`` we have only one channel with a
193 number of vertical bins equal to 3000 (the 1064nm) and all other
194 channels with 5000 vertical bins. In cases like this the dimension
195 ``points`` has to be fixed to the maximum number of vertical bins so:
196
197 ::
198
199 points=5000
200
201 Moreover only one channel (1064nm) is acquired with a time resolution of
202 30 seconds, all the other channels have a time resolution of 60 seconds.
203 This means that we have to define two different time scales. We have to
204 set:
205
206 ::
207
208 nb_of_time_scales=2
209
210 The measurement is performed only at one scan angle (5 degrees with
211 respect to the zenith) so:
212
213 ::
214
215 scan_angles=1
216
217 We have 3 minutes of dark measurements and two different time scales one
218 with 60 seconds time resolution and the other one with 30 seconds time
219 resolution. So we will have 3 different dark profiles for the channels
220 acquired with the first time scale and 6 for the lidar channels acquired
221 with the second time scale. We have to fix the dimension ``time_bck`` as
222 the maximum between these values:
223
224 ::
225
226 time_bck=6
227
228 Variables
229 ~~~~~~~~~
230
231 In this section it will be explained how to fill all the possible
232 variables either mandatory or optional of Raw Lidar Data input file.
233
234 Raw_Data_Start_Time(time, nb_of_time_scales)
235 This 2 dimensional mandatory array has to contain the acquisition
236 start time (in seconds from the time given by the global attribute
237 ``RawData_Start_Time_UT``) of each lidar profile. In this example we
238 have two different time scales: one is characterized by steps of 30
239 seconds (the 1064nm is acquired with this time scale) the other by
240 steps of 60 seconds (532cross, 532parallel and 607nm). Moreover the
241 measurement start time is 00:00:01 UT and the measurement stop time
242 is 00:05:01 UT. In this case we have to define:
243
244 ::
245
246 Raw_Data_Start_Time =
247 0, 0,
248 60, 30,
249 120, 60,
250 180, 90,
251 240, 120,
252 _, 150,
253 _, 180,
254 _, 210,
255 _, 240,
256 _, 270 ;
257
258 The order used to fill this array defines the correspondence between
259 the different time scales and the time scale index. In this example
260 we have a time scale index of 0 for the time scale with steps of 60
261 seconds and a time scale index of 1 for the other one.
262
263 Raw_Data_Stop_Time(time, nb_of_time_scales)
264 The same as previous item but for the data acquisition stop time.
265 Following a similar procedure we have to define:
266
267 ::
268
269 Raw_Data_Stop_Time =
270 60, 30,
271 120, 60,
272 180, 90,
273 240, 120,
274 300, 150,
275 _, 180,
276 _, 210,
277 _, 240,
278 _, 270,
279 _, 300 ;
280
281 Raw_Lidar_Data(time, channels, points)
282 This 3 dimensional mandatory array has to be filled with the
283 time-series of raw lidar data. The photoncounting profiles have to
284 submitted in counts (so as integers) while the analog ones in mV. The
285 order the user chooses to fill this array defines the correspondence
286 between channel index and lidar data.
287
288 For example if we fill this array in such way that:
289
290 +-------------------------------------+------------------------------------------------------------+
291 | Raw_Lidar_Data(time,0,points | :math:`\rightarrow` is the time-series of 1064 nm |
292 +-------------------------------------+------------------------------------------------------------+
293 | Raw_Lidar_Data(time,1,points | :math:`\rightarrow` is the time-series of 532 cross |
294 +-------------------------------------+------------------------------------------------------------+
295 | Raw_Lidar_Data(time,2,points | :math:`\rightarrow` is the time-series of 532 parallel |
296 +-------------------------------------+------------------------------------------------------------+
297 | Raw_Lidar_Data(time,3,points | :math:`\rightarrow` is the time-series of 607 nm |
298 +-------------------------------------+------------------------------------------------------------+
299
300 from now on the channel index 0 is associated to the 1064 channel,
301 1 to the 532 cross, 2 to the 532 parallel and 3 to the 607nm.
302
303 Raw_Bck_Start_Time(time_bck, nb_of_time_scales)
304 This 2 dimensional optional array has to contain the acquisition
305 start time (in seconds from the time given by the global attribute
306 ``RawBck_Start_Time_UT``) of each dark measurements profile.
307 Following the same procedure used for the variable
308 ``Raw_Data_Start_Time`` we have to define:
309
310 ::
311
312 Raw_Bck_Start_Time =
313 0, 0,
314 60, 30,
315 120, 60,
316 _, 90,
317 _, 120,
318 _, 150;
319
320 Raw_Bck_Stop_Time(time_bck, nb_of_time_scales)
321 The same as previous item but for the dark acquisition stop time.
322 Following a similar procedure we have to define:
323
324 ::
325
326 Raw_Bck_Stop_Time =
327 60, 30,
328 120, 60,
329 180, 90,
330 _, 120,
331 _, 150,
332 _, 180 ;
333
334
335 Background_Profile(time_bck, channels, points)
336 This 3 dimensional optional array has to be filled with the
337 time-series of the dark measurements data. The photoncounting
338 profiles have to submitted in counts (so as integers) while the
339 analog ones in mV. The user has to fill this array following the same
340 order used in filling the array ``Raw_Lidar_Data``:
341
342 +---------------------------------------------+----------------------------------------------------------+
343 | Background_Profile(time_bck,0,points | :math:`\rightarrow` dark time-series at 1064 nm |
344 +---------------------------------------------+----------------------------------------------------------+
345 | Background_Profile(time_bck,1,points | :math:`\rightarrow` dark time-series at 532 cross |
346 +---------------------------------------------+----------------------------------------------------------+
347 | Background_Profile(time_bck,2,points | :math:`\rightarrow` dark time-series at 532 parallel |
348 +---------------------------------------------+----------------------------------------------------------+
349 | Background_Profile(time_bck,3,points | :math:`\rightarrow` dark time-series at 607 nm |
350 +---------------------------------------------+----------------------------------------------------------+
351
352
353 channel_ID(channels)
354 This mandatory array provides the link between the channel index
355 within the Raw Lidar Data input file and the channel ID in
356 SCC\_DB. To fill this variable the user has to know which channel IDs
357 in SCC\_DB correspond to his lidar channels. For this purpose the
358 SCC, in its final version will provide to the user a special tool to
359 get these channel IDs through a Web interface. At the moment this
360 interface is not yet available and these channel IDs will be
361 communicated directly to the user by the NA5 people.
362
363 Anyway to continue the example let’s suppose that the four lidar
364 channels taken into account are mapped into SCC\_DB with the
365 following channel IDs:
366
367 +----------------+--------------------------------------+
368 | 1064 nm | :math:`\rightarrow` channel ID=7 |
369 +----------------+--------------------------------------+
370 | 532 cross | :math:`\rightarrow` channel ID=5 |
371 +----------------+--------------------------------------+
372 | 532 parallel | :math:`\rightarrow` channel ID=6 |
373 +----------------+--------------------------------------+
374 | 607 nm | :math:`\rightarrow` channel ID=8 |
375 +----------------+--------------------------------------+
376
377 In this case we have to define:
378
379 ::
380
381 channel_ID = 7, 5, 6, 8 ;
382
383 id_timescale(channels)
384 This mandatory array is introduced to determine which time scale is
385 used for the acquisition of each lidar channel. In particular this
386 array defines the link between the channel index and the time scale
387 index. In our example we have two different time scales. Filling the
388 arrays ``Raw_Data_Start_Time`` and ``Raw_Data_Stop_Time`` we have
389 defined a time scale index of 0 for the time scale with steps of 60
390 seconds and a time scale index of 1 for the other one with steps of
391 30 seconds. In this way this array has to be set as:
392
393 ::
394
395 id_timescale = 1, 0, 0, 0 ;
396
397 Laser_Pointing_Angle(scan_angles
398 This mandatory array contains all the scan angles used in the
399 measurement. In our example we have only one scan angle of 5 degrees
400 with respect to the zenith, so we have to define:
401
402 ::
403
404 Laser_Pointing_Angle = 5 ;
405
406 Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales)
407 This mandatory array is introduced to determine which scan angle is
408 used for the acquisition of each lidar profile. In particular this
409 array defines the link between the time and time scales indexes and
410 the scan angle index. In our example we have a single scan angle that
411 has to correspond to the scan angle index 0. So this array has to be
412 defined as:
413
414 ::
415
416 Laser_Pointing_Angle_of_Profiles =
417 0, 0,
418 0, 0,
419 0, 0,
420 0, 0,
421 0, 0,
422 _, 0,
423 _, 0,
424 _, 0,
425 _, 0,
426 _, 0 ;
427
428 Laser_Shots(time, channels)
429 This mandatory array stores the laser shots accumulated at each time
430 for each channel. In our example the number of laser shots
431 accumulated is 1500 for the 1064nm channels and 3000 for all the
432 other channels. Moreover the laser shots do not change with the time.
433 So we have to define this array as:
434
435 ::
436
437 Laser_Shots =
438 1500, 3000, 3000, 3000,
439 1500, 3000, 3000, 3000,
440 1500, 3000, 3000, 3000,
441 1500, 3000, 3000, 3000,
442 1500, 3000, 3000, 3000,
443 1500, _, _, _,
444 1500, _, _, _,
445 1500, _, _, _,
446 1500, _, _, _,
447 1500, _, _, _ ;
448
449 Emitted_Wavelength(channels)
450 This optional array defines the link between the channel index and
451 the emission wavelength for each lidar channel. The wavelength has to
452 be expressed in nm. This information can be also taken from SCC\_DB.
453 In our example we have:
454
455 ::
456
457 Emitted_Wavelength = 1064, 532, 532, 532 ;
458
459 Detected_Wavelength(channels)
460 This optional array defines the link between the channel index and
461 the detected wavelength for each lidar channel. Here detected
462 wavelength means the value of center of interferential filter
463 expressed in nm. This information can be also taken from SCC\_DB. In
464 our example we have:
465
466 ::
467
468 Detected_Wavelength = 1064, 532, 532, 607 ;
469
470 Raw_Data_Range_Resolution(channels)
471 This optional array defines the link between the channel index and
472 the raw range resolution for each channel. If the scan angle is
473 different from zero this quantity is different from the vertical
474 resolution. More precisely if :math:`\alpha` is the scan angle used
475 and :math:`\Delta z` is the range resolution the vertical
476 resolution is calculated as :math:`\Delta
477 z'=\Delta z \cos\alpha`. This array has to be filled with
478 :math:`\Delta z` and not with :math:`\Delta z'`. The unit is
479 meters. This information can be also taken from SCC\_DB. In our
480 example we have:
481
482 ::
483
484 Raw_Data_Range_Resolution = 7.5, 15.0, 15.0, 15.0 ;
485
486 ID_Range(channels)
487 This optional array defines if a particular channel is configured as
488 high, low or ultranear range channel. In particular a value 0
489 indicates a low range channel, a value 1 a high range channel and a
490 value of 2 an ultranear range channel. If for a particular channel
491 you don’t separate between high and low range channel, please set the
492 corresponding value to 1. This information can be also taken from
493 SCC\_DB. In our case we have to set:
494
495 ::
496
497 ID_Range = 1, 1, 1, 1 ;
498
499 Scattering_Mechanism(channels)
500 This optional array defines the scattering mechanism involved in
501 each lidar channel. In particular the following values are adopted:
502
503 +------+---------------------------------------------------------------------------------------------+
504 | 0 | :math:`\rightarrow` Total elastic backscatter |
505 +------+---------------------------------------------------------------------------------------------+
506 | 1 | :math:`\rightarrow` :math:`N_2` vibrational Raman backscatter |
507 +------+---------------------------------------------------------------------------------------------+
508 | 2 | :math:`\rightarrow` Cross polarization elastic backscatter |
509 +------+---------------------------------------------------------------------------------------------+
510 | 3 | :math:`\rightarrow` Parallel polarization elastic backscatter |
511 +------+---------------------------------------------------------------------------------------------+
512 | 4 | :math:`\rightarrow` :math:`H_2O` vibrational Raman backscatter |
513 +------+---------------------------------------------------------------------------------------------+
514 | 5 | :math:`\rightarrow` Rotational Raman Stokes line close to elastic line |
515 +------+---------------------------------------------------------------------------------------------+
516 | 6 | :math:`\rightarrow` Rotational Raman Stokes line far from elastic line |
517 +------+---------------------------------------------------------------------------------------------+
518 | 7 | :math:`\rightarrow` Rotational Raman anti-Stokes line close to elastic line |
519 +------+---------------------------------------------------------------------------------------------+
520 | 8 | :math:`\rightarrow` Rotational Raman anti-Stokes line far from elastic line |
521 +------+---------------------------------------------------------------------------------------------+
522 | 9 | :math:`\rightarrow` Rotational Raman Stokes and anti-Stokes lines close to elastic line |
523 +------+---------------------------------------------------------------------------------------------+
524 | 10 | :math:`\rightarrow` Rotational Raman Stokes and anti-Stokes lines far from elastic line |
525 +------+---------------------------------------------------------------------------------------------+
526
527 This information can be also taken from SCC\_DB. In our example we have:
528
529 ::
530
531 Scattering_Mechanism = 0, 2, 3, 1 ;
532
533 Acquisition_Mode(channels)
534 This optional array defines the acquisition mode (analog or
535 photoncounting) involved in each lidar channel. In particular a value
536 of 0 means analog mode and 1 photoncounting mode. This information
537 can be also taken from SCC\_DB. In our example we have:
538
539 ::
540
541 Acquisition_Mode = 0, 1, 1, 1 ;
542
543 Laser_Repetition_Rate(channels)
544 This optional array defines the repetition rate in Hz used to
545 acquire each lidar channel. This information can be also taken from
546 SCC\_DB. In our example we are supposing we have only one laser with
547 a repetition rate of 50 Hz so we have to set:
548
549 ::
550
551 Laser_Repetition_Rate = 50, 50, 50, 50 ;
552
553 Dead_Time(channels)
554 This optional array defines the dead time in ns associated to each
555 lidar channel. The SCC will use the values given by this array to
556 correct the photoncounting signals for dead time. Of course for
557 analog signals no dead time correction will be applied (for analog
558 channels the corresponding dead time values have to be set to
559 undefined value). This information can be also taken from SCC\_DB. In
560 our example the 1064 nm channel is acquired in analog mode so the
561 corresponding dead time value has to be undefined. If we suppose a
562 dead time of 10 ns for all other channels we have to set:
563
564 ::
565
566 Dead_Time = _, 10, 10, 10 ;
567
568 Dead_Time_Corr_Type(channels
569 This optional array defines which kind of dead time correction has
570 to be applied on each photoncounting channel. The SCC will correct
571 the data supposing a not-paralyzable channel if a value of 0 is found
572 while a paralyzable channel is supposed if a value of 1 is found. Of
573 course for analog signals no dead time correction will be applied and
574 so the corresponding values have to be set to undefined value. This
575 information can be also taken from SCC\_DB. In our example the 1064
576 nm channel is acquired in analog mode so the corresponding has to be
577 undefined. If we want to consider all the photoncounting signals as
578 not-paralyzable ones: we have to set:
579
580 ::
581
582 Dead_Time_Corr_Type = _, 0, 0, 0 ;
583
584 Trigger_Delay(channels)
585 This optional array defines the delay (in ns) of the middle of the
586 first rangebin with respect to the output laser pulse for each lidar
587 channel. The SCC will use the values given by this array to correct
588 for trigger delay. This information can be also taken from SCC\_DB.
589 Let’s suppose that in our example all the photoncounting channels are
590 not affected by this delay and only the analog channel at 1064nm is
591 acquired with a delay of 50ns. In this case we have to set:
592
593 ::
594
595 Trigger_Delay = 50, 0, 0, 0 ;
596
597 Background_Mode(channels
598 This optional array defines how the atmospheric background has to be
599 subtracted from the lidar channel. Two options are available for the
600 calculation of atmospheric background:
601
602 #. Average in the far field of lidar channel. In this case the value
603 of this variable has to be 1
604
605 #. Average within pre-trigger bins. In this case the value of this
606 variable has to be 0
607
608 This information can be also taken from SCC\_DB. Let’s suppose in our
609 example we use the pre-trigger for the 1064nm channel and the far
610 field for all other channels. In this case we have to set:
611
612 ::
613
614 Background_Mode = 0, 1, 1, 1 ;
615
616 Background_Low(channels)
617 This mandatory array defines the minimum altitude (in meters) to
618 consider in calculating the atmospheric background for each channel.
619 In case pre-trigger mode is used the corresponding value has to be
620 set to the rangebin to be used as lower limit (within pre-trigger
621 region) for background calculation. In our example, if we want to
622 calculate the background between 30000 and 50000 meters for all
623 photoncounting channels and we want to use the first 500 pre-trigger
624 bins for the background calculation for the 1064nm channel we have to
625 set:
626
627 ::
628
629 Background_Low= 0, 30000, 30000, 30000 ;
630
631 Background_High(channels)
632 This mandatory array defines the maximum altitude (in meters) to
633 consider in calculating the atmospheric background for each channel.
634 In case pre-trigger mode is used the corresponding value has to be
635 set to the rangebin to be used as upper limit (within pre-trigger
636 region) for background calculation. In our example, if we want to
637 calculate the background between 30000 and 50000 meters for all
638 photoncounting channels and we want to use the first 500 pre-trigger
639 bins for the background calculation for the 1064nm channel we have to
640 set:
641
642 ::
643
644 Background_High = 500, 50000, 50000, 50000 ;
645
646 Molecular_Calc
647 This mandatory variable defines the way used by SCC to calculate the
648 molecular density profile. At the moment two options are available:
649
650 #. US Standard Atmosphere 1976. In this case the value of this
651 variable has to be 0
652
653 #. Radiosounding. In this case the value of this variable has to be 1
654
655 If we decide to use the option 1. we have to provide also the
656 measured pressure and temperature at lidar station level. Indeed if
657 we decide to use the option 2. a radiosounding file has to be
658 submitted separately in NetCDF format (the structure of this file is
659 summarized in table tab:sounding). Let’s suppose we want to use the
660 option 1. so:
661
662 ::
663
664 Molecular_Calc = 0 ;
665
666 Pressure_at_Lidar_Station
667 Because we have chosen the US Standard Atmosphere for calculation of
668 the molecular density profile we have to give the pressure in hPa at
669 lidar station level:
670
671 ::
672
673 Pressure_at_Lidar_Station = 1010 ;
674
675 Temperature_at_Lidar_Station
676 Because we have chosen the US Standard Atmosphere for calculation of
677 the molecular density profile we have to give the temperature in C at
678 lidar station level:
679
680 ::
681
682 Temperature_at_Lidar_Station = 19.8 ;
683
684 Depolarization_Factor(channels)
685 This array is required only for lidar systems that use the two
686 depolarization channels for the backscatter retrieval. It represents
687 the factor :math:`f` to calculate the total backscatter signal
688 :math:`S_t` combining its cross :math:`S_c` and parallel
689 :math:`S_p` components: :math:`S_t=S_p+fS_c`. This factor is
690 mandatory only for systems acquiring :math:`S_c` and :math:`S_p`
691 and not :math:`S_t`. For systems acquiring :math:`S_c`,
692 :math:`S_p` and :math:`S_t` this factor is optional and it will
693 be used only for depolarizaton ratio calculation. Moreover only the
694 values of the array corresponding to cross polarization channels will
695 be considered; all other values will be not taken into account and
696 should be set to undefined value. In our example for the wavelength
697 532nm we have only the cross and the parallel components and not the
698 total one. So we have to give the value of this factor only in
699 correspondence of the 532nm cross polarization channel that
700 corresponds to the channel index 1. Suppose that this factor is 0.88.
701 Moreover, because we don’t have any other depolarization channels we
702 have also to set all other values of the array to undefined value.
703
704 ::
705
706 Depolarization_Factor = _,0.88,_,_ ;
707
708 LR_Input(channels)
709 This array is required only for lidar channels for which elastic
710 backscatter retrieval has to be performed. It defines the lidar ratio
711 to be used within this retrieval. Two options are available:
712
713 #. The user can submit a lidar ratio profile. In this case the value
714 of this variable has to be 0.
715
716 #. A fixed value of lidar ratio can be used. In this case the value
717 of this variable has to be 1.
718
719 If we decide to use the option 1. a lidar ratio file has to be
720 submitted separately in NetCDF format (the structure of this file is
721 summarized in table tab:lr). If we decide to use the option 2. the
722 fixed value of lidar ratio will be taken from SCC\_DB. In our example
723 we have to give a value of this array only for the 1064nm lidar
724 channel because for the 532nm we will be able to retrieve a Raman
725 backscatter coefficient. In case we want to use the fixed value
726 stored in SCC\_DB we have to set:
727
728 ::
729
730 LR_Input = 1,_,_,_ ;
731
732 DAQ_Range(channels)
733 This array is required only if one or more lidar signals are
734 acquired in analog mode. It gives the analog scale in mV used to
735 acquire the analog signals. In our example we have only the 1064nm
736 channel acquired in analog mode. If we have used a 100mV analog scale
737 to acquire this channel we have to set:
738
739 ::
740
741 DAQ_Range = 100,_,_,_ ;
742
743 Global attributes
744 ~~~~~~~~~~~~~~~~~
745
746 Measurement_ID
747 This mandatory global attribute defines the measurement ID
748 corresponding to the actual lidar measurement. It is a string
749 composed by 12 characters. The first 8 characters give the start date
750 of measurement in the format YYYYMMDD. The next 2 characters give the
751 Earlinet call-sign of the station. The last 2 characters are used to
752 distinguish between different time-series within the same date. In
753 our example we have to set:
754
755 ::
756
757 Measurement_ID= "20090130cc00" ;
758
759 RawData_Start_Date
760 This mandatory global attribute defines the start date of lidar
761 measurements in the format YYYYMMDD. In our case we have:
762
763 ::
764
765 RawData_Start_Date = "20090130" ;
766
767 RawData_Start_Time_UT
768 This mandatory global attribute defines the UT start time of lidar
769 measurements in the format HHMMSS. In our case we have:
770
771 ::
772
773 RawData_Start_Time_UT = "000001" ;
774
775 RawData_Stop_Time_UT``
776 This mandatory global attribute defines the UT stop time of lidar
777 measurements in the format HHMMSS. In our case we have:
778
779 ::
780
781 RawData_Stop_Time_UT = "000501" ;
782
783 RawBck_Start_Date
784 This optional global attribute defines the start date of dark
785 measurements in the format YYYYMMDD. In our case we have:
786
787 ::
788
789 RawBck_Start_Date = "20090129" ;
790
791 RawBck_Start_Time_UT
792 This optional global attribute defines the UT start time of dark
793 measurements in the format HHMMSS. In our case we have:
794
795 ::
796
797 RawBck_Start_Time_UT = "235001" ;
798
799 RawBck_Stop_Time_UT
800 This optional global attribute defines the UT stop time of dark
801 measurements in the format HHMMSS. In our case we have:
802
803 ::
804
805 RawBck_Stop_Time_UT = "235301" ;
806
807 Example of file (CDL format)
808 ----------------------------
809
810 To summarize we have the following NetCDF Raw Lidar Data file (in CDL
811 format):
812
813 ::
814
815 dimensions:
816 points = 5000 ;
817 channels = 4 ;
818 time = UNLIMITED ; // (10 currently)
819 nb_of_time_scales = 2 ;
820 scan_angles = 1 ;
821 time_bck = 6 ;
822 variables:
823 int channel_ID(channels) ;
824 int Laser_Repetition_Rate(channels) ;
825 double Laser_Pointing_Angle(scan_angles) ;
826 int ID_Range(channels) ;
827 int Scattering_Mechanism(channels) ;
828 double Emitted_Wavelength(channels) ;
829 double Detected_Wavelength(channels) ;
830 double Raw_Data_Range_Resolution(channels) ;
831 int Background_Mode(channels) ;
832 double Background_Low(channels) ;
833 double Background_High(channels) ;
834 int Molecular_Calc ;
835 double Pressure_at_Lidar_Station ;
836 double Temperature_at_Lidar_Station ;
837 int id_timescale(channels) ;
838 double Dead_Time(channels) ;
839 int Dead_Time_Corr_Type(channels) ;
840 int Acquisition_Mode(channels) ;
841 double Trigger_Delay(channels) ;
842 int LR_Input(channels) ;
843 int Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales) ;
844 int Raw_Data_Start_Time(time, nb_of_time_scales) ;
845 int Raw_Data_Stop_Time(time, nb_of_time_scales) ;
846 int Raw_Bck_Start_Time(time_bck, nb_of_time_scales) ;
847 int Raw_Bck_Stop_Time(time_bck, nb_of_time_scales) ;
848 int Laser_Shots(time, channels) ;
849 double Raw_Lidar_Data(time, channels, points) ;
850 double Background_Profile(time_bck, channels, points) ;
851 double DAQ_Range(channels) ;
852
853 // global attributes:
854 :Measurement_ID = "20090130cc00" ;
855 :RawData_Start_Date = "20090130" ;
856 :RawData_Start_Time_UT = "000001" ;
857 :RawData_Stop_Time_UT = "000501" ;
858 :RawBck_Start_Date = "20090129" ;
859 :RawBck_Start_Time_UT = "235001" ;
860 :RawBck_Stop_Time_UT = "235301" ;
861
862 data:
863
864 channel_ID = 7, 5, 6, 8 ;
865
866 Laser_Repetition_Rate = 50, 50, 50, 50 ;
867
868 Laser_Pointing_Angle = 5 ;
869
870 ID_Range = 1, 1, 1, 1 ;
871
872 Scattering_Mechanism = 0, 2, 3, 1 ;
873
874 Emitted_Wavelength = 1064, 532, 532, 532 ;
875
876 Detected_Wavelength = 1064, 532, 532, 607 ;
877
878 Raw_Data_Range_Resolution = 7.5, 15, 15, 15 ;
879
880 Background_Mode = 0, 1, 1, 1 ;
881
882 Background_Low = 0, 30000, 30000, 30000 ;
883
884 Background_High = 500, 50000, 50000, 50000 ;
885
886 Molecular_Calc = 0 ;
887
888 Pressure_at_Lidar_Station = 1010 ;
889
890 Temperature_at_Lidar_Station = 19.8 ;
891
892 id_timescale = 1, 0, 0, 0 ;
893
894 Dead_Time = _, 10, 10, 10 ;
895
896 Dead_Time_Corr_Type = _, 0, 0, 0 ;
897
898 Acquisition_Mode = 0, 1, 1, 1 ;
899
900 Trigger_Delay = 50, 0, 0, 0 ;
901
902 LR_Input = 1,_,_,_ ;
903
904 DAQ_Range = 100,_,_,_ ;
905
906 Laser_Pointing_Angle_of_Profiles =
907 0, 0,
908 0, 0,
909 0, 0,
910 0, 0,
911 0, 0,
912 _, 0,
913 _, 0,
914 _, 0,
915 _, 0,
916 _, 0 ;
917
918
919 Raw_Data_Start_Time =
920 0, 0,
921 60, 30,
922 120, 60,
923 180, 90,
924 240, 120,
925 _, 150,
926 _, 180,
927 _, 210,
928 _, 240,
929 _, 270 ;
930
931 Raw_Data_Stop_Time =
932 60, 30,
933 120, 60,
934 180, 90,
935 240, 120,
936 300, 150,
937 _, 180,
938 _, 210,
939 _, 240,
940 _, 270,
941 _, 300 ;
942
943
944 Raw_Bck_Start_Time =
945 0, 0,
946 60, 30,
947 120, 60,
948 _, 90,
949 _, 120,
950 _, 150;
951
952
953 Raw_Bck_Stop_Time =
954 60, 30,
955 120, 60,
956 180, 90,
957 _, 120,
958 _, 150,
959 _, 180 ;
960
961
962 Laser_Shots =
963 1500, 3000, 3000, 3000,
964 1500, 3000, 3000, 3000,
965 1500, 3000, 3000, 3000,
966 1500, 3000, 3000, 3000,
967 1500, 3000, 3000, 3000,
968 1500, _, _, _,
969 1500, _, _, _,
970 1500, _, _, _,
971 1500, _, _, _,
972 1500, _, _, _ ;
973
974
975 Raw_Lidar_Data = ...
976
977 Background_Profile = ...
978
979 Please keep in mind that in case you submit a file like the previous one
980 all the parameters present in it will be used by the SCC even if you
981 have different values for the same parameters within the SCC\_DB. If you
982 want to use the values already stored in SCC\_DB (this should be the
983 usual way to use SCC) the Raw Lidar Data input file has to be
984 modified as follows:
985
986 ::
987
988 dimensions:
989 points = 5000 ;
990 channels = 4 ;
991 time = UNLIMITED ; // (10 currently)
992 nb_of_time_scales = 2 ;
993 scan_angles = 1 ;
994 time_bck = 6 ;
995 variables:
996 int channel_ID(channels) ;
997 double Laser_Pointing_Angle(scan_angles) ;
998 double Background_Low(channels) ;
999 double Background_High(channels) ;
1000 int Molecular_Calc ;
1001 double Pressure_at_Lidar_Station ;
1002 double Temperature_at_Lidar_Station ;
1003 int id_timescale(channels) ;
1004 int Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales) ;
1005 int Raw_Data_Start_Time(time, nb_of_time_scales) ;
1006 int Raw_Data_Stop_Time(time, nb_of_time_scales) ;
1007 int Raw_Bck_Start_Time(time_bck, nb_of_time_scales) ;
1008 int Raw_Bck_Stop_Time(time_bck, nb_of_time_scales) ;
1009 int LR_Input(channels) ;
1010 int Laser_Shots(time, channels) ;
1011 double Raw_Lidar_Data(time, channels, points) ;
1012 double Background_Profile(time_bck, channels, points) ;
1013 double DAQ_Range(channels) ;
1014
1015 // global attributes:
1016 :Measurement_ID = "20090130cc00" ;
1017 :RawData_Start_Date = "20090130" ;
1018 :RawData_Start_Time_UT = "000001" ;
1019 :RawData_Stop_Time_UT = "000501" ;
1020 :RawBck_Start_Date = "20090129" ;
1021 :RawBck_Start_Time_UT = "235001" ;
1022 :RawBck_Stop_Time_UT = "235301" ;
1023
1024 data:
1025
1026 channel_ID = 7, 5, 6, 8 ;
1027
1028 Laser_Pointing_Angle = 5 ;
1029
1030 Background_Low = 0, 30000, 30000, 30000 ;
1031
1032 Background_High = 500, 50000, 50000, 50000 ;
1033
1034 Molecular_Calc = 0 ;
1035
1036 Pressure_at_Lidar_Station = 1010 ;
1037
1038 Temperature_at_Lidar_Station = 19.8 ;
1039
1040 id_timescale = 1, 0, 0, 0 ;
1041
1042 LR_Input = 1,_,_,_ ;
1043
1044 DAQ_Range = 100,_,_,_ ;
1045
1046 Laser_Pointing_Angle_of_Profiles =
1047 0, 0,
1048 0, 0,
1049 0, 0,
1050 0, 0,
1051 0, 0,
1052 _, 0,
1053 _, 0,
1054 _, 0,
1055 _, 0,
1056 _, 0 ;
1057
1058
1059 Raw_Data_Start_Time =
1060 0, 0,
1061 60, 30,
1062 120, 60,
1063 180, 90,
1064 240, 120,
1065 _, 150,
1066 _, 180,
1067 _, 210,
1068 _, 240,
1069 _, 270 ;
1070
1071 Raw_Data_Stop_Time =
1072 60, 30,
1073 120, 60,
1074 180, 90,
1075 240, 120,
1076 300, 150,
1077 _, 180,
1078 _, 210,
1079 _, 240,
1080 _, 270,
1081 _, 300 ;
1082
1083
1084 Raw_Bck_Start_Time =
1085 0, 0,
1086 60, 30,
1087 120, 60,
1088 _, 90,
1089 _, 120,
1090 _, 150;
1091
1092
1093 Raw_Bck_Stop_Time =
1094 60, 30,
1095 120, 60,
1096 180, 90,
1097 _, 120,
1098 _, 150,
1099 _, 180 ;
1100
1101
1102 Laser_Shots =
1103 1500, 3000, 3000, 3000,
1104 1500, 3000, 3000, 3000,
1105 1500, 3000, 3000, 3000,
1106 1500, 3000, 3000, 3000,
1107 1500, 3000, 3000, 3000,
1108 1500, _, _, _,
1109 1500, _, _, _,
1110 1500, _, _, _,
1111 1500, _, _, _,
1112 1500, _, _, _ ;
1113
1114
1115 Raw_Lidar_Data = ...
1116
1117 Background_Profile = ...
1118
1119 This example file contains the minimum collection of mandatory
1120 information that has to be found within the Raw Lidar Data input
1121 file. If it is really necessary, the user can decide to add to these
1122 mandatory parameters any number of additional parameters considered in
1123 the previous example.
1124
1125 Finally, suppose we want to make the following changes with respect to
1126 the previous example:
1127
1128 #. use a sounding file for molecular density calculation instead of “US
1129 Standar Atmosphere 1976”
1130
1131 #. supply a lidar ratio profile to use in elastic backscatter retrieval
1132 instead of a fixed value
1133
1134 #. provide a overlap function for overlap correction
1135
1136 In this case we have to generate the following NetCDF additional files:
1137
1138 rs_20090130cc00.nc
1139 The name of Sounding Data file has to be computed as follows:
1140 ``"rs_"``+``Measurement_ID``
1141 The structure of this file is summarized in table tab:sounding.
1142
1143 ov_20090130cc00.nc
1144 The name of Overlap file has to be computed as follows:
1145 ``"ov_"``+``Measurement_ID``
1146 The structure of this file is summarized in table tab:overlap.
1147
1148 lr_20090130cc00.nc
1149 The name of Lidar Ratio file has to be computed as follows:
1150 ``"lr_"``+``Measurement_ID``
1151 The structure of this file is summarized in table tab:lr.
1152
1153 Moreover we need to apply the following changes to the Raw Lidar Data
1154 input file:
1155
1156 1. Change the value of the variable ``Molecular_Calc`` as follows:
1157
1158 ::
1159
1160 Molecular_Calc = 1 ;
1161
1162 Of course the variables ``Pressure_at_Lidar_Station`` and
1163 ``Temperature_at_Lidar_Station`` are not necessary anymore.
1164
1165 2. Change the values of the array ``LR_Input`` as follows:
1166
1167 ::
1168
1169 LR_Input = 0,_,_,_ ;
1170
1171 3. Add the global attribute ``Sounding_File_Name``
1172
1173 ::
1174
1175 Sounding_File_Name = "rs_20090130cc00.nc" ;
1176
1177 5. Add the global attribute ``LR_File_Name``
1178
1179 ::
1180
1181 LR_File_Name = "lr_20090130cc00.nc" ;
1182
1183 6. Add the global attribute ``Overlap_File_Name``
1184
1185 ::
1186
1187 Overlap_File_Name = "ov_20090130cc00.nc" ;

mercurial