binietoglou@1: binietoglou@1: binietoglou@1: binietoglou@1: binietoglou@1: binietoglou@1:
binietoglou@1: binietoglou@1: binietoglou@1:The Single Calculus Chain (SCC) is composed by two different modules:
binietoglou@1:To perfom aerosol optical retrievals the SCC needs not only the raw binietoglou@1: lidar data but also a certain number of parameters to use in both binietoglou@1: pre-processing and optical processing stages. The SCC gets these binietoglou@1: parameters looking at two different locations:
binietoglou@1:There are some paramenters that can be found only in the input files binietoglou@1: (those ones changing from measurement to measurement), others that can binietoglou@1: be found only in the SCC_DB and other ones that can be found in both binietoglou@1: these locations. In the last case, if a particular parameter is needed, binietoglou@1: the SCC will search first in the input files and then in SCC_DB. If the binietoglou@1: parameter is found in the input files the SCC will keep it without binietoglou@1: looking into SCC_DB.
binietoglou@1:The input files have to be submitted to the SCC in NetCDF format. At the binietoglou@1: present the SCC can handle four different types of input files:
binietoglou@1:As already mentioned, the Raw Lidar Data file contains not only the binietoglou@1: raw lidar data but also other parameters to use to perform the binietoglou@1: pre-processing and optical processing. The Sounding Data file binietoglou@1: contains the data coming from a correlative radiosounding and it is used binietoglou@1: by the SCC for molecular density calculation. The Overlap file binietoglou@1: contains the measured overlap function. The Lidar Ratio file contains binietoglou@1: a lidar ratio profile to use in elastic backscatter retrievals. The binietoglou@1: Raw Lidar Data file is of course mandatory and the Sounding Data, binietoglou@1: Overlap and Lidar Ratio files are optional. If Sounding Data file binietoglou@1: is not submitted by the user, the molecular density will be calculated binietoglou@1: by the SCC using the “US Standard Atmosphere 1976”. If the Overlap binietoglou@1: file is not submitted by the user, the SCC will get the full overlap binietoglou@1: height from SCC_DB and it will produce optical results starting from binietoglou@1: this height. If Lidar Ratio file is not submitted by the user, the binietoglou@1: SCC will consider a fixed value for lidar ratio got from SCC_DB.
binietoglou@1:The user can decide to submit all these files or any number of them (of binietoglou@1: course the file Raw Lidar Data is mandatory). For example the user binietoglou@1: can submit together with the Raw Lidar Data file only the Sounding binietoglou@1: Data file or only the Overlap file.
binietoglou@1:This document provides a detailed explanation about the structure of the binietoglou@1: NetCDF input files to use for SCC data submission. All Earlinet groups binietoglou@1: should read it carefully because they have to produce such kind of input binietoglou@1: files if they want to use the SCC for their standard lidar retrievals. binietoglou@1: Every comments or suggestions regarding this document can be sent to binietoglou@1: Giuseppe D’Amico by e-mail at damico@imaa.cnr.it
binietoglou@1:This document is available for downloading at www.earlinetasos.org
binietoglou@1:In table tab:rawdata is reported a list of dimensions, variables and binietoglou@1: global attributes that can be used in the NetCDF Raw Lidar Data input binietoglou@1: file. For each of them it is indicated:
binietoglou@1:As already mentioned, the SCC can get some parameters looking first in binietoglou@1: the Raw Lidar Data input file and then into SCC_DB. This means that binietoglou@1: to use the parameters stored in SCC_DB the optional variables or binietoglou@1: optional global attributes must not appear within Raw Lidar Data binietoglou@1: file. This is the suggested and recommended way to use the SCC. Please binietoglou@1: include optional parameters in the Raw Lidar Data only as an binietoglou@1: exception.
binietoglou@1:In table tab:sounding, tab:overlap and tab:lr are reported all the binietoglou@1: information about the structure of Sounding Data, Overlap and binietoglou@1: Lidar Ratio input files respectively.
binietoglou@1:Let’s now consider an example of Raw Lidar Data input file. Suppose binietoglou@1: we want to generate NetCDF input file corresponding to a measurement binietoglou@1: with the following properties:
binietoglou@1:Start Date | binietoglou@1:\(30^{th}\) January 2009 | binietoglou@1:
Start Time UT | binietoglou@1:00:00:01 | binietoglou@1:
Stop Time UT | binietoglou@1:00:05:01 | binietoglou@1:
Station Name | binietoglou@1:Dummy station | binietoglou@1:
Earlinet call-sign | binietoglou@1:cc | binietoglou@1:
Pointing angle | binietoglou@1:5 degrees with respect to the zenith | binietoglou@1:
Moreover suppose that this measurement is composed by the following binietoglou@1: lidar channels:
binietoglou@1:1064 lidar channel
binietoglou@1:Emission wavelength=1064nm binietoglou@1: |
binietoglou@1: Detection wavelength=1064nm binietoglou@1: |
binietoglou@1:
Time resolution=30s binietoglou@1: |
binietoglou@1: Number of laser shots=1500 binietoglou@1: |
binietoglou@1:
Number of bins=3000 binietoglou@1: |
binietoglou@1: Detection mode=analog binietoglou@1: |
binietoglou@1:
Range resolution=7.5m binietoglou@1: |
binietoglou@1: Polarization state=total binietoglou@1: |
binietoglou@1:
532 cross lidar channel
binietoglou@1:Emission wavelength=532nm binietoglou@1: |
binietoglou@1: Detection wavelength=532nm binietoglou@1: |
binietoglou@1:
Time resolution=60s binietoglou@1: |
binietoglou@1: Number of laser shots=3000 binietoglou@1: |
binietoglou@1:
Number of bins=5000 binietoglou@1: |
binietoglou@1: Detection mode=photoncounting binietoglou@1: |
binietoglou@1:
Range resolution=15m binietoglou@1: |
binietoglou@1: Polarization state=cross binietoglou@1: |
binietoglou@1:
532 parallel lidar channel
binietoglou@1:Emission wavelength=532nm binietoglou@1: |
binietoglou@1: Detection wavelength=532nm binietoglou@1: |
binietoglou@1:
Time resolution=60s binietoglou@1: |
binietoglou@1: Number of laser shots=3000 binietoglou@1: |
binietoglou@1:
Number of bins=5000 binietoglou@1: |
binietoglou@1: Detection mode=photoncounting binietoglou@1: |
binietoglou@1:
Range resolution=15m binietoglou@1: |
binietoglou@1: Polarization state=parallel binietoglou@1: |
binietoglou@1:
607 \(N_2\) vibrational Raman channel
binietoglou@1:Emission wavelength=532nm binietoglou@1: |
binietoglou@1: Detection wavelength=607nm binietoglou@1: |
binietoglou@1:
Time resolution=60s binietoglou@1: |
binietoglou@1: Number of laser shots=3000 binietoglou@1: |
binietoglou@1:
Number of bins=5000 binietoglou@1: |
binietoglou@1: Detection mode=photoncounting binietoglou@1: |
binietoglou@1:
Range resolution=15m binietoglou@1: |
binietoglou@1:
Finally let’s assume we have also performed dark measurements before the binietoglou@1: lidar measurements from the 23:50:01 UT up to 23:53:01 UT of binietoglou@1: 29:math:^mathrmth January 2009.
binietoglou@1:Looking at table tab:rawdata we have to fix the following dimensions:
binietoglou@1:points
binietoglou@1: channels
binietoglou@1: time
binietoglou@1: nb_of_time_scales
binietoglou@1: scan_angles
binietoglou@1: time_bck
binietoglou@1:
The dimension time is unlimited so we don’t have to fix it.
binietoglou@1:We have 4 lidar channels so:
binietoglou@1:channels=4
binietoglou@1:
Regarding the dimension points we have only one channel with a binietoglou@1: number of vertical bins equal to 3000 (the 1064nm) and all other binietoglou@1: channels with 5000 vertical bins. In cases like this the dimension binietoglou@1: points has to be fixed to the maximum number of vertical bins so:
binietoglou@1:points=5000
binietoglou@1:
Moreover only one channel (1064nm) is acquired with a time resolution of binietoglou@1: 30 seconds, all the other channels have a time resolution of 60 seconds. binietoglou@1: This means that we have to define two different time scales. We have to binietoglou@1: set:
binietoglou@1:nb_of_time_scales=2
binietoglou@1:
The measurement is performed only at one scan angle (5 degrees with binietoglou@1: respect to the zenith) so:
binietoglou@1:scan_angles=1
binietoglou@1:
We have 3 minutes of dark measurements and two different time scales one binietoglou@1: with 60 seconds time resolution and the other one with 30 seconds time binietoglou@1: resolution. So we will have 3 different dark profiles for the channels binietoglou@1: acquired with the first time scale and 6 for the lidar channels acquired binietoglou@1: with the second time scale. We have to fix the dimension time_bck as binietoglou@1: the maximum between these values:
binietoglou@1:time_bck=6
binietoglou@1:
In this section it will be explained how to fill all the possible binietoglou@1: variables either mandatory or optional of Raw Lidar Data input file.
binietoglou@1:This 2 dimensional mandatory array has to contain the acquisition binietoglou@1: start time (in seconds from the time given by the global attribute binietoglou@1: RawData_Start_Time_UT) of each lidar profile. In this example we binietoglou@1: have two different time scales: one is characterized by steps of 30 binietoglou@1: seconds (the 1064nm is acquired with this time scale) the other by binietoglou@1: steps of 60 seconds (532cross, 532parallel and 607nm). Moreover the binietoglou@1: measurement start time is 00:00:01 UT and the measurement stop time binietoglou@1: is 00:05:01 UT. In this case we have to define:
binietoglou@1:Raw_Data_Start_Time =
binietoglou@1: 0, 0,
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: 240, 120,
binietoglou@1: _, 150,
binietoglou@1: _, 180,
binietoglou@1: _, 210,
binietoglou@1: _, 240,
binietoglou@1: _, 270 ;
binietoglou@1: The order used to fill this array defines the correspondence between binietoglou@1: the different time scales and the time scale index. In this example binietoglou@1: we have a time scale index of 0 for the time scale with steps of 60 binietoglou@1: seconds and a time scale index of 1 for the other one.
binietoglou@1:The same as previous item but for the data acquisition stop time. binietoglou@1: Following a similar procedure we have to define:
binietoglou@1:Raw_Data_Stop_Time =
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: 240, 120,
binietoglou@1: 300, 150,
binietoglou@1: _, 180,
binietoglou@1: _, 210,
binietoglou@1: _, 240,
binietoglou@1: _, 270,
binietoglou@1: _, 300 ;
binietoglou@1: This 3 dimensional mandatory array has to be filled with the binietoglou@1: time-series of raw lidar data. The photoncounting profiles have to binietoglou@1: submitted in counts (so as integers) while the analog ones in mV. The binietoglou@1: order the user chooses to fill this array defines the correspondence binietoglou@1: between channel index and lidar data.
binietoglou@1:For example if we fill this array in such way that:
binietoglou@1:Raw_Lidar_Data(time,0,points | binietoglou@1:\(\rightarrow\) is the time-series of 1064 nm | binietoglou@1:
Raw_Lidar_Data(time,1,points | binietoglou@1:\(\rightarrow\) is the time-series of 532 cross | binietoglou@1:
Raw_Lidar_Data(time,2,points | binietoglou@1:\(\rightarrow\) is the time-series of 532 parallel | binietoglou@1:
Raw_Lidar_Data(time,3,points | binietoglou@1:\(\rightarrow\) is the time-series of 607 nm | binietoglou@1:
from now on the channel index 0 is associated to the 1064 channel, binietoglou@1: 1 to the 532 cross, 2 to the 532 parallel and 3 to the 607nm.
binietoglou@1:This 2 dimensional optional array has to contain the acquisition binietoglou@1: start time (in seconds from the time given by the global attribute binietoglou@1: RawBck_Start_Time_UT) of each dark measurements profile. binietoglou@1: Following the same procedure used for the variable binietoglou@1: Raw_Data_Start_Time we have to define:
binietoglou@1:Raw_Bck_Start_Time =
binietoglou@1: 0, 0,
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: _, 90,
binietoglou@1: _, 120,
binietoglou@1: _, 150;
binietoglou@1: The same as previous item but for the dark acquisition stop time. binietoglou@1: Following a similar procedure we have to define:
binietoglou@1:Raw_Bck_Stop_Time =
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: _, 120,
binietoglou@1: _, 150,
binietoglou@1: _, 180 ;
binietoglou@1: This 3 dimensional optional array has to be filled with the binietoglou@1: time-series of the dark measurements data. The photoncounting binietoglou@1: profiles have to submitted in counts (so as integers) while the binietoglou@1: analog ones in mV. The user has to fill this array following the same binietoglou@1: order used in filling the array Raw_Lidar_Data:
binietoglou@1:Background_Profile(time_bck,0,points | binietoglou@1:\(\rightarrow\) dark time-series at 1064 nm | binietoglou@1:
Background_Profile(time_bck,1,points | binietoglou@1:\(\rightarrow\) dark time-series at 532 cross | binietoglou@1:
Background_Profile(time_bck,2,points | binietoglou@1:\(\rightarrow\) dark time-series at 532 parallel | binietoglou@1:
Background_Profile(time_bck,3,points | binietoglou@1:\(\rightarrow\) dark time-series at 607 nm | binietoglou@1:
This mandatory array provides the link between the channel index binietoglou@1: within the Raw Lidar Data input file and the channel ID in binietoglou@1: SCC_DB. To fill this variable the user has to know which channel IDs binietoglou@1: in SCC_DB correspond to his lidar channels. For this purpose the binietoglou@1: SCC, in its final version will provide to the user a special tool to binietoglou@1: get these channel IDs through a Web interface. At the moment this binietoglou@1: interface is not yet available and these channel IDs will be binietoglou@1: communicated directly to the user by the NA5 people.
binietoglou@1:Anyway to continue the example let’s suppose that the four lidar binietoglou@1: channels taken into account are mapped into SCC_DB with the binietoglou@1: following channel IDs:
binietoglou@1:1064 nm | binietoglou@1:\(\rightarrow\) channel ID=7 | binietoglou@1:
532 cross | binietoglou@1:\(\rightarrow\) channel ID=5 | binietoglou@1:
532 parallel | binietoglou@1:\(\rightarrow\) channel ID=6 | binietoglou@1:
607 nm | binietoglou@1:\(\rightarrow\) channel ID=8 | binietoglou@1:
binietoglou@1:binietoglou@1:In this case we have to define:
channel_ID = 7, 5, 6, 8 ;
binietoglou@1:
This mandatory array is introduced to determine which time scale is binietoglou@1: used for the acquisition of each lidar channel. In particular this binietoglou@1: array defines the link between the channel index and the time scale binietoglou@1: index. In our example we have two different time scales. Filling the binietoglou@1: arrays Raw_Data_Start_Time and Raw_Data_Stop_Time we have binietoglou@1: defined a time scale index of 0 for the time scale with steps of 60 binietoglou@1: seconds and a time scale index of 1 for the other one with steps of binietoglou@1: 30 seconds. In this way this array has to be set as:
binietoglou@1:id_timescale = 1, 0, 0, 0 ;
binietoglou@1:
This mandatory array contains all the scan angles used in the binietoglou@1: measurement. In our example we have only one scan angle of 5 degrees binietoglou@1: with respect to the zenith, so we have to define:
binietoglou@1:Laser_Pointing_Angle = 5 ;
binietoglou@1:
This mandatory array is introduced to determine which scan angle is binietoglou@1: used for the acquisition of each lidar profile. In particular this binietoglou@1: array defines the link between the time and time scales indexes and binietoglou@1: the scan angle index. In our example we have a single scan angle that binietoglou@1: has to correspond to the scan angle index 0. So this array has to be binietoglou@1: defined as:
binietoglou@1:Laser_Pointing_Angle_of_Profiles =
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0 ;
binietoglou@1: This mandatory array stores the laser shots accumulated at each time binietoglou@1: for each channel. In our example the number of laser shots binietoglou@1: accumulated is 1500 for the 1064nm channels and 3000 for all the binietoglou@1: other channels. Moreover the laser shots do not change with the time. binietoglou@1: So we have to define this array as:
binietoglou@1:Laser_Shots =
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _ ;
binietoglou@1: This optional array defines the link between the channel index and binietoglou@1: the emission wavelength for each lidar channel. The wavelength has to binietoglou@1: be expressed in nm. This information can be also taken from SCC_DB. binietoglou@1: In our example we have:
binietoglou@1:Emitted_Wavelength = 1064, 532, 532, 532 ;
binietoglou@1:
This optional array defines the link between the channel index and binietoglou@1: the detected wavelength for each lidar channel. Here detected binietoglou@1: wavelength means the value of center of interferential filter binietoglou@1: expressed in nm. This information can be also taken from SCC_DB. In binietoglou@1: our example we have:
binietoglou@1:Detected_Wavelength = 1064, 532, 532, 607 ;
binietoglou@1:
This optional array defines the link between the channel index and binietoglou@1: the raw range resolution for each channel. If the scan angle is binietoglou@1: different from zero this quantity is different from the vertical binietoglou@1: resolution. More precisely if \(\alpha\) is the scan angle used binietoglou@1: and \(\Delta z\) is the range resolution the vertical binietoglou@1: resolution is calculated as \(\Delta binietoglou@1: z'=\Delta z \cos\alpha\). This array has to be filled with binietoglou@1: \(\Delta z\) and not with \(\Delta z'\). The unit is binietoglou@1: meters. This information can be also taken from SCC_DB. In our binietoglou@1: example we have:
binietoglou@1:Raw_Data_Range_Resolution = 7.5, 15.0, 15.0, 15.0 ;
binietoglou@1:
This optional array defines if a particular channel is configured as binietoglou@1: high, low or ultranear range channel. In particular a value 0 binietoglou@1: indicates a low range channel, a value 1 a high range channel and a binietoglou@1: value of 2 an ultranear range channel. If for a particular channel binietoglou@1: you don’t separate between high and low range channel, please set the binietoglou@1: corresponding value to 1. This information can be also taken from binietoglou@1: SCC_DB. In our case we have to set:
binietoglou@1:ID_Range = 1, 1, 1, 1 ;
binietoglou@1:
This optional array defines the scattering mechanism involved in binietoglou@1: each lidar channel. In particular the following values are adopted:
binietoglou@1:0 | binietoglou@1:\(\rightarrow\) Total elastic backscatter | binietoglou@1:
1 | binietoglou@1:\(\rightarrow\) \(N_2\) vibrational Raman backscatter | binietoglou@1:
2 | binietoglou@1:\(\rightarrow\) Cross polarization elastic backscatter | binietoglou@1:
3 | binietoglou@1:\(\rightarrow\) Parallel polarization elastic backscatter | binietoglou@1:
4 | binietoglou@1:\(\rightarrow\) \(H_2O\) vibrational Raman backscatter | binietoglou@1:
5 | binietoglou@1:\(\rightarrow\) Rotational Raman Stokes line close to elastic line | binietoglou@1:
6 | binietoglou@1:\(\rightarrow\) Rotational Raman Stokes line far from elastic line | binietoglou@1:
7 | binietoglou@1:\(\rightarrow\) Rotational Raman anti-Stokes line close to elastic line | binietoglou@1:
8 | binietoglou@1:\(\rightarrow\) Rotational Raman anti-Stokes line far from elastic line | binietoglou@1:
9 | binietoglou@1:\(\rightarrow\) Rotational Raman Stokes and anti-Stokes lines close to elastic line | binietoglou@1:
10 | binietoglou@1:\(\rightarrow\) Rotational Raman Stokes and anti-Stokes lines far from elastic line | binietoglou@1:
This information can be also taken from SCC_DB. In our example we have:
binietoglou@1:Scattering_Mechanism = 0, 2, 3, 1 ;
binietoglou@1:
This optional array defines the acquisition mode (analog or binietoglou@1: photoncounting) involved in each lidar channel. In particular a value binietoglou@1: of 0 means analog mode and 1 photoncounting mode. This information binietoglou@1: can be also taken from SCC_DB. In our example we have:
binietoglou@1:Acquisition_Mode = 0, 1, 1, 1 ;
binietoglou@1:
This optional array defines the repetition rate in Hz used to binietoglou@1: acquire each lidar channel. This information can be also taken from binietoglou@1: SCC_DB. In our example we are supposing we have only one laser with binietoglou@1: a repetition rate of 50 Hz so we have to set:
binietoglou@1:Laser_Repetition_Rate = 50, 50, 50, 50 ;
binietoglou@1:
This optional array defines the dead time in ns associated to each binietoglou@1: lidar channel. The SCC will use the values given by this array to binietoglou@1: correct the photoncounting signals for dead time. Of course for binietoglou@1: analog signals no dead time correction will be applied (for analog binietoglou@1: channels the corresponding dead time values have to be set to binietoglou@1: undefined value). This information can be also taken from SCC_DB. In binietoglou@1: our example the 1064 nm channel is acquired in analog mode so the binietoglou@1: corresponding dead time value has to be undefined. If we suppose a binietoglou@1: dead time of 10 ns for all other channels we have to set:
binietoglou@1:Dead_Time = _, 10, 10, 10 ;
binietoglou@1:
This optional array defines which kind of dead time correction has binietoglou@1: to be applied on each photoncounting channel. The SCC will correct binietoglou@1: the data supposing a not-paralyzable channel if a value of 0 is found binietoglou@1: while a paralyzable channel is supposed if a value of 1 is found. Of binietoglou@1: course for analog signals no dead time correction will be applied and binietoglou@1: so the corresponding values have to be set to undefined value. This binietoglou@1: information can be also taken from SCC_DB. In our example the 1064 binietoglou@1: nm channel is acquired in analog mode so the corresponding has to be binietoglou@1: undefined. If we want to consider all the photoncounting signals as binietoglou@1: not-paralyzable ones: we have to set:
binietoglou@1:Dead_Time_Corr_Type = _, 0, 0, 0 ;
binietoglou@1:
This optional array defines the delay (in ns) of the middle of the binietoglou@1: first rangebin with respect to the output laser pulse for each lidar binietoglou@1: channel. The SCC will use the values given by this array to correct binietoglou@1: for trigger delay. This information can be also taken from SCC_DB. binietoglou@1: Let’s suppose that in our example all the photoncounting channels are binietoglou@1: not affected by this delay and only the analog channel at 1064nm is binietoglou@1: acquired with a delay of 50ns. In this case we have to set:
binietoglou@1:Trigger_Delay = 50, 0, 0, 0 ;
binietoglou@1:
This optional array defines how the atmospheric background has to be binietoglou@1: subtracted from the lidar channel. Two options are available for the binietoglou@1: calculation of atmospheric background:
binietoglou@1:This information can be also taken from SCC_DB. Let’s suppose in our binietoglou@1: example we use the pre-trigger for the 1064nm channel and the far binietoglou@1: field for all other channels. In this case we have to set:
binietoglou@1:Background_Mode = 0, 1, 1, 1 ;
binietoglou@1:
This mandatory array defines the minimum altitude (in meters) to binietoglou@1: consider in calculating the atmospheric background for each channel. binietoglou@1: In case pre-trigger mode is used the corresponding value has to be binietoglou@1: set to the rangebin to be used as lower limit (within pre-trigger binietoglou@1: region) for background calculation. In our example, if we want to binietoglou@1: calculate the background between 30000 and 50000 meters for all binietoglou@1: photoncounting channels and we want to use the first 500 pre-trigger binietoglou@1: bins for the background calculation for the 1064nm channel we have to binietoglou@1: set:
binietoglou@1:Background_Low= 0, 30000, 30000, 30000 ;
binietoglou@1:
This mandatory array defines the maximum altitude (in meters) to binietoglou@1: consider in calculating the atmospheric background for each channel. binietoglou@1: In case pre-trigger mode is used the corresponding value has to be binietoglou@1: set to the rangebin to be used as upper limit (within pre-trigger binietoglou@1: region) for background calculation. In our example, if we want to binietoglou@1: calculate the background between 30000 and 50000 meters for all binietoglou@1: photoncounting channels and we want to use the first 500 pre-trigger binietoglou@1: bins for the background calculation for the 1064nm channel we have to binietoglou@1: set:
binietoglou@1:Background_High = 500, 50000, 50000, 50000 ;
binietoglou@1:
This mandatory variable defines the way used by SCC to calculate the binietoglou@1: molecular density profile. At the moment two options are available:
binietoglou@1:If we decide to use the option 1. we have to provide also the binietoglou@1: measured pressure and temperature at lidar station level. Indeed if binietoglou@1: we decide to use the option 2. a radiosounding file has to be binietoglou@1: submitted separately in NetCDF format (the structure of this file is binietoglou@1: summarized in table tab:sounding). Let’s suppose we want to use the binietoglou@1: option 1. so:
binietoglou@1:Molecular_Calc = 0 ;
binietoglou@1:
Because we have chosen the US Standard Atmosphere for calculation of binietoglou@1: the molecular density profile we have to give the pressure in hPa at binietoglou@1: lidar station level:
binietoglou@1:Pressure_at_Lidar_Station = 1010 ;
binietoglou@1:
Because we have chosen the US Standard Atmosphere for calculation of binietoglou@1: the molecular density profile we have to give the temperature in C at binietoglou@1: lidar station level:
binietoglou@1:Temperature_at_Lidar_Station = 19.8 ;
binietoglou@1:
This array is required only for lidar systems that use the two binietoglou@1: depolarization channels for the backscatter retrieval. It represents binietoglou@1: the factor \(f\) to calculate the total backscatter signal binietoglou@1: \(S_t\) combining its cross \(S_c\) and parallel binietoglou@1: \(S_p\) components: \(S_t=S_p+fS_c\). This factor is binietoglou@1: mandatory only for systems acquiring \(S_c\) and \(S_p\) binietoglou@1: and not \(S_t\). For systems acquiring \(S_c\), binietoglou@1: \(S_p\) and \(S_t\) this factor is optional and it will binietoglou@1: be used only for depolarizaton ratio calculation. Moreover only the binietoglou@1: values of the array corresponding to cross polarization channels will binietoglou@1: be considered; all other values will be not taken into account and binietoglou@1: should be set to undefined value. In our example for the wavelength binietoglou@1: 532nm we have only the cross and the parallel components and not the binietoglou@1: total one. So we have to give the value of this factor only in binietoglou@1: correspondence of the 532nm cross polarization channel that binietoglou@1: corresponds to the channel index 1. Suppose that this factor is 0.88. binietoglou@1: Moreover, because we don’t have any other depolarization channels we binietoglou@1: have also to set all other values of the array to undefined value.
binietoglou@1:Depolarization_Factor = _,0.88,_,_ ;
binietoglou@1:
This array is required only for lidar channels for which elastic binietoglou@1: backscatter retrieval has to be performed. It defines the lidar ratio binietoglou@1: to be used within this retrieval. Two options are available:
binietoglou@1:If we decide to use the option 1. a lidar ratio file has to be binietoglou@1: submitted separately in NetCDF format (the structure of this file is binietoglou@1: summarized in table tab:lr). If we decide to use the option 2. the binietoglou@1: fixed value of lidar ratio will be taken from SCC_DB. In our example binietoglou@1: we have to give a value of this array only for the 1064nm lidar binietoglou@1: channel because for the 532nm we will be able to retrieve a Raman binietoglou@1: backscatter coefficient. In case we want to use the fixed value binietoglou@1: stored in SCC_DB we have to set:
binietoglou@1:LR_Input = 1,_,_,_ ;
binietoglou@1:
This array is required only if one or more lidar signals are binietoglou@1: acquired in analog mode. It gives the analog scale in mV used to binietoglou@1: acquire the analog signals. In our example we have only the 1064nm binietoglou@1: channel acquired in analog mode. If we have used a 100mV analog scale binietoglou@1: to acquire this channel we have to set:
binietoglou@1:DAQ_Range = 100,_,_,_ ;
binietoglou@1:
This mandatory global attribute defines the measurement ID binietoglou@1: corresponding to the actual lidar measurement. It is a string binietoglou@1: composed by 12 characters. The first 8 characters give the start date binietoglou@1: of measurement in the format YYYYMMDD. The next 2 characters give the binietoglou@1: Earlinet call-sign of the station. The last 2 characters are used to binietoglou@1: distinguish between different time-series within the same date. In binietoglou@1: our example we have to set:
binietoglou@1:Measurement_ID= "20090130cc00" ;
binietoglou@1:
This mandatory global attribute defines the start date of lidar binietoglou@1: measurements in the format YYYYMMDD. In our case we have:
binietoglou@1:RawData_Start_Date = "20090130" ;
binietoglou@1:
This mandatory global attribute defines the UT start time of lidar binietoglou@1: measurements in the format HHMMSS. In our case we have:
binietoglou@1:RawData_Start_Time_UT = "000001" ;
binietoglou@1:
This mandatory global attribute defines the UT stop time of lidar binietoglou@1: measurements in the format HHMMSS. In our case we have:
binietoglou@1:RawData_Stop_Time_UT = "000501" ;
binietoglou@1:
This optional global attribute defines the start date of dark binietoglou@1: measurements in the format YYYYMMDD. In our case we have:
binietoglou@1:RawBck_Start_Date = "20090129" ;
binietoglou@1:
This optional global attribute defines the UT start time of dark binietoglou@1: measurements in the format HHMMSS. In our case we have:
binietoglou@1:RawBck_Start_Time_UT = "235001" ;
binietoglou@1:
This optional global attribute defines the UT stop time of dark binietoglou@1: measurements in the format HHMMSS. In our case we have:
binietoglou@1:RawBck_Stop_Time_UT = "235301" ;
binietoglou@1:
To summarize we have the following NetCDF Raw Lidar Data file (in CDL binietoglou@1: format):
binietoglou@1:dimensions:
binietoglou@1: points = 5000 ;
binietoglou@1: channels = 4 ;
binietoglou@1: time = UNLIMITED ; // (10 currently)
binietoglou@1: nb_of_time_scales = 2 ;
binietoglou@1: scan_angles = 1 ;
binietoglou@1: time_bck = 6 ;
binietoglou@1: variables:
binietoglou@1: int channel_ID(channels) ;
binietoglou@1: int Laser_Repetition_Rate(channels) ;
binietoglou@1: double Laser_Pointing_Angle(scan_angles) ;
binietoglou@1: int ID_Range(channels) ;
binietoglou@1: int Scattering_Mechanism(channels) ;
binietoglou@1: double Emitted_Wavelength(channels) ;
binietoglou@1: double Detected_Wavelength(channels) ;
binietoglou@1: double Raw_Data_Range_Resolution(channels) ;
binietoglou@1: int Background_Mode(channels) ;
binietoglou@1: double Background_Low(channels) ;
binietoglou@1: double Background_High(channels) ;
binietoglou@1: int Molecular_Calc ;
binietoglou@1: double Pressure_at_Lidar_Station ;
binietoglou@1: double Temperature_at_Lidar_Station ;
binietoglou@1: int id_timescale(channels) ;
binietoglou@1: double Dead_Time(channels) ;
binietoglou@1: int Dead_Time_Corr_Type(channels) ;
binietoglou@1: int Acquisition_Mode(channels) ;
binietoglou@1: double Trigger_Delay(channels) ;
binietoglou@1: int LR_Input(channels) ;
binietoglou@1: int Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales) ;
binietoglou@1: int Raw_Data_Start_Time(time, nb_of_time_scales) ;
binietoglou@1: int Raw_Data_Stop_Time(time, nb_of_time_scales) ;
binietoglou@1: int Raw_Bck_Start_Time(time_bck, nb_of_time_scales) ;
binietoglou@1: int Raw_Bck_Stop_Time(time_bck, nb_of_time_scales) ;
binietoglou@1: int Laser_Shots(time, channels) ;
binietoglou@1: double Raw_Lidar_Data(time, channels, points) ;
binietoglou@1: double Background_Profile(time_bck, channels, points) ;
binietoglou@1: double DAQ_Range(channels) ;
binietoglou@1:
binietoglou@1: // global attributes:
binietoglou@1: :Measurement_ID = "20090130cc00" ;
binietoglou@1: :RawData_Start_Date = "20090130" ;
binietoglou@1: :RawData_Start_Time_UT = "000001" ;
binietoglou@1: :RawData_Stop_Time_UT = "000501" ;
binietoglou@1: :RawBck_Start_Date = "20090129" ;
binietoglou@1: :RawBck_Start_Time_UT = "235001" ;
binietoglou@1: :RawBck_Stop_Time_UT = "235301" ;
binietoglou@1:
binietoglou@1: data:
binietoglou@1:
binietoglou@1: channel_ID = 7, 5, 6, 8 ;
binietoglou@1:
binietoglou@1: Laser_Repetition_Rate = 50, 50, 50, 50 ;
binietoglou@1:
binietoglou@1: Laser_Pointing_Angle = 5 ;
binietoglou@1:
binietoglou@1: ID_Range = 1, 1, 1, 1 ;
binietoglou@1:
binietoglou@1: Scattering_Mechanism = 0, 2, 3, 1 ;
binietoglou@1:
binietoglou@1: Emitted_Wavelength = 1064, 532, 532, 532 ;
binietoglou@1:
binietoglou@1: Detected_Wavelength = 1064, 532, 532, 607 ;
binietoglou@1:
binietoglou@1: Raw_Data_Range_Resolution = 7.5, 15, 15, 15 ;
binietoglou@1:
binietoglou@1: Background_Mode = 0, 1, 1, 1 ;
binietoglou@1:
binietoglou@1: Background_Low = 0, 30000, 30000, 30000 ;
binietoglou@1:
binietoglou@1: Background_High = 500, 50000, 50000, 50000 ;
binietoglou@1:
binietoglou@1: Molecular_Calc = 0 ;
binietoglou@1:
binietoglou@1: Pressure_at_Lidar_Station = 1010 ;
binietoglou@1:
binietoglou@1: Temperature_at_Lidar_Station = 19.8 ;
binietoglou@1:
binietoglou@1: id_timescale = 1, 0, 0, 0 ;
binietoglou@1:
binietoglou@1: Dead_Time = _, 10, 10, 10 ;
binietoglou@1:
binietoglou@1: Dead_Time_Corr_Type = _, 0, 0, 0 ;
binietoglou@1:
binietoglou@1: Acquisition_Mode = 0, 1, 1, 1 ;
binietoglou@1:
binietoglou@1: Trigger_Delay = 50, 0, 0, 0 ;
binietoglou@1:
binietoglou@1: LR_Input = 1,_,_,_ ;
binietoglou@1:
binietoglou@1: DAQ_Range = 100,_,_,_ ;
binietoglou@1:
binietoglou@1: Laser_Pointing_Angle_of_Profiles =
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0 ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Data_Start_Time =
binietoglou@1: 0, 0,
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: 240, 120,
binietoglou@1: _, 150,
binietoglou@1: _, 180,
binietoglou@1: _, 210,
binietoglou@1: _, 240,
binietoglou@1: _, 270 ;
binietoglou@1:
binietoglou@1: Raw_Data_Stop_Time =
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: 240, 120,
binietoglou@1: 300, 150,
binietoglou@1: _, 180,
binietoglou@1: _, 210,
binietoglou@1: _, 240,
binietoglou@1: _, 270,
binietoglou@1: _, 300 ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Bck_Start_Time =
binietoglou@1: 0, 0,
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: _, 90,
binietoglou@1: _, 120,
binietoglou@1: _, 150;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Bck_Stop_Time =
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: _, 120,
binietoglou@1: _, 150,
binietoglou@1: _, 180 ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Laser_Shots =
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _ ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Lidar_Data = ...
binietoglou@1:
binietoglou@1: Background_Profile = ...
binietoglou@1: Please keep in mind that in case you submit a file like the previous one binietoglou@1: all the parameters present in it will be used by the SCC even if you binietoglou@1: have different values for the same parameters within the SCC_DB. If you binietoglou@1: want to use the values already stored in SCC_DB (this should be the binietoglou@1: usual way to use SCC) the Raw Lidar Data input file has to be binietoglou@1: modified as follows:
binietoglou@1:dimensions:
binietoglou@1: points = 5000 ;
binietoglou@1: channels = 4 ;
binietoglou@1: time = UNLIMITED ; // (10 currently)
binietoglou@1: nb_of_time_scales = 2 ;
binietoglou@1: scan_angles = 1 ;
binietoglou@1: time_bck = 6 ;
binietoglou@1: variables:
binietoglou@1: int channel_ID(channels) ;
binietoglou@1: double Laser_Pointing_Angle(scan_angles) ;
binietoglou@1: double Background_Low(channels) ;
binietoglou@1: double Background_High(channels) ;
binietoglou@1: int Molecular_Calc ;
binietoglou@1: double Pressure_at_Lidar_Station ;
binietoglou@1: double Temperature_at_Lidar_Station ;
binietoglou@1: int id_timescale(channels) ;
binietoglou@1: int Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales) ;
binietoglou@1: int Raw_Data_Start_Time(time, nb_of_time_scales) ;
binietoglou@1: int Raw_Data_Stop_Time(time, nb_of_time_scales) ;
binietoglou@1: int Raw_Bck_Start_Time(time_bck, nb_of_time_scales) ;
binietoglou@1: int Raw_Bck_Stop_Time(time_bck, nb_of_time_scales) ;
binietoglou@1: int LR_Input(channels) ;
binietoglou@1: int Laser_Shots(time, channels) ;
binietoglou@1: double Raw_Lidar_Data(time, channels, points) ;
binietoglou@1: double Background_Profile(time_bck, channels, points) ;
binietoglou@1: double DAQ_Range(channels) ;
binietoglou@1:
binietoglou@1: // global attributes:
binietoglou@1: :Measurement_ID = "20090130cc00" ;
binietoglou@1: :RawData_Start_Date = "20090130" ;
binietoglou@1: :RawData_Start_Time_UT = "000001" ;
binietoglou@1: :RawData_Stop_Time_UT = "000501" ;
binietoglou@1: :RawBck_Start_Date = "20090129" ;
binietoglou@1: :RawBck_Start_Time_UT = "235001" ;
binietoglou@1: :RawBck_Stop_Time_UT = "235301" ;
binietoglou@1:
binietoglou@1: data:
binietoglou@1:
binietoglou@1: channel_ID = 7, 5, 6, 8 ;
binietoglou@1:
binietoglou@1: Laser_Pointing_Angle = 5 ;
binietoglou@1:
binietoglou@1: Background_Low = 0, 30000, 30000, 30000 ;
binietoglou@1:
binietoglou@1: Background_High = 500, 50000, 50000, 50000 ;
binietoglou@1:
binietoglou@1: Molecular_Calc = 0 ;
binietoglou@1:
binietoglou@1: Pressure_at_Lidar_Station = 1010 ;
binietoglou@1:
binietoglou@1: Temperature_at_Lidar_Station = 19.8 ;
binietoglou@1:
binietoglou@1: id_timescale = 1, 0, 0, 0 ;
binietoglou@1:
binietoglou@1: LR_Input = 1,_,_,_ ;
binietoglou@1:
binietoglou@1: DAQ_Range = 100,_,_,_ ;
binietoglou@1:
binietoglou@1: Laser_Pointing_Angle_of_Profiles =
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: 0, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0,
binietoglou@1: _, 0 ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Data_Start_Time =
binietoglou@1: 0, 0,
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: 240, 120,
binietoglou@1: _, 150,
binietoglou@1: _, 180,
binietoglou@1: _, 210,
binietoglou@1: _, 240,
binietoglou@1: _, 270 ;
binietoglou@1:
binietoglou@1: Raw_Data_Stop_Time =
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: 240, 120,
binietoglou@1: 300, 150,
binietoglou@1: _, 180,
binietoglou@1: _, 210,
binietoglou@1: _, 240,
binietoglou@1: _, 270,
binietoglou@1: _, 300 ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Bck_Start_Time =
binietoglou@1: 0, 0,
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: _, 90,
binietoglou@1: _, 120,
binietoglou@1: _, 150;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Bck_Stop_Time =
binietoglou@1: 60, 30,
binietoglou@1: 120, 60,
binietoglou@1: 180, 90,
binietoglou@1: _, 120,
binietoglou@1: _, 150,
binietoglou@1: _, 180 ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Laser_Shots =
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, 3000, 3000, 3000,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _,
binietoglou@1: 1500, _, _, _ ;
binietoglou@1:
binietoglou@1:
binietoglou@1: Raw_Lidar_Data = ...
binietoglou@1:
binietoglou@1: Background_Profile = ...
binietoglou@1: This example file contains the minimum collection of mandatory binietoglou@1: information that has to be found within the Raw Lidar Data input binietoglou@1: file. If it is really necessary, the user can decide to add to these binietoglou@1: mandatory parameters any number of additional parameters considered in binietoglou@1: the previous example.
binietoglou@1:Finally, suppose we want to make the following changes with respect to binietoglou@1: the previous example:
binietoglou@1:In this case we have to generate the following NetCDF additional files:
binietoglou@1:Moreover we need to apply the following changes to the Raw Lidar Data binietoglou@1: input file:
binietoglou@1:Change the value of the variable Molecular_Calc as follows:
binietoglou@1:Molecular_Calc = 1 ;
binietoglou@1:
Of course the variables Pressure_at_Lidar_Station and binietoglou@1: Temperature_at_Lidar_Station are not necessary anymore.
binietoglou@1:Change the values of the array LR_Input as follows:
binietoglou@1:LR_Input = 0,_,_,_ ;
binietoglou@1:
Add the global attribute Sounding_File_Name
binietoglou@1:Sounding_File_Name = "rs_20090130cc00.nc" ;
binietoglou@1:
Add the global attribute LR_File_Name
binietoglou@1:LR_File_Name = "lr_20090130cc00.nc" ;
binietoglou@1:
Add the global attribute Overlap_File_Name
binietoglou@1:Overlap_File_Name = "ov_20090130cc00.nc" ;
binietoglou@1: