docs/netcdf_file.rst

Thu, 03 Nov 2016 13:13:20 +0200

author
Ioannis Binietoglou <binietoglou@noa.gr>
date
Thu, 03 Nov 2016 13:13:20 +0200
changeset 82
aaeb64dc946b
parent 60
f5bf7a56ffd6
child 89
8310b682c916
permissions
-rw-r--r--

Merge from 80:711dc4267ecc

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

mercurial