ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: The SCC netCDF file format — Single Calculus Chain 0.2 documentation ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11: ulalume3@11:
ulalume3@11:

The SCC netCDF file format

ulalume3@11:
ulalume3@11:

Rationale

ulalume3@11:

The Single Calculus Chain (SCC) is composed by two different modules:

ulalume3@11:
    ulalume3@11:
  • pre-processing module ( scc_preprocessing)
  • ulalume3@11:
  • optical processing module ( ELDA)
  • ulalume3@11:
ulalume3@11:

To perfom aerosol optical retrievals the SCC needs not only the raw ulalume3@11: lidar data but also a certain number of parameters to use in both ulalume3@11: pre-processing and optical processing stages. The SCC gets these ulalume3@11: parameters looking at two different locations:

ulalume3@11:
    ulalume3@11:
  • Single Calculus Chain relational database (SCC_DB)
  • ulalume3@11:
  • Input files
  • ulalume3@11:
ulalume3@11:

There are some paramenters that can be found only in the input files ulalume3@11: (those ones changing from measurement to measurement), others that can ulalume3@11: be found only in the SCC_DB and other ones that can be found in both ulalume3@11: these locations. In the last case, if a particular parameter is needed, ulalume3@11: the SCC will search first in the input files and then in SCC_DB. If the ulalume3@11: parameter is found in the input files the SCC will keep it without ulalume3@11: looking into SCC_DB.

ulalume3@11:

The input files have to be submitted to the SCC in NetCDF format. At the ulalume3@11: present the SCC can handle four different types of input files:

ulalume3@11:
    ulalume3@11:
  1. Raw Lidar Data
  2. ulalume3@11:
  3. Sounding Data
  4. ulalume3@11:
  5. Overlap
  6. ulalume3@11:
  7. Lidar Ratio
  8. ulalume3@11:
ulalume3@11:

As already mentioned, the Raw Lidar Data file contains not only the ulalume3@11: raw lidar data but also other parameters to use to perform the ulalume3@11: pre-processing and optical processing. The Sounding Data file ulalume3@11: contains the data coming from a correlative radiosounding and it is used ulalume3@11: by the SCC for molecular density calculation. The Overlap file ulalume3@11: contains the measured overlap function. The Lidar Ratio file contains ulalume3@11: a lidar ratio profile to use in elastic backscatter retrievals. The ulalume3@11: Raw Lidar Data file is of course mandatory and the Sounding Data, ulalume3@11: Overlap and Lidar Ratio files are optional. If Sounding Data file ulalume3@11: is not submitted by the user, the molecular density will be calculated ulalume3@11: by the SCC using the “US Standard Atmosphere 1976”. If the Overlap ulalume3@11: file is not submitted by the user, the SCC will get the full overlap ulalume3@11: height from SCC_DB and it will produce optical results starting from ulalume3@11: this height. If Lidar Ratio file is not submitted by the user, the ulalume3@11: SCC will consider a fixed value for lidar ratio got from SCC_DB.

ulalume3@11:

The user can decide to submit all these files or any number of them (of ulalume3@11: course the file Raw Lidar Data is mandatory). For example the user ulalume3@11: can submit together with the Raw Lidar Data file only the Sounding ulalume3@11: Data file or only the Overlap file.

ulalume3@11:

This document provides a detailed explanation about the structure of the ulalume3@11: NetCDF input files to use for SCC data submission. All Earlinet groups ulalume3@11: should read it carefully because they have to produce such kind of input ulalume3@11: files if they want to use the SCC for their standard lidar retrievals. ulalume3@11: Every comments or suggestions regarding this document can be sent to ulalume3@11: Giuseppe D’Amico by e-mail at damico@imaa.cnr.it

ulalume3@11:

This document is available for downloading at www.earlinetasos.org

ulalume3@11:

In table tab:rawdata is reported a list of dimensions, variables and ulalume3@11: global attributes that can be used in the NetCDF Raw Lidar Data input ulalume3@11: file. For each of them it is indicated:

ulalume3@11:
    ulalume3@11:
  • The name. For the multidimensional variables also the corresponding ulalume3@11: dimensions are reported
  • ulalume3@11:
  • A description explaining the meaning
  • ulalume3@11:
  • The type
  • ulalume3@11:
  • If it is mandatory or optional
  • ulalume3@11:
ulalume3@11:

As already mentioned, the SCC can get some parameters looking first in ulalume3@11: the Raw Lidar Data input file and then into SCC_DB. This means that ulalume3@11: to use the parameters stored in SCC_DB the optional variables or ulalume3@11: optional global attributes must not appear within Raw Lidar Data ulalume3@11: file. This is the suggested and recommended way to use the SCC. Please ulalume3@11: include optional parameters in the Raw Lidar Data only as an ulalume3@11: exception.

ulalume3@11:

In table tab:sounding, tab:overlap and tab:lr are reported all the ulalume3@11: information about the structure of Sounding Data, Overlap and ulalume3@11: Lidar Ratio input files respectively.

ulalume3@11:
ulalume3@11:
ulalume3@11:

Example

ulalume3@11:

Let’s now consider an example of Raw Lidar Data input file. Suppose ulalume3@11: we want to generate NetCDF input file corresponding to a measurement ulalume3@11: with the following properties:

ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
Start Date\(30^{th}\) January 2009
Start Time UT00:00:01
Stop Time UT00:05:01
Station NameDummy station
Earlinet call-signcc
Pointing angle5 degrees with respect to the zenith
ulalume3@11:

Moreover suppose that this measurement is composed by the following ulalume3@11: lidar channels:

ulalume3@11:
    ulalume3@11:
  1. 1064 lidar channel

    ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:

    Emission wavelength=1064nm

    ulalume3@11:

    Detection wavelength=1064nm

    ulalume3@11:

    Time resolution=30s

    ulalume3@11:

    Number of laser shots=1500

    ulalume3@11:

    Number of bins=3000

    ulalume3@11:

    Detection mode=analog

    ulalume3@11:

    Range resolution=7.5m

    ulalume3@11:

    Polarization state=total

    ulalume3@11:
    ulalume3@11:
  2. ulalume3@11:
  3. 532 cross lidar channel

    ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:

    Emission wavelength=532nm

    ulalume3@11:

    Detection wavelength=532nm

    ulalume3@11:

    Time resolution=60s

    ulalume3@11:

    Number of laser shots=3000

    ulalume3@11:

    Number of bins=5000

    ulalume3@11:

    Detection mode=photoncounting

    ulalume3@11:

    Range resolution=15m

    ulalume3@11:

    Polarization state=cross

    ulalume3@11:
    ulalume3@11:
  4. ulalume3@11:
  5. 532 parallel lidar channel

    ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:

    Emission wavelength=532nm

    ulalume3@11:

    Detection wavelength=532nm

    ulalume3@11:

    Time resolution=60s

    ulalume3@11:

    Number of laser shots=3000

    ulalume3@11:

    Number of bins=5000

    ulalume3@11:

    Detection mode=photoncounting

    ulalume3@11:

    Range resolution=15m

    ulalume3@11:

    Polarization state=parallel

    ulalume3@11:
    ulalume3@11:
  6. ulalume3@11:
  7. 607 \(N_2\) vibrational Raman channel

    ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:

    Emission wavelength=532nm

    ulalume3@11:

    Detection wavelength=607nm

    ulalume3@11:

    Time resolution=60s

    ulalume3@11:

    Number of laser shots=3000

    ulalume3@11:

    Number of bins=5000

    ulalume3@11:

    Detection mode=photoncounting

    ulalume3@11:

    Range resolution=15m

    ulalume3@11:
    ulalume3@11:
  8. ulalume3@11:
ulalume3@11:

Finally let’s assume we have also performed dark measurements before the ulalume3@11: lidar measurements from the 23:50:01 UT up to 23:53:01 UT of ulalume3@11: 29:math:^mathrmth January 2009.

ulalume3@11:
ulalume3@11:

Dimensions

ulalume3@11:

Looking at table tab:rawdata we have to fix the following dimensions:

ulalume3@11:
points
ulalume3@11: channels
ulalume3@11: time
ulalume3@11: nb_of_time_scales
ulalume3@11: scan_angles
ulalume3@11: time_bck
ulalume3@11: 
ulalume3@11:
ulalume3@11:

The dimension time is unlimited so we don’t have to fix it.

ulalume3@11:

We have 4 lidar channels so:

ulalume3@11:
channels=4
ulalume3@11: 
ulalume3@11:
ulalume3@11:

Regarding the dimension points we have only one channel with a ulalume3@11: number of vertical bins equal to 3000 (the 1064nm) and all other ulalume3@11: channels with 5000 vertical bins. In cases like this the dimension ulalume3@11: points has to be fixed to the maximum number of vertical bins so:

ulalume3@11:
points=5000
ulalume3@11: 
ulalume3@11:
ulalume3@11:

Moreover only one channel (1064nm) is acquired with a time resolution of ulalume3@11: 30 seconds, all the other channels have a time resolution of 60 seconds. ulalume3@11: This means that we have to define two different time scales. We have to ulalume3@11: set:

ulalume3@11:
nb_of_time_scales=2
ulalume3@11: 
ulalume3@11:
ulalume3@11:

The measurement is performed only at one scan angle (5 degrees with ulalume3@11: respect to the zenith) so:

ulalume3@11:
scan_angles=1
ulalume3@11: 
ulalume3@11:
ulalume3@11:

We have 3 minutes of dark measurements and two different time scales one ulalume3@11: with 60 seconds time resolution and the other one with 30 seconds time ulalume3@11: resolution. So we will have 3 different dark profiles for the channels ulalume3@11: acquired with the first time scale and 6 for the lidar channels acquired ulalume3@11: with the second time scale. We have to fix the dimension time_bck as ulalume3@11: the maximum between these values:

ulalume3@11:
time_bck=6
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:

Variables

ulalume3@11:

In this section it will be explained how to fill all the possible ulalume3@11: variables either mandatory or optional of Raw Lidar Data input file.

ulalume3@11:
ulalume3@11:
Raw_Data_Start_Time(time, nb_of_time_scales)
ulalume3@11:

This 2 dimensional mandatory array has to contain the acquisition ulalume3@11: start time (in seconds from the time given by the global attribute ulalume3@11: RawData_Start_Time_UT) of each lidar profile. In this example we ulalume3@11: have two different time scales: one is characterized by steps of 30 ulalume3@11: seconds (the 1064nm is acquired with this time scale) the other by ulalume3@11: steps of 60 seconds (532cross, 532parallel and 607nm). Moreover the ulalume3@11: measurement start time is 00:00:01 UT and the measurement stop time ulalume3@11: is 00:05:01 UT. In this case we have to define:

ulalume3@11:
Raw_Data_Start_Time =
ulalume3@11:   0, 0,
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   240, 120,
ulalume3@11:   _, 150,
ulalume3@11:   _, 180,
ulalume3@11:   _, 210,
ulalume3@11:   _, 240,
ulalume3@11:   _, 270 ;
ulalume3@11:
ulalume3@11:

The order used to fill this array defines the correspondence between ulalume3@11: the different time scales and the time scale index. In this example ulalume3@11: we have a time scale index of 0 for the time scale with steps of 60 ulalume3@11: seconds and a time scale index of 1 for the other one.

ulalume3@11:
ulalume3@11:
Raw_Data_Stop_Time(time, nb_of_time_scales)
ulalume3@11:

The same as previous item but for the data acquisition stop time. ulalume3@11: Following a similar procedure we have to define:

ulalume3@11:
Raw_Data_Stop_Time =
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   240, 120,
ulalume3@11:   300, 150,
ulalume3@11:   _, 180,
ulalume3@11:   _, 210,
ulalume3@11:   _, 240,
ulalume3@11:   _, 270,
ulalume3@11:   _, 300 ;
ulalume3@11:
ulalume3@11:
ulalume3@11:
Raw_Lidar_Data(time, channels, points)
ulalume3@11:

This 3 dimensional mandatory array has to be filled with the ulalume3@11: time-series of raw lidar data. The photoncounting profiles have to ulalume3@11: submitted in counts (so as integers) while the analog ones in mV. The ulalume3@11: order the user chooses to fill this array defines the correspondence ulalume3@11: between channel index and lidar data.

ulalume3@11:

For example if we fill this array in such way that:

ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
Raw_Lidar_Data(time,0,points\(\rightarrow\) is the time-series of 1064 nm
Raw_Lidar_Data(time,1,points\(\rightarrow\) is the time-series of 532 cross
Raw_Lidar_Data(time,2,points\(\rightarrow\) is the time-series of 532 parallel
Raw_Lidar_Data(time,3,points\(\rightarrow\) is the time-series of 607 nm
ulalume3@11:

from now on the channel index 0 is associated to the 1064 channel, ulalume3@11: 1 to the 532 cross, 2 to the 532 parallel and 3 to the 607nm.

ulalume3@11:
ulalume3@11:
Raw_Bck_Start_Time(time_bck, nb_of_time_scales)
ulalume3@11:

This 2 dimensional optional array has to contain the acquisition ulalume3@11: start time (in seconds from the time given by the global attribute ulalume3@11: RawBck_Start_Time_UT) of each dark measurements profile. ulalume3@11: Following the same procedure used for the variable ulalume3@11: Raw_Data_Start_Time we have to define:

ulalume3@11:
Raw_Bck_Start_Time =
ulalume3@11:   0, 0,
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   _, 90,
ulalume3@11:   _, 120,
ulalume3@11:   _, 150;
ulalume3@11:
ulalume3@11:
ulalume3@11:
Raw_Bck_Stop_Time(time_bck, nb_of_time_scales)
ulalume3@11:

The same as previous item but for the dark acquisition stop time. ulalume3@11: Following a similar procedure we have to define:

ulalume3@11:
Raw_Bck_Stop_Time =
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   _, 120,
ulalume3@11:   _, 150,
ulalume3@11:   _, 180 ;
ulalume3@11:
ulalume3@11:
ulalume3@11:
Background_Profile(time_bck, channels, points)
ulalume3@11:

This 3 dimensional optional array has to be filled with the ulalume3@11: time-series of the dark measurements data. The photoncounting ulalume3@11: profiles have to submitted in counts (so as integers) while the ulalume3@11: analog ones in mV. The user has to fill this array following the same ulalume3@11: order used in filling the array Raw_Lidar_Data:

ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
Background_Profile(time_bck,0,points\(\rightarrow\) dark time-series at 1064 nm
Background_Profile(time_bck,1,points\(\rightarrow\) dark time-series at 532 cross
Background_Profile(time_bck,2,points\(\rightarrow\) dark time-series at 532 parallel
Background_Profile(time_bck,3,points\(\rightarrow\) dark time-series at 607 nm
ulalume3@11:
ulalume3@11:
channel_ID(channels)
ulalume3@11:

This mandatory array provides the link between the channel index ulalume3@11: within the Raw Lidar Data input file and the channel ID in ulalume3@11: SCC_DB. To fill this variable the user has to know which channel IDs ulalume3@11: in SCC_DB correspond to his lidar channels. For this purpose the ulalume3@11: SCC, in its final version will provide to the user a special tool to ulalume3@11: get these channel IDs through a Web interface. At the moment this ulalume3@11: interface is not yet available and these channel IDs will be ulalume3@11: communicated directly to the user by the NA5 people.

ulalume3@11:

Anyway to continue the example let’s suppose that the four lidar ulalume3@11: channels taken into account are mapped into SCC_DB with the ulalume3@11: following channel IDs:

ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
1064 nm\(\rightarrow\) channel ID=7
532 cross\(\rightarrow\) channel ID=5
532 parallel\(\rightarrow\) channel ID=6
607 nm\(\rightarrow\) channel ID=8
ulalume3@11:
ulalume3@11:
In this case we have to define:
ulalume3@11:
channel_ID = 7, 5, 6, 8 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
id_timescale(channels)
ulalume3@11:

This mandatory array is introduced to determine which time scale is ulalume3@11: used for the acquisition of each lidar channel. In particular this ulalume3@11: array defines the link between the channel index and the time scale ulalume3@11: index. In our example we have two different time scales. Filling the ulalume3@11: arrays Raw_Data_Start_Time and Raw_Data_Stop_Time we have ulalume3@11: defined a time scale index of 0 for the time scale with steps of 60 ulalume3@11: seconds and a time scale index of 1 for the other one with steps of ulalume3@11: 30 seconds. In this way this array has to be set as:

ulalume3@11:
id_timescale = 1, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Laser_Pointing_Angle(scan_angles
ulalume3@11:

This mandatory array contains all the scan angles used in the ulalume3@11: measurement. In our example we have only one scan angle of 5 degrees ulalume3@11: with respect to the zenith, so we have to define:

ulalume3@11:
Laser_Pointing_Angle = 5 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales)
ulalume3@11:

This mandatory array is introduced to determine which scan angle is ulalume3@11: used for the acquisition of each lidar profile. In particular this ulalume3@11: array defines the link between the time and time scales indexes and ulalume3@11: the scan angle index. In our example we have a single scan angle that ulalume3@11: has to correspond to the scan angle index 0. So this array has to be ulalume3@11: defined as:

ulalume3@11:
Laser_Pointing_Angle_of_Profiles =
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0 ;
ulalume3@11:
ulalume3@11:
ulalume3@11:
Laser_Shots(time, channels)
ulalume3@11:

This mandatory array stores the laser shots accumulated at each time ulalume3@11: for each channel. In our example the number of laser shots ulalume3@11: accumulated is 1500 for the 1064nm channels and 3000 for all the ulalume3@11: other channels. Moreover the laser shots do not change with the time. ulalume3@11: So we have to define this array as:

ulalume3@11:
Laser_Shots =
ulalume3@11:  1500, 3000, 3000, 3000,
ulalume3@11:  1500, 3000, 3000, 3000,
ulalume3@11:  1500, 3000, 3000, 3000,
ulalume3@11:  1500, 3000, 3000, 3000,
ulalume3@11:  1500, 3000, 3000, 3000,
ulalume3@11:  1500, _, _, _,
ulalume3@11:  1500, _, _, _,
ulalume3@11:  1500, _, _, _,
ulalume3@11:  1500, _, _, _,
ulalume3@11:  1500, _, _, _ ;
ulalume3@11:
ulalume3@11:
ulalume3@11:
Emitted_Wavelength(channels)
ulalume3@11:

This optional array defines the link between the channel index and ulalume3@11: the emission wavelength for each lidar channel. The wavelength has to ulalume3@11: be expressed in nm. This information can be also taken from SCC_DB. ulalume3@11: In our example we have:

ulalume3@11:
Emitted_Wavelength = 1064, 532, 532, 532 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Detected_Wavelength(channels)
ulalume3@11:

This optional array defines the link between the channel index and ulalume3@11: the detected wavelength for each lidar channel. Here detected ulalume3@11: wavelength means the value of center of interferential filter ulalume3@11: expressed in nm. This information can be also taken from SCC_DB. In ulalume3@11: our example we have:

ulalume3@11:
Detected_Wavelength = 1064, 532, 532, 607 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Raw_Data_Range_Resolution(channels)
ulalume3@11:

This optional array defines the link between the channel index and ulalume3@11: the raw range resolution for each channel. If the scan angle is ulalume3@11: different from zero this quantity is different from the vertical ulalume3@11: resolution. More precisely if \(\alpha\) is the scan angle used ulalume3@11: and \(\Delta z\) is the range resolution the vertical ulalume3@11: resolution is calculated as \(\Delta ulalume3@11: z'=\Delta z \cos\alpha\). This array has to be filled with ulalume3@11: \(\Delta z\) and not with \(\Delta z'\). The unit is ulalume3@11: meters. This information can be also taken from SCC_DB. In our ulalume3@11: example we have:

ulalume3@11:
Raw_Data_Range_Resolution = 7.5, 15.0, 15.0, 15.0 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
ID_Range(channels)
ulalume3@11:

This optional array defines if a particular channel is configured as ulalume3@11: high, low or ultranear range channel. In particular a value 0 ulalume3@11: indicates a low range channel, a value 1 a high range channel and a ulalume3@11: value of 2 an ultranear range channel. If for a particular channel ulalume3@11: you don’t separate between high and low range channel, please set the ulalume3@11: corresponding value to 1. This information can be also taken from ulalume3@11: SCC_DB. In our case we have to set:

ulalume3@11:
ID_Range = 1, 1, 1, 1 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Scattering_Mechanism(channels)
ulalume3@11:

This optional array defines the scattering mechanism involved in ulalume3@11: each lidar channel. In particular the following values are adopted:

ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
0\(\rightarrow\) Total elastic backscatter
1\(\rightarrow\) \(N_2\) vibrational Raman backscatter
2\(\rightarrow\) Cross polarization elastic backscatter
3\(\rightarrow\) Parallel polarization elastic backscatter
4\(\rightarrow\) \(H_2O\) vibrational Raman backscatter
5\(\rightarrow\) Rotational Raman Stokes line close to elastic line
6\(\rightarrow\) Rotational Raman Stokes line far from elastic line
7\(\rightarrow\) Rotational Raman anti-Stokes line close to elastic line
8\(\rightarrow\) Rotational Raman anti-Stokes line far from elastic line
9\(\rightarrow\) Rotational Raman Stokes and anti-Stokes lines close to elastic line
10\(\rightarrow\) Rotational Raman Stokes and anti-Stokes lines far from elastic line
ulalume3@11:

This information can be also taken from SCC_DB. In our example we have:

ulalume3@11:
Scattering_Mechanism = 0, 2, 3, 1 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Acquisition_Mode(channels)
ulalume3@11:

This optional array defines the acquisition mode (analog or ulalume3@11: photoncounting) involved in each lidar channel. In particular a value ulalume3@11: of 0 means analog mode and 1 photoncounting mode. This information ulalume3@11: can be also taken from SCC_DB. In our example we have:

ulalume3@11:
Acquisition_Mode = 0, 1, 1, 1 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Laser_Repetition_Rate(channels)
ulalume3@11:

This optional array defines the repetition rate in Hz used to ulalume3@11: acquire each lidar channel. This information can be also taken from ulalume3@11: SCC_DB. In our example we are supposing we have only one laser with ulalume3@11: a repetition rate of 50 Hz so we have to set:

ulalume3@11:
Laser_Repetition_Rate = 50, 50, 50, 50 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Dead_Time(channels)
ulalume3@11:

This optional array defines the dead time in ns associated to each ulalume3@11: lidar channel. The SCC will use the values given by this array to ulalume3@11: correct the photoncounting signals for dead time. Of course for ulalume3@11: analog signals no dead time correction will be applied (for analog ulalume3@11: channels the corresponding dead time values have to be set to ulalume3@11: undefined value). This information can be also taken from SCC_DB. In ulalume3@11: our example the 1064 nm channel is acquired in analog mode so the ulalume3@11: corresponding dead time value has to be undefined. If we suppose a ulalume3@11: dead time of 10 ns for all other channels we have to set:

ulalume3@11:
Dead_Time = _, 10, 10, 10 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Dead_Time_Corr_Type(channels
ulalume3@11:

This optional array defines which kind of dead time correction has ulalume3@11: to be applied on each photoncounting channel. The SCC will correct ulalume3@11: the data supposing a not-paralyzable channel if a value of 0 is found ulalume3@11: while a paralyzable channel is supposed if a value of 1 is found. Of ulalume3@11: course for analog signals no dead time correction will be applied and ulalume3@11: so the corresponding values have to be set to undefined value. This ulalume3@11: information can be also taken from SCC_DB. In our example the 1064 ulalume3@11: nm channel is acquired in analog mode so the corresponding has to be ulalume3@11: undefined. If we want to consider all the photoncounting signals as ulalume3@11: not-paralyzable ones: we have to set:

ulalume3@11:
Dead_Time_Corr_Type = _, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Trigger_Delay(channels)
ulalume3@11:

This optional array defines the delay (in ns) of the middle of the ulalume3@11: first rangebin with respect to the output laser pulse for each lidar ulalume3@11: channel. The SCC will use the values given by this array to correct ulalume3@11: for trigger delay. This information can be also taken from SCC_DB. ulalume3@11: Let’s suppose that in our example all the photoncounting channels are ulalume3@11: not affected by this delay and only the analog channel at 1064nm is ulalume3@11: acquired with a delay of 50ns. In this case we have to set:

ulalume3@11:
Trigger_Delay = 50, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Background_Mode(channels
ulalume3@11:

This optional array defines how the atmospheric background has to be ulalume3@11: subtracted from the lidar channel. Two options are available for the ulalume3@11: calculation of atmospheric background:

ulalume3@11:
    ulalume3@11:
  1. Average in the far field of lidar channel. In this case the value ulalume3@11: of this variable has to be 1
  2. ulalume3@11:
  3. Average within pre-trigger bins. In this case the value of this ulalume3@11: variable has to be 0
  4. ulalume3@11:
ulalume3@11:

This information can be also taken from SCC_DB. Let’s suppose in our ulalume3@11: example we use the pre-trigger for the 1064nm channel and the far ulalume3@11: field for all other channels. In this case we have to set:

ulalume3@11:
Background_Mode = 0, 1, 1, 1 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Background_Low(channels)
ulalume3@11:

This mandatory array defines the minimum altitude (in meters) to ulalume3@11: consider in calculating the atmospheric background for each channel. ulalume3@11: In case pre-trigger mode is used the corresponding value has to be ulalume3@11: set to the rangebin to be used as lower limit (within pre-trigger ulalume3@11: region) for background calculation. In our example, if we want to ulalume3@11: calculate the background between 30000 and 50000 meters for all ulalume3@11: photoncounting channels and we want to use the first 500 pre-trigger ulalume3@11: bins for the background calculation for the 1064nm channel we have to ulalume3@11: set:

ulalume3@11:
Background_Low= 0, 30000, 30000, 30000 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Background_High(channels)
ulalume3@11:

This mandatory array defines the maximum altitude (in meters) to ulalume3@11: consider in calculating the atmospheric background for each channel. ulalume3@11: In case pre-trigger mode is used the corresponding value has to be ulalume3@11: set to the rangebin to be used as upper limit (within pre-trigger ulalume3@11: region) for background calculation. In our example, if we want to ulalume3@11: calculate the background between 30000 and 50000 meters for all ulalume3@11: photoncounting channels and we want to use the first 500 pre-trigger ulalume3@11: bins for the background calculation for the 1064nm channel we have to ulalume3@11: set:

ulalume3@11:
Background_High = 500, 50000, 50000, 50000 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Molecular_Calc
ulalume3@11:

This mandatory variable defines the way used by SCC to calculate the ulalume3@11: molecular density profile. At the moment two options are available:

ulalume3@11:
    ulalume3@11:
  1. US Standard Atmosphere 1976. In this case the value of this ulalume3@11: variable has to be 0
  2. ulalume3@11:
  3. Radiosounding. In this case the value of this variable has to be 1
  4. ulalume3@11:
ulalume3@11:

If we decide to use the option 1. we have to provide also the ulalume3@11: measured pressure and temperature at lidar station level. Indeed if ulalume3@11: we decide to use the option 2. a radiosounding file has to be ulalume3@11: submitted separately in NetCDF format (the structure of this file is ulalume3@11: summarized in table tab:sounding). Let’s suppose we want to use the ulalume3@11: option 1. so:

ulalume3@11:
Molecular_Calc = 0 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Pressure_at_Lidar_Station
ulalume3@11:

Because we have chosen the US Standard Atmosphere for calculation of ulalume3@11: the molecular density profile we have to give the pressure in hPa at ulalume3@11: lidar station level:

ulalume3@11:
Pressure_at_Lidar_Station = 1010 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Temperature_at_Lidar_Station
ulalume3@11:

Because we have chosen the US Standard Atmosphere for calculation of ulalume3@11: the molecular density profile we have to give the temperature in C at ulalume3@11: lidar station level:

ulalume3@11:
Temperature_at_Lidar_Station = 19.8 ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
Depolarization_Factor(channels)
ulalume3@11:

This array is required only for lidar systems that use the two ulalume3@11: depolarization channels for the backscatter retrieval. It represents ulalume3@11: the factor \(f\) to calculate the total backscatter signal ulalume3@11: \(S_t\) combining its cross \(S_c\) and parallel ulalume3@11: \(S_p\) components: \(S_t=S_p+fS_c\). This factor is ulalume3@11: mandatory only for systems acquiring \(S_c\) and \(S_p\) ulalume3@11: and not \(S_t\). For systems acquiring \(S_c\), ulalume3@11: \(S_p\) and \(S_t\) this factor is optional and it will ulalume3@11: be used only for depolarizaton ratio calculation. Moreover only the ulalume3@11: values of the array corresponding to cross polarization channels will ulalume3@11: be considered; all other values will be not taken into account and ulalume3@11: should be set to undefined value. In our example for the wavelength ulalume3@11: 532nm we have only the cross and the parallel components and not the ulalume3@11: total one. So we have to give the value of this factor only in ulalume3@11: correspondence of the 532nm cross polarization channel that ulalume3@11: corresponds to the channel index 1. Suppose that this factor is 0.88. ulalume3@11: Moreover, because we don’t have any other depolarization channels we ulalume3@11: have also to set all other values of the array to undefined value.

ulalume3@11:
Depolarization_Factor = _,0.88,_,_ ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
LR_Input(channels)
ulalume3@11:

This array is required only for lidar channels for which elastic ulalume3@11: backscatter retrieval has to be performed. It defines the lidar ratio ulalume3@11: to be used within this retrieval. Two options are available:

ulalume3@11:
    ulalume3@11:
  1. The user can submit a lidar ratio profile. In this case the value ulalume3@11: of this variable has to be 0.
  2. ulalume3@11:
  3. A fixed value of lidar ratio can be used. In this case the value ulalume3@11: of this variable has to be 1.
  4. ulalume3@11:
ulalume3@11:

If we decide to use the option 1. a lidar ratio file has to be ulalume3@11: submitted separately in NetCDF format (the structure of this file is ulalume3@11: summarized in table tab:lr). If we decide to use the option 2. the ulalume3@11: fixed value of lidar ratio will be taken from SCC_DB. In our example ulalume3@11: we have to give a value of this array only for the 1064nm lidar ulalume3@11: channel because for the 532nm we will be able to retrieve a Raman ulalume3@11: backscatter coefficient. In case we want to use the fixed value ulalume3@11: stored in SCC_DB we have to set:

ulalume3@11:
LR_Input = 1,_,_,_ ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
DAQ_Range(channels)
ulalume3@11:

This array is required only if one or more lidar signals are ulalume3@11: acquired in analog mode. It gives the analog scale in mV used to ulalume3@11: acquire the analog signals. In our example we have only the 1064nm ulalume3@11: channel acquired in analog mode. If we have used a 100mV analog scale ulalume3@11: to acquire this channel we have to set:

ulalume3@11:
DAQ_Range = 100,_,_,_ ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:

Global attributes

ulalume3@11:
ulalume3@11:
Measurement_ID
ulalume3@11:

This mandatory global attribute defines the measurement ID ulalume3@11: corresponding to the actual lidar measurement. It is a string ulalume3@11: composed by 12 characters. The first 8 characters give the start date ulalume3@11: of measurement in the format YYYYMMDD. The next 2 characters give the ulalume3@11: Earlinet call-sign of the station. The last 2 characters are used to ulalume3@11: distinguish between different time-series within the same date. In ulalume3@11: our example we have to set:

ulalume3@11:
Measurement_ID= "20090130cc00" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
RawData_Start_Date
ulalume3@11:

This mandatory global attribute defines the start date of lidar ulalume3@11: measurements in the format YYYYMMDD. In our case we have:

ulalume3@11:
RawData_Start_Date = "20090130" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
RawData_Start_Time_UT
ulalume3@11:

This mandatory global attribute defines the UT start time of lidar ulalume3@11: measurements in the format HHMMSS. In our case we have:

ulalume3@11:
RawData_Start_Time_UT = "000001" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
RawData_Stop_Time_UT``
ulalume3@11:

This mandatory global attribute defines the UT stop time of lidar ulalume3@11: measurements in the format HHMMSS. In our case we have:

ulalume3@11:
RawData_Stop_Time_UT = "000501" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
RawBck_Start_Date
ulalume3@11:

This optional global attribute defines the start date of dark ulalume3@11: measurements in the format YYYYMMDD. In our case we have:

ulalume3@11:
RawBck_Start_Date = "20090129" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
RawBck_Start_Time_UT
ulalume3@11:

This optional global attribute defines the UT start time of dark ulalume3@11: measurements in the format HHMMSS. In our case we have:

ulalume3@11:
RawBck_Start_Time_UT = "235001" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
RawBck_Stop_Time_UT
ulalume3@11:

This optional global attribute defines the UT stop time of dark ulalume3@11: measurements in the format HHMMSS. In our case we have:

ulalume3@11:
RawBck_Stop_Time_UT = "235301" ;
ulalume3@11: 
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:

Example of file (CDL format)

ulalume3@11:

To summarize we have the following NetCDF Raw Lidar Data file (in CDL ulalume3@11: format):

ulalume3@11:
dimensions:
ulalume3@11:         points = 5000 ;
ulalume3@11:         channels = 4 ;
ulalume3@11:         time = UNLIMITED ; // (10 currently)
ulalume3@11:         nb_of_time_scales = 2 ;
ulalume3@11:         scan_angles = 1 ;
ulalume3@11:         time_bck = 6 ;
ulalume3@11: variables:
ulalume3@11:         int channel_ID(channels) ;
ulalume3@11:         int Laser_Repetition_Rate(channels) ;
ulalume3@11:         double Laser_Pointing_Angle(scan_angles) ;
ulalume3@11:         int ID_Range(channels) ;
ulalume3@11:         int Scattering_Mechanism(channels) ;
ulalume3@11:         double Emitted_Wavelength(channels) ;
ulalume3@11:         double Detected_Wavelength(channels) ;
ulalume3@11:         double Raw_Data_Range_Resolution(channels) ;
ulalume3@11:         int Background_Mode(channels) ;
ulalume3@11:         double Background_Low(channels) ;
ulalume3@11:         double Background_High(channels) ;
ulalume3@11:         int Molecular_Calc ;
ulalume3@11:         double Pressure_at_Lidar_Station ;
ulalume3@11:         double Temperature_at_Lidar_Station ;
ulalume3@11:         int id_timescale(channels) ;
ulalume3@11:         double Dead_Time(channels) ;
ulalume3@11:         int Dead_Time_Corr_Type(channels) ;
ulalume3@11:         int Acquisition_Mode(channels) ;
ulalume3@11:         double Trigger_Delay(channels) ;
ulalume3@11:         int LR_Input(channels) ;
ulalume3@11:         int Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales) ;
ulalume3@11:         int Raw_Data_Start_Time(time, nb_of_time_scales) ;
ulalume3@11:         int Raw_Data_Stop_Time(time, nb_of_time_scales) ;
ulalume3@11:         int Raw_Bck_Start_Time(time_bck, nb_of_time_scales) ;
ulalume3@11:         int Raw_Bck_Stop_Time(time_bck, nb_of_time_scales) ;
ulalume3@11:         int Laser_Shots(time, channels) ;
ulalume3@11:         double Raw_Lidar_Data(time, channels, points) ;
ulalume3@11:         double Background_Profile(time_bck, channels, points) ;
ulalume3@11:         double DAQ_Range(channels) ;
ulalume3@11: 
ulalume3@11: // global attributes:
ulalume3@11:                 :Measurement_ID = "20090130cc00" ;
ulalume3@11:                 :RawData_Start_Date = "20090130" ;
ulalume3@11:                 :RawData_Start_Time_UT = "000001" ;
ulalume3@11:                 :RawData_Stop_Time_UT = "000501" ;
ulalume3@11:                 :RawBck_Start_Date = "20090129" ;
ulalume3@11:                 :RawBck_Start_Time_UT = "235001" ;
ulalume3@11:                 :RawBck_Stop_Time_UT = "235301" ;
ulalume3@11: 
ulalume3@11: data:
ulalume3@11: 
ulalume3@11:  channel_ID = 7, 5, 6, 8 ;
ulalume3@11: 
ulalume3@11:  Laser_Repetition_Rate = 50, 50, 50, 50 ;
ulalume3@11: 
ulalume3@11:  Laser_Pointing_Angle = 5 ;
ulalume3@11: 
ulalume3@11:  ID_Range = 1, 1, 1, 1 ;
ulalume3@11: 
ulalume3@11:  Scattering_Mechanism = 0, 2, 3, 1 ;
ulalume3@11: 
ulalume3@11:  Emitted_Wavelength = 1064, 532, 532, 532 ;
ulalume3@11: 
ulalume3@11:  Detected_Wavelength = 1064, 532, 532, 607 ;
ulalume3@11: 
ulalume3@11:  Raw_Data_Range_Resolution = 7.5, 15, 15, 15 ;
ulalume3@11: 
ulalume3@11:  Background_Mode = 0, 1, 1, 1 ;
ulalume3@11: 
ulalume3@11:  Background_Low = 0, 30000, 30000, 30000 ;
ulalume3@11: 
ulalume3@11:  Background_High = 500, 50000, 50000, 50000 ;
ulalume3@11: 
ulalume3@11:  Molecular_Calc = 0 ;
ulalume3@11: 
ulalume3@11:  Pressure_at_Lidar_Station = 1010 ;
ulalume3@11: 
ulalume3@11:  Temperature_at_Lidar_Station = 19.8 ;
ulalume3@11: 
ulalume3@11:  id_timescale = 1, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:  Dead_Time = _, 10, 10, 10 ;
ulalume3@11: 
ulalume3@11:  Dead_Time_Corr_Type = _, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:  Acquisition_Mode = 0, 1, 1, 1 ;
ulalume3@11: 
ulalume3@11:  Trigger_Delay = 50, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:  LR_Input = 1,_,_,_ ;
ulalume3@11: 
ulalume3@11:  DAQ_Range = 100,_,_,_ ;
ulalume3@11: 
ulalume3@11:  Laser_Pointing_Angle_of_Profiles =
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0 ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Data_Start_Time =
ulalume3@11:   0, 0,
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   240, 120,
ulalume3@11:   _, 150,
ulalume3@11:   _, 180,
ulalume3@11:   _, 210,
ulalume3@11:   _, 240,
ulalume3@11:   _, 270 ;
ulalume3@11: 
ulalume3@11:  Raw_Data_Stop_Time =
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   240, 120,
ulalume3@11:   300, 150,
ulalume3@11:   _, 180,
ulalume3@11:   _, 210,
ulalume3@11:   _, 240,
ulalume3@11:   _, 270,
ulalume3@11:   _, 300 ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Bck_Start_Time =
ulalume3@11:   0, 0,
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   _, 90,
ulalume3@11:   _, 120,
ulalume3@11:   _, 150;
ulalume3@11: 
ulalume3@11: 
ulalume3@11: Raw_Bck_Stop_Time =
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   _, 120,
ulalume3@11:   _, 150,
ulalume3@11:   _, 180 ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Laser_Shots =
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _ ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Lidar_Data = ...
ulalume3@11: 
ulalume3@11:  Background_Profile = ...
ulalume3@11:
ulalume3@11:

Please keep in mind that in case you submit a file like the previous one ulalume3@11: all the parameters present in it will be used by the SCC even if you ulalume3@11: have different values for the same parameters within the SCC_DB. If you ulalume3@11: want to use the values already stored in SCC_DB (this should be the ulalume3@11: usual way to use SCC) the Raw Lidar Data input file has to be ulalume3@11: modified as follows:

ulalume3@11:
dimensions:
ulalume3@11:         points = 5000 ;
ulalume3@11:         channels = 4 ;
ulalume3@11:         time = UNLIMITED ; // (10 currently)
ulalume3@11:         nb_of_time_scales = 2 ;
ulalume3@11:         scan_angles = 1 ;
ulalume3@11:         time_bck = 6 ;
ulalume3@11: variables:
ulalume3@11:         int channel_ID(channels) ;
ulalume3@11:         double Laser_Pointing_Angle(scan_angles) ;
ulalume3@11:         double Background_Low(channels) ;
ulalume3@11:         double Background_High(channels) ;
ulalume3@11:         int Molecular_Calc ;
ulalume3@11:         double Pressure_at_Lidar_Station ;
ulalume3@11:         double Temperature_at_Lidar_Station ;
ulalume3@11:         int id_timescale(channels) ;
ulalume3@11:         int Laser_Pointing_Angle_of_Profiles(time, nb_of_time_scales) ;
ulalume3@11:         int Raw_Data_Start_Time(time, nb_of_time_scales) ;
ulalume3@11:         int Raw_Data_Stop_Time(time, nb_of_time_scales) ;
ulalume3@11:         int Raw_Bck_Start_Time(time_bck, nb_of_time_scales) ;
ulalume3@11:         int Raw_Bck_Stop_Time(time_bck, nb_of_time_scales) ;
ulalume3@11:         int LR_Input(channels) ;
ulalume3@11:         int Laser_Shots(time, channels) ;
ulalume3@11:         double Raw_Lidar_Data(time, channels, points) ;
ulalume3@11:         double Background_Profile(time_bck, channels, points) ;
ulalume3@11:         double DAQ_Range(channels) ;
ulalume3@11: 
ulalume3@11: // global attributes:
ulalume3@11:                 :Measurement_ID = "20090130cc00" ;
ulalume3@11:                 :RawData_Start_Date = "20090130" ;
ulalume3@11:                 :RawData_Start_Time_UT = "000001" ;
ulalume3@11:                 :RawData_Stop_Time_UT = "000501" ;
ulalume3@11:                 :RawBck_Start_Date = "20090129" ;
ulalume3@11:                 :RawBck_Start_Time_UT = "235001" ;
ulalume3@11:                 :RawBck_Stop_Time_UT = "235301" ;
ulalume3@11: 
ulalume3@11: data:
ulalume3@11: 
ulalume3@11:  channel_ID = 7, 5, 6, 8 ;
ulalume3@11: 
ulalume3@11:  Laser_Pointing_Angle = 5 ;
ulalume3@11: 
ulalume3@11:  Background_Low = 0, 30000, 30000, 30000 ;
ulalume3@11: 
ulalume3@11:  Background_High = 500, 50000, 50000, 50000 ;
ulalume3@11: 
ulalume3@11:  Molecular_Calc = 0 ;
ulalume3@11: 
ulalume3@11:  Pressure_at_Lidar_Station = 1010 ;
ulalume3@11: 
ulalume3@11:  Temperature_at_Lidar_Station = 19.8 ;
ulalume3@11: 
ulalume3@11:  id_timescale = 1, 0, 0, 0 ;
ulalume3@11: 
ulalume3@11:  LR_Input = 1,_,_,_ ;
ulalume3@11: 
ulalume3@11:  DAQ_Range = 100,_,_,_ ;
ulalume3@11: 
ulalume3@11:  Laser_Pointing_Angle_of_Profiles =
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   0, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0,
ulalume3@11:   _, 0 ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Data_Start_Time =
ulalume3@11:   0, 0,
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   240, 120,
ulalume3@11:   _, 150,
ulalume3@11:   _, 180,
ulalume3@11:   _, 210,
ulalume3@11:   _, 240,
ulalume3@11:   _, 270 ;
ulalume3@11: 
ulalume3@11:  Raw_Data_Stop_Time =
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   240, 120,
ulalume3@11:   300, 150,
ulalume3@11:   _, 180,
ulalume3@11:   _, 210,
ulalume3@11:   _, 240,
ulalume3@11:   _, 270,
ulalume3@11:   _, 300 ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Bck_Start_Time =
ulalume3@11:   0, 0,
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   _, 90,
ulalume3@11:   _, 120,
ulalume3@11:   _, 150;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Bck_Stop_Time =
ulalume3@11:   60, 30,
ulalume3@11:   120, 60,
ulalume3@11:   180, 90,
ulalume3@11:   _, 120,
ulalume3@11:   _, 150,
ulalume3@11:   _, 180 ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Laser_Shots =
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, 3000, 3000, 3000,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _,
ulalume3@11:   1500, _, _, _ ;
ulalume3@11: 
ulalume3@11: 
ulalume3@11:  Raw_Lidar_Data = ...
ulalume3@11: 
ulalume3@11:  Background_Profile = ...
ulalume3@11:
ulalume3@11:

This example file contains the minimum collection of mandatory ulalume3@11: information that has to be found within the Raw Lidar Data input ulalume3@11: file. If it is really necessary, the user can decide to add to these ulalume3@11: mandatory parameters any number of additional parameters considered in ulalume3@11: the previous example.

ulalume3@11:

Finally, suppose we want to make the following changes with respect to ulalume3@11: the previous example:

ulalume3@11:
    ulalume3@11:
  1. use a sounding file for molecular density calculation instead of “US ulalume3@11: Standar Atmosphere 1976”
  2. ulalume3@11:
  3. supply a lidar ratio profile to use in elastic backscatter retrieval ulalume3@11: instead of a fixed value
  4. ulalume3@11:
  5. provide a overlap function for overlap correction
  6. ulalume3@11:
ulalume3@11:

In this case we have to generate the following NetCDF additional files:

ulalume3@11:
ulalume3@11:
rs_20090130cc00.nc
ulalume3@11:
The name of Sounding Data file has to be computed as follows: ulalume3@11: "rs_"``+``Measurement_ID ulalume3@11: The structure of this file is summarized in table tab:sounding.
ulalume3@11:
ov_20090130cc00.nc
ulalume3@11:
The name of Overlap file has to be computed as follows: ulalume3@11: "ov_"``+``Measurement_ID ulalume3@11: The structure of this file is summarized in table tab:overlap.
ulalume3@11:
lr_20090130cc00.nc
ulalume3@11:
The name of Lidar Ratio file has to be computed as follows: ulalume3@11: "lr_"``+``Measurement_ID ulalume3@11: The structure of this file is summarized in table tab:lr.
ulalume3@11:
ulalume3@11:

Moreover we need to apply the following changes to the Raw Lidar Data ulalume3@11: input file:

ulalume3@11:
    ulalume3@11:
  1. Change the value of the variable Molecular_Calc as follows:

    ulalume3@11:
    Molecular_Calc = 1 ;
    ulalume3@11: 
    ulalume3@11:
    ulalume3@11:

    Of course the variables Pressure_at_Lidar_Station and ulalume3@11: Temperature_at_Lidar_Station are not necessary anymore.

    ulalume3@11:
  2. ulalume3@11:
  3. Change the values of the array LR_Input as follows:

    ulalume3@11:
    LR_Input = 0,_,_,_ ;
    ulalume3@11: 
    ulalume3@11:
    ulalume3@11:
  4. ulalume3@11:
  5. Add the global attribute Sounding_File_Name

    ulalume3@11:
    Sounding_File_Name = "rs_20090130cc00.nc" ;
    ulalume3@11: 
    ulalume3@11:
    ulalume3@11:
  6. ulalume3@11:
ulalume3@11:
    ulalume3@11:
  1. Add the global attribute LR_File_Name

    ulalume3@11:
    LR_File_Name = "lr_20090130cc00.nc" ;
    ulalume3@11: 
    ulalume3@11:
    ulalume3@11:
  2. ulalume3@11:
  3. Add the global attribute Overlap_File_Name

    ulalume3@11:
    Overlap_File_Name = "ov_20090130cc00.nc" ;
    ulalume3@11: 
    ulalume3@11:
    ulalume3@11:
  4. ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11: ulalume3@11: ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:

Table Of Contents

ulalume3@11: ulalume3@11: ulalume3@11:

Previous topic

ulalume3@11:

View processing results

ulalume3@11:

Next topic

ulalume3@11:

User management

ulalume3@11:

This Page

ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11:
ulalume3@11: ulalume3@11: ulalume3@11: ulalume3@11: