_build/html/netcdf_file.html

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

mercurial