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