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