Merge from 89:c7ed2540212a

Wed, 06 Dec 2017 11:50:41 +0200

author
Iannis <ulalume3@yahoo.com>
date
Wed, 06 Dec 2017 11:50:41 +0200
changeset 91
f9d9d3ea8edb
parent 90
e2088d39ee9b (current diff)
parent 89
361c9897030f (diff)
child 92
6d26002aaeed

Merge from 89:c7ed2540212a

atmospheric_lidar/systems/adam2016/adam2016_depol.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/adam2016/adam2016_depolarization_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/adam2017/adam2017.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/adam2017/adam2017_depol.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/adam2017/adam2017_depolarization_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/adam2017/adam2017_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/adam2017/adam2017_netcdf_parameters_2.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/aias/aias_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/ciao.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/eole/eole.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/eole/eole_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/ipral/ipral.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/ipral/ipral_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/lamp_lidar/at_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/lamp_lidar/cf_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/lamp_lidar/cf_raymetrics.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/lilas/lilas.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/lilas/lilas_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/musa/musa.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/musa/musa_2009_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/musa/musa_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/pearl/pearl.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/pearl/pearl_netcdf_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/rali/rali.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/rali/rali_depol.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/rali/rali_depolarization_parameters.py file | annotate | diff | comparison | revisions
atmospheric_lidar/systems/rali/rali_netcdf_parameters.py file | annotate | diff | comparison | revisions
--- a/atmospheric_lidar/adam2016_depol.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-from licel_depol import LicelCalibrationMeasurement
-import adam2016_depolarization_parameters
-
-class ADAM2017CalibrationMeasurement(LicelCalibrationMeasurement):
-    extra_netcdf_parameters = adam2016_depolarization_parameters
--- a/atmospheric_lidar/adam2016_depolarization_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-general_parameters =  \
-{'System': '\'ADAM 2012-2017\'',
- 'Call sign': 'is',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 45.8,
- 'Longitude_degrees_east': 8.6,
- 'Altitude_meter_asl': 209.0}  # This should be float
-
-# Change to channel_parameters to use all channels. For testing I define only photon counting channels below.
-channel_parameters = \
-{'BC1_p45': {'channel_ID': 647,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1501,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2500,
-         'Pol_Calib_Range_Max': 4000},
- 'BC2_p45': {'channel_ID': 649,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1501,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2500,
-         'Pol_Calib_Range_Max': 4000},
- 'BC1_m45': {'channel_ID': 646,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1501,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2500,
-         'Pol_Calib_Range_Max': 4000},
- 'BC2_m45': {'channel_ID': 648,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1501,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2500,
-         'Pol_Calib_Range_Max': 4000},
-         }
-         
-"""
-{'00532.p_an_p45': {'channel_ID': 383,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_p45': {'channel_ID': 378,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_an_p45': {'channel_ID': 385 ,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_p45': {'channel_ID': 380,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_an_m45': {'channel_ID': 384,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_m45': {'channel_ID': 379,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_an_m45': {'channel_ID': 386,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_m45': {'channel_ID': 382,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
-         }
-"""
--- a/atmospheric_lidar/adam2017.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-from licel import LicelLidarMeasurement
-
-import adam2017_netcdf_parameters
-
-class ADAM2017LidarMeasurement(LicelLidarMeasurement):
-    extra_netcdf_parameters = adam2017_netcdf_parameters
-
-    def _get_scc_mandatory_channel_variables(self):
-        channel_variables = \
-            {'Background_Low': (('channels',), 'd'),
-             'Background_High': (('channels',), 'd'),
-             'LR_Input': (('channels',), 'i'),
-             'DAQ_Range': (('channels',), 'd'),
-             'First_Signal_Rangebin': (('channels',), 'i')
-             }
-        return channel_variables
--- a/atmospheric_lidar/adam2017_depol.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-from licel_depol import LicelCalibrationMeasurement
-import adam2017_depolarization_parameters
-
-class ADAM2017CalibrationMeasurement(LicelCalibrationMeasurement):
-    extra_netcdf_parameters = adam2017_depolarization_parameters
--- a/atmospheric_lidar/adam2017_depolarization_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-general_parameters =  \
-{'System': '\'ADAM May 2017\'',
- 'Call sign': 'is',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 45.8,
- 'Longitude_degrees_east': 8.6,
- 'Altitude_meter_asl': 209.0}  # This should be float
-
-# Change to channel_parameters to use all channels. For testing I define only photon counting channels below.
-channel_parameters = \
-{'00532.p_ph_p45': {'channel_ID': 929,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1201,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_p45': {'channel_ID': 931,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1201,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_m45': {'channel_ID': 928,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1201,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_m45': {'channel_ID': 930,
-         'Background_Low': 45000,
-         'Background_High': 60000,
-         'Laser_Shots': 1201,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 2000,
-         'Pol_Calib_Range_Max': 3000},
-         }
-         
-"""
-{'00532.p_an_p45': {'channel_ID': 383,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_p45': {'channel_ID': 378,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_an_p45': {'channel_ID': 385 ,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_p45': {'channel_ID': 380,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_an_m45': {'channel_ID': 384,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_m45': {'channel_ID': 379,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_an_m45': {'channel_ID': 386,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_m45': {'channel_ID': 382,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
-         }
-"""
--- a/atmospheric_lidar/adam2017_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-general_parameters =  \
-{'System': '\'ADAM May 2017\'',
- 'Call sign': 'is',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 45.8,
- 'Longitude_degrees_east': 8.6,
- 'Altitude_meter_asl': 209.0}  # This should be float
-
-channel_parameters = \
-{'01064.o_an': {'channel_ID': 917,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 500.0,
-         'First_Signal_Rangebin': 9},
- '00532.p_an': {'channel_ID': 918,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 500.0,
-         'First_Signal_Rangebin': 9},
-'00532.p_ph': {'channel_ID': 919,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
- '00532.s_an': {'channel_ID': 920,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 500.0,
-         'First_Signal_Rangebin': 9},
- '00532.s_ph': {'channel_ID': 921,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
- '00607.o_an': {'channel_ID': 922,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 500.0,
-         'First_Signal_Rangebin': 9},
- '00607.o_ph': {'channel_ID': 923,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'First_Signal_Rangebin': 0},
- '00355.o_an': {'channel_ID': 924,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 500.0,
-         'First_Signal_Rangebin': 8},
- '00355.o_ph': {'channel_ID': 925,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
- '00387.o_an': {'channel_ID': 926,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 500.0,
-         'First_Signal_Rangebin': 9},
- '00387.o_ph': {'channel_ID': 927,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
-}
-
--- a/atmospheric_lidar/adam2017_netcdf_parameters_2.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-general_parameters =  \
-{'System': '\'ADAM May 2017\'',
- 'Call sign': 'is',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 45.8,
- 'Longitude_degrees_east': 8.6,
- 'Altitude_meter_asl': 209.0}  # This should be float
-
-channel_parameters = \
-{'01064.o_an': {'channel_ID': 917,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'First_Signal_Rangebin': 9},
- '00532.p_an': {'channel_ID': 918,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'First_Signal_Rangebin': 9},
-'00532.p_ph': {'channel_ID': 919,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
- '00532.s_an': {'channel_ID': 920,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'First_Signal_Rangebin': 9},
- '00532.s_ph': {'channel_ID': 921,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
- '00607.o_an': {'channel_ID': 922,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'First_Signal_Rangebin': 9},
- '00607.o_ph': {'channel_ID': 923,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'First_Signal_Rangebin': 0},
- '00355.o_an': {'channel_ID': 924,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'First_Signal_Rangebin': 8},
- '00355.o_ph': {'channel_ID': 925,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
- '00387.o_an': {'channel_ID': 926,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'First_Signal_Rangebin': 9},
- '00387.o_ph': {'channel_ID': 927,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3001,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'First_Signal_Rangebin': 0},
-}
-
--- a/atmospheric_lidar/aias_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-general_parameters =  \
-{'System': '\'AIAS\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 36.992,
- 'Longitude_degrees_east': 21.649,
- 'Altitude_meter_asl': 3}
-
-channel_parameters = \
-{'00532.p_an': {'channel_ID': 327,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00532.p_ph': {'channel_ID': 328,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0.06,},
- '00532.s_an': {'channel_ID': 329,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00532.s_ph': {'channel_ID': 330,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0.06,},
-         }         
\ No newline at end of file
--- a/atmospheric_lidar/at_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-general_parameters =  \
-{'System': '\'LAMP Lidar\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 45.601039,
- 'Longitude_degrees_east': 03.723771,
- 'Altitude_meter_asl': 420}
-
-channel_parameters = \
-{'00387.o_ph': {'channel_ID': 316,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00355.p_ph': {'channel_ID': 315,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00355.s_an': {'channel_ID': 312,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0.17,},
- '00355.p_an': {'channel_ID': 314,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00355.s_ph': {'channel_ID': 313,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0.17,},
-         }
-
-#For testing. To be read from milos files.
-'''
-measurement_parameters = \
-{'Pressure_at_Lidar_Station': 930,
- 'Temperature_at_Lidar_Station': 15,
- 'Measurement_ID': '12345'}
-'''
-
-
--- a/atmospheric_lidar/cf_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-general_parameters =  \
-{'System': '\'LAMP Lidar\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 45.601039,
- 'Longitude_degrees_east': 03.723771,
- 'Altitude_meter_asl': 420}
-
-channel_parameters = \
-{'00387.o_ph': {'channel_ID': 316,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00355.p_ph': {'channel_ID': 315,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00355.s_an': {'channel_ID': 312,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0.17,},
- '00355.p_an': {'channel_ID': 314,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00355.s_ph': {'channel_ID': 313,
-         'Background_Low': 15000,
-         'Background_High': 20000,
-         'Laser_Shots': 600,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0.17,},
-         }
-
-#For testing. To be read from milos files.
-'''
-measurement_parameters = \
-{'Pressure_at_Lidar_Station': 930,
- 'Temperature_at_Lidar_Station': 15,
- 'Measurement_ID': '12345'}
-'''
-
-
--- a/atmospheric_lidar/cf_raymetrics.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-from licel import LicelLidarMeasurement
-
-import cf_netcdf_parameters
-
-class CfLidarMeasurement(LicelLidarMeasurement):
-    
-    extra_netcdf_parameters = cf_netcdf_parameters
--- a/atmospheric_lidar/ciao.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-import milos
-
-class CiaoMixin:
-
-    def get_PT(self):
-        ''' Gets the pressure and temperature at station level from the Milos station.
-        The results are stored in the info dictionary.        
-        '''
-        
-        start_time = self.info['start_time']
-        stop_time = self.info['stop_time']
-        dt = stop_time - start_time
-        mean_time = start_time + dt/2
-        
-        # this guarantees that more that half the measurement period is taken into account
-        atm = milos.Atmospheric_condition(mean_time)
-        temperature = atm.get_mean('Air_Temperature', start_time, stop_time)
-        pressure = atm.get_mean('Air_Pressure', start_time, stop_time)
-        self.info['Temperature'] = temperature
-        self.info['Pressure'] = pressure
--- a/atmospheric_lidar/eole.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-from licel import LicelLidarMeasurement
-import eole_netcdf_parameters
-
-
-class EoleLidarMeasurement(LicelLidarMeasurement):
-    extra_netcdf_parameters = eole_netcdf_parameters
-
-    def get_PT(self):
-        ''' Sets the pressure and temperature at station level .
-        The results are stored in the info dictionary.        
-        '''
-    
-        self.info['Temperature'] = 25.0
-        self.info['Pressure'] = 1020.0
-    
-           
-    #def save_netcdf_extra(self, f):
-    #    CHARMEX CLOUD MIN ALTITUDE 
-    #    temp_v=f.createVariable('max_altitude_m_asl', 'd', ('time', 'nb_of_time_scales'))
--- a/atmospheric_lidar/eole_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-general_parameters =  \
-{'System': '\'EOLE\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 37.96,
- 'Longitude_degrees_east': 23.78,
- 'Altitude_meter_asl': 212.0}
-
-channel_parameters = \
-{'01064.o_an': {'channel_ID': 45,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00355.o_an': {'channel_ID': 41,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00355.o_ph': {'channel_ID': 42,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00387.o_ph': {'channel_ID': 46,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00532.o_an': {'channel_ID': 43,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00532.o_ph': {'channel_ID': 44,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00607.o_ph': {'channel_ID': 47,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00407.o_ph': {'channel_ID': 444,
-         'Background_Low': 19000,
-         'Background_High': 20000,
-         'Laser_Shots': 1000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
-         }
-          
--- a/atmospheric_lidar/generic.py	Wed Dec 06 11:50:30 2017 +0200
+++ b/atmospheric_lidar/generic.py	Wed Dec 06 11:50:41 2017 +0200
@@ -53,8 +53,8 @@
         
         Reading of the scan_angles parameter is not implemented.
         '''
+        # Initialize
 
-        # Initialize
         start_time = []
         stop_time = []
         points = []
@@ -136,7 +136,11 @@
         m = self.__class__()  # Create an object of the same type as this one.
         m.channels = dict([(channel, self.channels[channel]) for channel
                            in channel_subset])
+                           
+        m.files = self.files
+        
         m.update()
+        
         return m
 
     def subset_by_scc_channels(self):
@@ -304,6 +308,11 @@
         input_values['Latitude_degrees_north'] = params.general_parameters['Latitude_degrees_north']
         input_values['Longitude_degrees_east'] = params.general_parameters['Longitude_degrees_east']
         input_values['Altitude_meter_asl'] = params.general_parameters['Altitude_meter_asl']
+        
+        # Override general paremeters with those provided by any subclass
+        # in a custom fashion
+        for param in self.getCustomGeneralParameters():
+            input_values[ param["name"] ] = param["value"]
 
         # Open a netCDF4 file
         f = netcdf.Dataset(filename, 'w', format=netcdf_format)  # the format is specified in the begining of the file
@@ -336,7 +345,7 @@
             temp_v[n] = params.channel_parameters[channel][channel_var]
             
         # Write the custom subclass parameters:
-        for param in self.getCustomParameters():
+        for param in self.getCustomChannelParameters():
             temp_v = f.createVariable(param["name"], param["type"], param["dimensions"])
             
             for (value, n) in zip(param["values"], range(len(param["values"]))):
@@ -514,14 +523,23 @@
     def get_dark_measurements(self):
         return None
         
-    def getCustomParameters(self):
+    def getCustomGeneralParameters(self):
         """
         Abstract method to provide custom NetCDF parameters
         that should be included in the final NetCDF file.
         This method should be implemented by subclasses of
         BaseLidarMeasurement.
         """
-        pass
+        return []
+        
+    def getCustomChannelParameters(self):
+        """
+        Abstract method to provide custom NetCDF parameters
+        for the channels in this measurement that should be
+        included in the final NetCDF file. This method should
+        be implemented by subclasses of BaseLidarMeasurement.
+        """
+        return []
 
     @property
     def mean_time(self):
--- a/atmospheric_lidar/ipral.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-from licel import LicelLidarMeasurement
-import ipral_netcdf_parameters
-
-
-class IpralLidarMeasurement(LicelLidarMeasurement):
-    extra_netcdf_parameters = ipral_netcdf_parameters
-
-    def __init__(self, filelist=None, use_id_as_name=True):
-        super(IpralLidarMeasurement, self).__init__(filelist, use_id_as_name)
-
-    def get_PT(self):
-        ''' Sets the pressure and temperature at station level .
-        The results are stored in the info dictionary.        
-        '''
-    
-        self.info['Temperature'] = 25.0
-        self.info['Pressure'] = 1020.0
\ No newline at end of file
--- a/atmospheric_lidar/ipral_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-# INSERT HERE THE SYSTEM PARAMETERS
-general_parameters = \
-    {'System': '\'IPRAL\'',
-     'Laser_Pointing_Angle': 0,
-     'Molecular_Calc': 0,  # Use US standard atmosphere
-     'Latitude_degrees_north': 50.63,
-     'Longitude_degrees_east': 3.07,
-     'Altitude_meter_asl': 0.4,
-     'Call sign': 'mb',}
-
-# LINK YOUR LICEL CHANNELS TO SCC PARAMETERS. USE BT0, BC0 ETC AS NAMES (AS IN LICEL FILES).
-channel_parameters = \
-    {'BT0': {'channel_ID': 41,
-             'Background_Low': 19000,
-             'Background_High': 20000,
-             'Laser_Shots': 1000,
-             'LR_Input': 1,
-             'DAQ_Range': 500.0,},
-     'BC0': {'channel_ID': 42,
-             'Background_Low': 19000,
-             'Background_High': 20000,
-             'Laser_Shots': 1000,
-             'LR_Input': 1,
-             'DAQ_Range': 0,},
-     'BT1': {'channel_ID': 41,
-             'Background_Low': 19000,
-             'Background_High': 20000,
-             'Laser_Shots': 1000,
-             'LR_Input': 1,
-             'DAQ_Range': 500.0,},
-     'BC1': {'channel_ID': 42,
-             'Background_Low': 19000,
-             'Background_High': 20000,
-             'Laser_Shots': 1000,
-             'LR_Input': 1,
-             'DAQ_Range': 0,},
-     }
--- a/atmospheric_lidar/licel.py	Wed Dec 06 11:50:30 2017 +0200
+++ b/atmospheric_lidar/licel.py	Wed Dec 06 11:50:41 2017 +0200
@@ -3,8 +3,9 @@
 
 import numpy as np
 
-import musa_2009_netcdf_parameters
-import musa_netcdf_parameters
+from .systems.musa import musa_2009_netcdf_parameters
+from .systems.musa import musa_netcdf_parameters
+
 from generic import BaseLidarMeasurement, LidarChannel
 
 licel_file_header_format = ['Filename',
@@ -195,7 +196,6 @@
     raw_info = {}  # Keep the raw info from the files
     durations = {}  # Keep the duration of the files
     laser_shots = []
-    files = []
 
     def __init__(self, filelist=None, use_id_as_name=False):
         self.use_id_as_name = use_id_as_name
@@ -242,7 +242,7 @@
 
         return duration_sec
         
-    def getCustomParameters(self):
+    def getCustomChannelParameters(self):
         params = [{
                 "name": "DAQ_Range",
                 "dimensions": ('channels',),
@@ -262,6 +262,21 @@
         ]
         
         return params
+        
+    def getCustomGeneralParameters(self):
+        params = [{
+                "name": "Altitude_meter_asl",
+                "value": self.raw_info[ self.files[0] ]["Altitude"]
+            }, {
+                "name": "Latitude_degrees_north",
+                "value": self.raw_info[ self.files[0] ]["Latitude"]
+            }, {
+                "name": "Longitude_degrees_east",
+                "value": self.raw_info[ self.files[0] ]["Longtitude"]
+            },
+        ]
+
+        return params
 
 
 class LicelChannel(LidarChannel):
--- a/atmospheric_lidar/lilas.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-from licel import LicelLidarMeasurement
-import lilas_netcdf_parameters
-
-
-class LilasLidarMeasurement(LicelLidarMeasurement):
-    extra_netcdf_parameters = lilas_netcdf_parameters
-
-    def get_PT(self):
-        ''' Sets the pressure and temperature at station level .
-        The results are stored in the info dictionary.        
-        '''
-    
-        self.info['Temperature'] = 25.0
-        self.info['Pressure'] = 1020.0
\ No newline at end of file
--- a/atmospheric_lidar/lilas_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-general_parameters = \
-    {'System': '\'Lilas\'',
-     'Laser_Pointing_Angle': 0,
-     'Molecular_Calc': 0,  # Use US standard atmosphere
-     'Latitude_degrees_north': 50.63,
-     'Longitude_degrees_east': 3.07,
-     'Altitude_meter_asl': 0.4,
-     'Call sign': 'mb',}
-
-channel_parameters = \
-    {'00355.p_an': {'channel_ID': 41,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0,},
-     '00355.p_ph': {'channel_ID': 42,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0,},
-     '00355.s_an': {'channel_ID': 41,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0.88,},
-     '00355.s_ph': {'channel_ID': 42,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0.88},
-     '00530.o_an': {'channel_ID': 43,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0,},
-     '00530.o_ph': {'channel_ID': 44,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0,},
-     '00532.p_an': {'channel_ID': 43,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0,},
-     '00532.p_ph': {'channel_ID': 44,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0,},
-     '00532.s_an': {'channel_ID': 43,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0.77,},
-     '00532.s_ph': {'channel_ID': 44,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0.77,},
-     '01064.o_an': {'channel_ID': 45,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0,},
-     '00387.o_an': {'channel_ID': 45,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 500.0,
-                    'Depolarization_Factor': 0,},
-     '00387.o_ph': {'channel_ID': 46,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0,},
-     '00408.o_ph': {'channel_ID': 444,
-                    'Background_Low': 19000,
-                    'Background_High': 20000,
-                    'Laser_Shots': 1000,
-                    'LR_Input': 1,
-                    'DAQ_Range': 0,
-                    'Depolarization_Factor': 0,},
-     }
--- a/atmospheric_lidar/musa.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-from licel import LicelLidarMeasurement
-from ciao import CiaoMixin
-
-class MusaLidarMeasurement(CiaoMixin, LicelLidarMeasurement):
-    pass
--- a/atmospheric_lidar/musa_2009_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-general_parameters =  \
-{'System': '\'MUSA\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 40.601039,
- 'Longitude_degrees_east': 15.723771,
- 'Altitude_meter_asl': 760.0} # This should be float
-
-channel_parameters = \
-{'01064.o_an': {'channel_ID': 203,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '00355.o_an': {'channel_ID': 193,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'Depolarization_Factor': 0,},
- '00355.o_ph': {'channel_ID': 194,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00387.o_an': {'channel_ID': 195,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':20.0,
-         'Depolarization_Factor': 0,},
- '00387.o_ph': {'channel_ID': 196,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00532.p_an': {'channel_ID': 197,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'Depolarization_Factor': 0,},
- '00532.p_ph': {'channel_ID': 198,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '00532.s_an': {'channel_ID': 199,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'Depolarization_Factor': 0.0441,},
- '00532.s_ph': {'channel_ID': 200,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0.0441,},
- '00607.o_an': {'channel_ID': 201,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':20.0,
-         'Depolarization_Factor': 0,},
- '00607.o_ph': {'channel_ID': 202,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
-         }
-
-#For testing. To be read from milos files.
-'''
-measurement_parameters = \
-{'Pressure_at_Lidar_Station': 930,
- 'Temperature_at_Lidar_Station': 15,
- 'Measurement_ID': '12345'}
-'''
-
-
--- a/atmospheric_lidar/musa_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-general_parameters =  \
-{'System': '\'MUSA\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 40.601039,
- 'Longitude_degrees_east': 15.723771,
- 'Altitude_meter_asl': 760.0} # This should be float
-
-channel_parameters = \
-{'1064.o_an': {'channel_ID': 203,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':500.0,
-         'Depolarization_Factor': 0,},
- '355.o_an': {'channel_ID': 193,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'Depolarization_Factor': 0,},
- '355.o_ph': {'channel_ID': 194,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '387.o_an': {'channel_ID': 195,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':20.0,
-         'Depolarization_Factor': 0,},
- '387.o_ph': {'channel_ID': 196,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '532.p_an': {'channel_ID': 197,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'Depolarization_Factor': 0,},
- '532.p_ph': {'channel_ID': 198,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '532.s_an': {'channel_ID': 199,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':100.0,
-         'Depolarization_Factor': 0.0441,},
- '532.s_ph': {'channel_ID': 200,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0.0441,},
- '607.o_an': {'channel_ID': 201,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':20.0,
-         'Depolarization_Factor': 0,},
- '607.o_ph': {'channel_ID': 202,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1200,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
-         }
-
-#For testing. To be read from milos files.
-'''
-measurement_parameters = \
-{'Pressure_at_Lidar_Station': 930,
- 'Temperature_at_Lidar_Station': 15,
- 'Measurement_ID': '12345'}
-'''
-
-
--- a/atmospheric_lidar/pearl.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-import datetime
-import os
-import glob
-
-import numpy as np
-
-from generic import BaseLidarMeasurement, LidarChannel
-from ciao import CiaoMixin
-
-import pearl_netcdf_parameters
-from report_file import Report_file
-
-
-repository = '/mnt/storage/lidar_data/pearl/'
-
-
-class PearlLidarMeasurement(CiaoMixin, BaseLidarMeasurement):
-    
-    extra_netcdf_parameters = pearl_netcdf_parameters
-    
-    def import_file(self,filename):
-        ''' Import a pearl file. '''
-        
-        if filename in self.files:
-            print "File has been imported already:" + filename
-        else:
-            parameters, channels_dict = self.read_pearl_data(filename)
-            start_time = self._gettime(parameters['Acq_date'],parameters['Acq_start_time'])
-            
-            for channel_info in channels_dict.itervalues():
-                
-                if channel_info['name'] == '1064ALR':
-                    name = '1064'
-                    tm = start_time
-                elif channel_info['name'] == '1064BLR':
-                    name = '1064'
-                    tm = start_time + datetime.timedelta(seconds = 30)
-                else:
-                    name = channel_info['name']
-                    tm = start_time
-                if name not in self.channels:
-                    self.channels[name] = LidarChannel(channel_info)
-                self.channels[name].data[tm] = channel_info['data']
-            self.files.append(filename)
-    
-    def read_pearl_data(self, filename):
-        '''
-        Reads a pearl file.
-        
-        Returns:
-        parameters - a dictionary of general parameters
-        channels   - a dictionary with keys the channel number and values lists
-                     [channel name, channel bin width, channel data].
-        '''
-        f = open(filename,'r') # Open the file
-        s = f.read(26) # Read the first 26 bytes
-        
-        #Get the values in a dictionary
-        parameters = {}
-        parameters['Acq_date'] = s[0:10] # First 10 bytes are the acquisition date.
-        parameters['Acq_start_time'] = s[10:20].strip() # Next 10 bytes are start time. Strip from trailing spaces.
-        parameters['Channel_no'] = np.fromstring(s[20:22], dtype = np.int16) # Next 2 bytes are the number of channels. Short integer.
-        parameters['Point_no'] = np.fromstring(s[22:26], dtype = np.int32) # Next 4 bytes are the number of points. Integer.
-        p = parameters # Just for less typing
-        
-        # Read the channel parameters
-        len = 20*p['Channel_no']    
-        s = f.read(len)
-        channels = {}
-        for (c1,n) in zip(range(0,len, 20),range(p['Channel_no'])):
-            channels[str(n)] = {'name' : s[c1+10:c1+20].strip(),
-                                'binwidth' : s[c1:c1+10].strip()}
-        
-        #Read the data
-        data = np.fromfile(f,dtype = np.float32)
-        #print filename + ': ' + str(data.size) +',' + str(p['Point_no']) +str(p['Channel_no'])
-        data = data.reshape(p['Point_no'],p['Channel_no'])
-        for ch in channels.iterkeys():
-            channels[ch]['data'] = data[:,int(ch)]
-        #Close the file
-        f.close()
-        return parameters,channels
-                
-
-def get_measurement_for_interval(start_time, stop_time):
-    ''' Searches for a pearl measurement based on a time interval     
-    '''
-    
-    correct_series = None
-    day = datetime.timedelta(hours = 24)
-    
-    if start_time > stop_time:
-            raise ValueError('Stop time should be after start time')
-    
-    
-    
-    #The list of directories based on the given time. Same, previous, Next day
-    possible_paths = [get_path(t) for t in [start_time - day, start_time, start_time + day] 
-                            if get_path(t) is not None]
-    for path in possible_paths:
-        try:
-            rf = Report_file(path)
-        except:
-            rf = None
-        
-        if rf is not None:
-            for serie in rf.series:
-                if (start_time > serie.starttime) and (stop_time < serie.endtime):
-                    correct_series = serie
-    
-    if correct_series:
-        files = correct_series.files.get('apd', []) + correct_series.files.get('mcb', [])
-        m_series = PearlLidarMeasurement(files)
-        m_subset = m_series.subset_by_time(start_time, stop_time)
-        return m_subset
-    else:
-        return None
-
-
-def get_channel(tim, channel = '1064'):
-    if channel =='1064':
-        extension = '*.apd'
-    else:
-        extension = '*.mcb'
-    
-    dirstr = get_path(tim)
-    
-    if not os.path.isdir(dirstr):
-        raise IOError('No measurement for that date (directory does not exist.).')
-        #No measurement for that date (directory does not exist.).
-    files = glob.glob(dirstr + extension)
-    m = PearlLidarMeasurement(files)
-    c = m.channels[channel]
-    return c
-    
-
-def get_path(tim):
-    dirstr = repository +  tim.strftime('%Y')+ '/' +tim.strftime('%d%m%Y') + '/'
-    return dirstr
--- a/atmospheric_lidar/pearl_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-general_parameters =  \
-{'System': '\'PEARL\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 40.601039,
- 'Longitude_degrees_east': 15.723771,
- 'Altitude_meter_asl': 760.0} # This should be float
-
-channel_parameters = \
-{'355HR': {'channel_ID': 8,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '355LR': {'channel_ID': 14,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '386HR': {'channel_ID': 9,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '386LR': {'channel_ID': 15,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '407HR': {'channel_ID': 17,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '532HR': {'channel_ID': 7,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '532LR': {'channel_ID': 13,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '532SHR': {'channel_ID': 12,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '532PHR': {'channel_ID': 11,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '607HR': {'channel_ID': 10,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':0,
-         'Depolarization_Factor': 0,},
- '1064': {'channel_ID': 6,
-         'Background_Low': 30000,
-         'Background_High': 50000,
-         'Laser_Shots': 1500,
-         'LR_Input':1,
-         'DAQ_Range':100,
-         'Depolarization_Factor': 0,},
-        
-         }
-
-#For testing. To be read from milos files.
-'''
-measurement_parameters = \
-{'Pressure_at_Lidar_Station': 930,
- 'Temperature_at_Lidar_Station': 15,
- 'Measurement_ID': '12345'}
-'''
-
-
--- a/atmospheric_lidar/rali.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-import radiometer
-
-from licel import LicelLidarMeasurement
-
-import rali_netcdf_parameters
-
-class RaliLidarMeasurement(LicelLidarMeasurement):
-    extra_netcdf_parameters = rali_netcdf_parameters
-    
-    def get_PT(self):
-        ''' Gets the pressure and temperature from Radiometer data.
-        If no data file is found, mean values from past measurements are 
-        used.
-        '''
-        
-        start_time = self.info['start_time']
-        stop_time = self.info['stop_time']
-        dt = stop_time - start_time
-        mean_time = start_time + dt/2
-        
-        meteo_triplet = radiometer.get_mean_PT(mean_time)
-        
-        if meteo_triplet:
-            pressure, temperature, humidity = meteo_triplet
-        else:
-            print "Radiometer meteo data not available. Using past values."
-            pressure = radiometer.P_mean[mean_time.month - 1, mean_time.hour]
-            temperature = radiometer.T_mean[mean_time.month - 1, mean_time.hour]
-            
-        self.info['Temperature'] = temperature - 273.15
-        self.info['Pressure'] = pressure
-
-
--- a/atmospheric_lidar/rali_depol.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-from licel_depol import LicelCalibrationMeasurement
-import rali_depolarization_parameters
-
-class RALICalibrationMeasurement(LicelCalibrationMeasurement):
-    extra_netcdf_parameters = rali_depolarization_parameters
--- a/atmospheric_lidar/rali_depolarization_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-general_parameters =  \
-{'System': '\'RALI\'',
- 'Call sign': 'bu',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 44.348,
- 'Longitude_degrees_east': 26.029,
- 'Altitude_meter_asl': 93.0}  # This should be float
-
-# Change to channel_parameters to use all channels. For testing I define only photon counting channels below.
-channel_parameters = \
-{ '00532.p_an_p45': {'channel_ID': 383,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_p45': {'channel_ID': 378,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_an_p45': {'channel_ID': 385 ,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_p45': {'channel_ID': 380,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_an_m45': {'channel_ID': 384,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.p_ph_m45': {'channel_ID': 379,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_an_m45': {'channel_ID': 386,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
- '00532.s_ph_m45': {'channel_ID': 382,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Pol_Calib_Range_Min': 1000,
-         'Pol_Calib_Range_Max': 3000},
-         }
\ No newline at end of file
--- a/atmospheric_lidar/rali_netcdf_parameters.py	Wed Dec 06 11:50:30 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-general_parameters =  \
-{'System': '\'RALI\'',
- 'Laser_Pointing_Angle': 0,
- 'Molecular_Calc': 0,
- 'Latitude_degrees_north': 44.348,
- 'Longitude_degrees_east': 26.029,
- 'Altitude_meter_asl': 93.0,
- 'Call sign': 'bu', } # This should be float
-
-channel_parameters = \
-{'01064.o_an': {'channel_ID': 89,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,},
- '00355.o_an': {'channel_ID': 98,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,},
- '00355.o_ph': {'channel_ID': 99,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,
-         'Depolarization_Factor': 0,},
- '00387.o_an': {'channel_ID': 90,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,},
- '00387.o_ph': {'channel_ID': 91,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,},
- '00532.p_an': {'channel_ID': 94,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 100.0,},
- '00532.p_ph': {'channel_ID': 95,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,},
- '00532.s_an': {'channel_ID': 96,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,},
- '00532.s_ph': {'channel_ID': 97,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,},
- '00607.o_an': {'channel_ID': 92,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 20.0,},
- '00607.o_ph': {'channel_ID': 93,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input':1,
-         'DAQ_Range':20.0,},
- '00408.o_ph': {'channel_ID': 170,
-         'Background_Low': 50000,
-         'Background_High': 60000,
-         'Laser_Shots': 3000,
-         'LR_Input': 1,
-         'DAQ_Range': 0,},
-         }
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2016/adam2016_depol.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,5 @@
+from ...licel_depol import LicelCalibrationMeasurement
+import adam2016_depolarization_parameters
+
+class ADAM2017CalibrationMeasurement(LicelCalibrationMeasurement):
+    extra_netcdf_parameters = adam2016_depolarization_parameters
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2016/adam2016_depolarization_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,116 @@
+general_parameters =  \
+{'System': '\'ADAM 2012-2017\'',
+ 'Call sign': 'is',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 45.8,
+ 'Longitude_degrees_east': 8.6,
+ 'Altitude_meter_asl': 209.0}  # This should be float
+
+# Change to channel_parameters to use all channels. For testing I define only photon counting channels below.
+channel_parameters = \
+{'BC1_p45': {'channel_ID': 647,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1501,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2500,
+         'Pol_Calib_Range_Max': 4000},
+ 'BC2_p45': {'channel_ID': 649,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1501,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2500,
+         'Pol_Calib_Range_Max': 4000},
+ 'BC1_m45': {'channel_ID': 646,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1501,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2500,
+         'Pol_Calib_Range_Max': 4000},
+ 'BC2_m45': {'channel_ID': 648,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1501,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2500,
+         'Pol_Calib_Range_Max': 4000},
+         }
+         
+"""
+{'00532.p_an_p45': {'channel_ID': 383,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_p45': {'channel_ID': 378,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_an_p45': {'channel_ID': 385 ,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_p45': {'channel_ID': 380,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_an_m45': {'channel_ID': 384,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_m45': {'channel_ID': 379,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_an_m45': {'channel_ID': 386,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_m45': {'channel_ID': 382,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+         }
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2017/adam2017.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,16 @@
+from ...licel import LicelLidarMeasurement
+
+import adam2017_netcdf_parameters
+
+class ADAM2017LidarMeasurement(LicelLidarMeasurement):
+    extra_netcdf_parameters = adam2017_netcdf_parameters
+
+    def _get_scc_mandatory_channel_variables(self):
+        channel_variables = \
+            {'Background_Low': (('channels',), 'd'),
+             'Background_High': (('channels',), 'd'),
+             'LR_Input': (('channels',), 'i'),
+             'DAQ_Range': (('channels',), 'd'),
+             'First_Signal_Rangebin': (('channels',), 'i')
+             }
+        return channel_variables
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2017/adam2017_depol.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,5 @@
+from ...licel_depol import LicelCalibrationMeasurement
+import adam2017_depolarization_parameters
+
+class ADAM2017CalibrationMeasurement(LicelCalibrationMeasurement):
+    extra_netcdf_parameters = adam2017_depolarization_parameters
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2017/adam2017_depolarization_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,116 @@
+general_parameters =  \
+{'System': '\'ADAM May 2017\'',
+ 'Call sign': 'is',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 45.8,
+ 'Longitude_degrees_east': 8.6,
+ 'Altitude_meter_asl': 209.0}  # This should be float
+
+# Change to channel_parameters to use all channels. For testing I define only photon counting channels below.
+channel_parameters = \
+{'00532.p_ph_p45': {'channel_ID': 929,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1201,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_p45': {'channel_ID': 931,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1201,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_m45': {'channel_ID': 928,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1201,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_m45': {'channel_ID': 930,
+         'Background_Low': 45000,
+         'Background_High': 60000,
+         'Laser_Shots': 1201,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 2000,
+         'Pol_Calib_Range_Max': 3000},
+         }
+         
+"""
+{'00532.p_an_p45': {'channel_ID': 383,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_p45': {'channel_ID': 378,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_an_p45': {'channel_ID': 385 ,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_p45': {'channel_ID': 380,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_an_m45': {'channel_ID': 384,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_m45': {'channel_ID': 379,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_an_m45': {'channel_ID': 386,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_m45': {'channel_ID': 382,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+         }
+"""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2017/adam2017_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,89 @@
+general_parameters =  \
+{'System': '\'ADAM May 2017\'',
+ 'Call sign': 'is',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 45.8,
+ 'Longitude_degrees_east': 8.6,
+ 'Altitude_meter_asl': 209.0}  # This should be float
+
+channel_parameters = \
+{'01064.o_an': {'channel_ID': 917,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 500.0,
+         'First_Signal_Rangebin': 9},
+ '00532.p_an': {'channel_ID': 918,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 500.0,
+         'First_Signal_Rangebin': 9},
+'00532.p_ph': {'channel_ID': 919,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+ '00532.s_an': {'channel_ID': 920,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 500.0,
+         'First_Signal_Rangebin': 9},
+ '00532.s_ph': {'channel_ID': 921,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+ '00607.o_an': {'channel_ID': 922,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 500.0,
+         'First_Signal_Rangebin': 9},
+ '00607.o_ph': {'channel_ID': 923,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'First_Signal_Rangebin': 0},
+ '00355.o_an': {'channel_ID': 924,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 500.0,
+         'First_Signal_Rangebin': 8},
+ '00355.o_ph': {'channel_ID': 925,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+ '00387.o_an': {'channel_ID': 926,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 500.0,
+         'First_Signal_Rangebin': 9},
+ '00387.o_ph': {'channel_ID': 927,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/adam2017/adam2017_netcdf_parameters_2.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,89 @@
+general_parameters =  \
+{'System': '\'ADAM May 2017\'',
+ 'Call sign': 'is',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 45.8,
+ 'Longitude_degrees_east': 8.6,
+ 'Altitude_meter_asl': 209.0}  # This should be float
+
+channel_parameters = \
+{'01064.o_an': {'channel_ID': 917,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'First_Signal_Rangebin': 9},
+ '00532.p_an': {'channel_ID': 918,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'First_Signal_Rangebin': 9},
+'00532.p_ph': {'channel_ID': 919,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+ '00532.s_an': {'channel_ID': 920,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'First_Signal_Rangebin': 9},
+ '00532.s_ph': {'channel_ID': 921,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+ '00607.o_an': {'channel_ID': 922,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'First_Signal_Rangebin': 9},
+ '00607.o_ph': {'channel_ID': 923,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'First_Signal_Rangebin': 0},
+ '00355.o_an': {'channel_ID': 924,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'First_Signal_Rangebin': 8},
+ '00355.o_ph': {'channel_ID': 925,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+ '00387.o_an': {'channel_ID': 926,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'First_Signal_Rangebin': 9},
+ '00387.o_ph': {'channel_ID': 927,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3001,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'First_Signal_Rangebin': 0},
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/aias/aias_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,38 @@
+general_parameters =  \
+{'System': '\'AIAS\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 36.992,
+ 'Longitude_degrees_east': 21.649,
+ 'Altitude_meter_asl': 3}
+
+channel_parameters = \
+{'00532.p_an': {'channel_ID': 327,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00532.p_ph': {'channel_ID': 328,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0.06,},
+ '00532.s_an': {'channel_ID': 329,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00532.s_ph': {'channel_ID': 330,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0.06,},
+         }         
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/ciao.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,20 @@
+import milos
+
+class CiaoMixin:
+
+    def get_PT(self):
+        ''' Gets the pressure and temperature at station level from the Milos station.
+        The results are stored in the info dictionary.        
+        '''
+        
+        start_time = self.info['start_time']
+        stop_time = self.info['stop_time']
+        dt = stop_time - start_time
+        mean_time = start_time + dt/2
+        
+        # this guarantees that more that half the measurement period is taken into account
+        atm = milos.Atmospheric_condition(mean_time)
+        temperature = atm.get_mean('Air_Temperature', start_time, stop_time)
+        pressure = atm.get_mean('Air_Pressure', start_time, stop_time)
+        self.info['Temperature'] = temperature
+        self.info['Pressure'] = pressure
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/eole/eole.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,19 @@
+from ...licel import LicelLidarMeasurement
+import eole_netcdf_parameters
+
+
+class EoleLidarMeasurement(LicelLidarMeasurement):
+    extra_netcdf_parameters = eole_netcdf_parameters
+
+    def get_PT(self):
+        ''' Sets the pressure and temperature at station level .
+        The results are stored in the info dictionary.        
+        '''
+    
+        self.info['Temperature'] = 25.0
+        self.info['Pressure'] = 1020.0
+    
+           
+    #def save_netcdf_extra(self, f):
+    #    CHARMEX CLOUD MIN ALTITUDE 
+    #    temp_v=f.createVariable('max_altitude_m_asl', 'd', ('time', 'nb_of_time_scales'))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/eole/eole_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,67 @@
+general_parameters =  \
+{'System': '\'EOLE\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 37.96,
+ 'Longitude_degrees_east': 23.78,
+ 'Altitude_meter_asl': 212.0}
+
+channel_parameters = \
+{'01064.o_an': {'channel_ID': 45,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00355.o_an': {'channel_ID': 41,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00355.o_ph': {'channel_ID': 42,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00387.o_ph': {'channel_ID': 46,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00532.o_an': {'channel_ID': 43,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00532.o_ph': {'channel_ID': 44,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00607.o_ph': {'channel_ID': 47,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00407.o_ph': {'channel_ID': 444,
+         'Background_Low': 19000,
+         'Background_High': 20000,
+         'Laser_Shots': 1000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+         }
+          
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/ipral/ipral.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,17 @@
+from ...licel import LicelLidarMeasurement
+import ipral_netcdf_parameters
+
+
+class IpralLidarMeasurement(LicelLidarMeasurement):
+    extra_netcdf_parameters = ipral_netcdf_parameters
+
+    def __init__(self, filelist=None, use_id_as_name=True):
+        super(IpralLidarMeasurement, self).__init__(filelist, use_id_as_name)
+
+    def get_PT(self):
+        ''' Sets the pressure and temperature at station level .
+        The results are stored in the info dictionary.        
+        '''
+    
+        self.info['Temperature'] = 25.0
+        self.info['Pressure'] = 1020.0
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/ipral/ipral_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,37 @@
+# INSERT HERE THE SYSTEM PARAMETERS
+general_parameters = \
+    {'System': '\'IPRAL\'',
+     'Laser_Pointing_Angle': 0,
+     'Molecular_Calc': 0,  # Use US standard atmosphere
+     'Latitude_degrees_north': 50.63,
+     'Longitude_degrees_east': 3.07,
+     'Altitude_meter_asl': 0.4,
+     'Call sign': 'mb',}
+
+# LINK YOUR LICEL CHANNELS TO SCC PARAMETERS. USE BT0, BC0 ETC AS NAMES (AS IN LICEL FILES).
+channel_parameters = \
+    {'BT0': {'channel_ID': 41,
+             'Background_Low': 19000,
+             'Background_High': 20000,
+             'Laser_Shots': 1000,
+             'LR_Input': 1,
+             'DAQ_Range': 500.0,},
+     'BC0': {'channel_ID': 42,
+             'Background_Low': 19000,
+             'Background_High': 20000,
+             'Laser_Shots': 1000,
+             'LR_Input': 1,
+             'DAQ_Range': 0,},
+     'BT1': {'channel_ID': 41,
+             'Background_Low': 19000,
+             'Background_High': 20000,
+             'Laser_Shots': 1000,
+             'LR_Input': 1,
+             'DAQ_Range': 500.0,},
+     'BC1': {'channel_ID': 42,
+             'Background_Low': 19000,
+             'Background_High': 20000,
+             'Laser_Shots': 1000,
+             'LR_Input': 1,
+             'DAQ_Range': 0,},
+     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/lamp_lidar/at_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,55 @@
+general_parameters =  \
+{'System': '\'LAMP Lidar\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 45.601039,
+ 'Longitude_degrees_east': 03.723771,
+ 'Altitude_meter_asl': 420}
+
+channel_parameters = \
+{'00387.o_ph': {'channel_ID': 316,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00355.p_ph': {'channel_ID': 315,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00355.s_an': {'channel_ID': 312,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0.17,},
+ '00355.p_an': {'channel_ID': 314,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00355.s_ph': {'channel_ID': 313,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0.17,},
+         }
+
+#For testing. To be read from milos files.
+'''
+measurement_parameters = \
+{'Pressure_at_Lidar_Station': 930,
+ 'Temperature_at_Lidar_Station': 15,
+ 'Measurement_ID': '12345'}
+'''
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/lamp_lidar/cf_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,55 @@
+general_parameters =  \
+{'System': '\'LAMP Lidar\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 45.601039,
+ 'Longitude_degrees_east': 03.723771,
+ 'Altitude_meter_asl': 420}
+
+channel_parameters = \
+{'00387.o_ph': {'channel_ID': 316,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00355.p_ph': {'channel_ID': 315,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00355.s_an': {'channel_ID': 312,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0.17,},
+ '00355.p_an': {'channel_ID': 314,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00355.s_ph': {'channel_ID': 313,
+         'Background_Low': 15000,
+         'Background_High': 20000,
+         'Laser_Shots': 600,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0.17,},
+         }
+
+#For testing. To be read from milos files.
+'''
+measurement_parameters = \
+{'Pressure_at_Lidar_Station': 930,
+ 'Temperature_at_Lidar_Station': 15,
+ 'Measurement_ID': '12345'}
+'''
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/lamp_lidar/cf_raymetrics.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,7 @@
+from ...licel import LicelLidarMeasurement
+
+import cf_netcdf_parameters
+
+class CfLidarMeasurement(LicelLidarMeasurement):
+    
+    extra_netcdf_parameters = cf_netcdf_parameters
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/lilas/lilas.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,14 @@
+from ...licel import LicelLidarMeasurement
+import lilas_netcdf_parameters
+
+
+class LilasLidarMeasurement(LicelLidarMeasurement):
+    extra_netcdf_parameters = lilas_netcdf_parameters
+
+    def get_PT(self):
+        ''' Sets the pressure and temperature at station level .
+        The results are stored in the info dictionary.        
+        '''
+    
+        self.info['Temperature'] = 25.0
+        self.info['Pressure'] = 1020.0
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/lilas/lilas_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,109 @@
+general_parameters = \
+    {'System': '\'Lilas\'',
+     'Laser_Pointing_Angle': 0,
+     'Molecular_Calc': 0,  # Use US standard atmosphere
+     'Latitude_degrees_north': 50.63,
+     'Longitude_degrees_east': 3.07,
+     'Altitude_meter_asl': 0.4,
+     'Call sign': 'mb',}
+
+channel_parameters = \
+    {'00355.p_an': {'channel_ID': 41,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0,},
+     '00355.p_ph': {'channel_ID': 42,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0,},
+     '00355.s_an': {'channel_ID': 41,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0.88,},
+     '00355.s_ph': {'channel_ID': 42,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0.88},
+     '00530.o_an': {'channel_ID': 43,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0,},
+     '00530.o_ph': {'channel_ID': 44,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0,},
+     '00532.p_an': {'channel_ID': 43,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0,},
+     '00532.p_ph': {'channel_ID': 44,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0,},
+     '00532.s_an': {'channel_ID': 43,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0.77,},
+     '00532.s_ph': {'channel_ID': 44,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0.77,},
+     '01064.o_an': {'channel_ID': 45,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0,},
+     '00387.o_an': {'channel_ID': 45,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 500.0,
+                    'Depolarization_Factor': 0,},
+     '00387.o_ph': {'channel_ID': 46,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0,},
+     '00408.o_ph': {'channel_ID': 444,
+                    'Background_Low': 19000,
+                    'Background_High': 20000,
+                    'Laser_Shots': 1000,
+                    'LR_Input': 1,
+                    'DAQ_Range': 0,
+                    'Depolarization_Factor': 0,},
+     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/musa/musa.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,5 @@
+from ...licel import LicelLidarMeasurement
+from ..ciao import CiaoMixin
+
+class MusaLidarMeasurement(CiaoMixin, LicelLidarMeasurement):
+    pass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/musa/musa_2009_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,97 @@
+general_parameters =  \
+{'System': '\'MUSA\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 40.601039,
+ 'Longitude_degrees_east': 15.723771,
+ 'Altitude_meter_asl': 760.0} # This should be float
+
+channel_parameters = \
+{'01064.o_an': {'channel_ID': 203,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '00355.o_an': {'channel_ID': 193,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'Depolarization_Factor': 0,},
+ '00355.o_ph': {'channel_ID': 194,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00387.o_an': {'channel_ID': 195,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':20.0,
+         'Depolarization_Factor': 0,},
+ '00387.o_ph': {'channel_ID': 196,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00532.p_an': {'channel_ID': 197,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'Depolarization_Factor': 0,},
+ '00532.p_ph': {'channel_ID': 198,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '00532.s_an': {'channel_ID': 199,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'Depolarization_Factor': 0.0441,},
+ '00532.s_ph': {'channel_ID': 200,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0.0441,},
+ '00607.o_an': {'channel_ID': 201,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':20.0,
+         'Depolarization_Factor': 0,},
+ '00607.o_ph': {'channel_ID': 202,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+         }
+
+#For testing. To be read from milos files.
+'''
+measurement_parameters = \
+{'Pressure_at_Lidar_Station': 930,
+ 'Temperature_at_Lidar_Station': 15,
+ 'Measurement_ID': '12345'}
+'''
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/musa/musa_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,97 @@
+general_parameters =  \
+{'System': '\'MUSA\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 40.601039,
+ 'Longitude_degrees_east': 15.723771,
+ 'Altitude_meter_asl': 760.0} # This should be float
+
+channel_parameters = \
+{'1064.o_an': {'channel_ID': 203,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':500.0,
+         'Depolarization_Factor': 0,},
+ '355.o_an': {'channel_ID': 193,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'Depolarization_Factor': 0,},
+ '355.o_ph': {'channel_ID': 194,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '387.o_an': {'channel_ID': 195,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':20.0,
+         'Depolarization_Factor': 0,},
+ '387.o_ph': {'channel_ID': 196,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '532.p_an': {'channel_ID': 197,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'Depolarization_Factor': 0,},
+ '532.p_ph': {'channel_ID': 198,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '532.s_an': {'channel_ID': 199,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':100.0,
+         'Depolarization_Factor': 0.0441,},
+ '532.s_ph': {'channel_ID': 200,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0.0441,},
+ '607.o_an': {'channel_ID': 201,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':20.0,
+         'Depolarization_Factor': 0,},
+ '607.o_ph': {'channel_ID': 202,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1200,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+         }
+
+#For testing. To be read from milos files.
+'''
+measurement_parameters = \
+{'Pressure_at_Lidar_Station': 930,
+ 'Temperature_at_Lidar_Station': 15,
+ 'Measurement_ID': '12345'}
+'''
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/pearl/pearl.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,139 @@
+import datetime
+import os
+import glob
+
+import numpy as np
+
+from ...generic import BaseLidarMeasurement, LidarChannel
+from ..ciao import CiaoMixin
+
+import pearl_netcdf_parameters
+from report_file import Report_file
+
+
+repository = '/mnt/storage/lidar_data/pearl/'
+
+
+class PearlLidarMeasurement(CiaoMixin, BaseLidarMeasurement):
+    
+    extra_netcdf_parameters = pearl_netcdf_parameters
+    
+    def import_file(self,filename):
+        ''' Import a pearl file. '''
+        
+        if filename in self.files:
+            print "File has been imported already:" + filename
+        else:
+            parameters, channels_dict = self.read_pearl_data(filename)
+            start_time = self._gettime(parameters['Acq_date'],parameters['Acq_start_time'])
+            
+            for channel_info in channels_dict.itervalues():
+                
+                if channel_info['name'] == '1064ALR':
+                    name = '1064'
+                    tm = start_time
+                elif channel_info['name'] == '1064BLR':
+                    name = '1064'
+                    tm = start_time + datetime.timedelta(seconds = 30)
+                else:
+                    name = channel_info['name']
+                    tm = start_time
+                if name not in self.channels:
+                    self.channels[name] = LidarChannel(channel_info)
+                self.channels[name].data[tm] = channel_info['data']
+            self.files.append(filename)
+    
+    def read_pearl_data(self, filename):
+        '''
+        Reads a pearl file.
+        
+        Returns:
+        parameters - a dictionary of general parameters
+        channels   - a dictionary with keys the channel number and values lists
+                     [channel name, channel bin width, channel data].
+        '''
+        f = open(filename,'r') # Open the file
+        s = f.read(26) # Read the first 26 bytes
+        
+        #Get the values in a dictionary
+        parameters = {}
+        parameters['Acq_date'] = s[0:10] # First 10 bytes are the acquisition date.
+        parameters['Acq_start_time'] = s[10:20].strip() # Next 10 bytes are start time. Strip from trailing spaces.
+        parameters['Channel_no'] = np.fromstring(s[20:22], dtype = np.int16) # Next 2 bytes are the number of channels. Short integer.
+        parameters['Point_no'] = np.fromstring(s[22:26], dtype = np.int32) # Next 4 bytes are the number of points. Integer.
+        p = parameters # Just for less typing
+        
+        # Read the channel parameters
+        len = 20*p['Channel_no']    
+        s = f.read(len)
+        channels = {}
+        for (c1,n) in zip(range(0,len, 20),range(p['Channel_no'])):
+            channels[str(n)] = {'name' : s[c1+10:c1+20].strip(),
+                                'binwidth' : s[c1:c1+10].strip()}
+        
+        #Read the data
+        data = np.fromfile(f,dtype = np.float32)
+        #print filename + ': ' + str(data.size) +',' + str(p['Point_no']) +str(p['Channel_no'])
+        data = data.reshape(p['Point_no'],p['Channel_no'])
+        for ch in channels.iterkeys():
+            channels[ch]['data'] = data[:,int(ch)]
+        #Close the file
+        f.close()
+        return parameters,channels
+                
+
+def get_measurement_for_interval(start_time, stop_time):
+    ''' Searches for a pearl measurement based on a time interval     
+    '''
+    
+    correct_series = None
+    day = datetime.timedelta(hours = 24)
+    
+    if start_time > stop_time:
+            raise ValueError('Stop time should be after start time')
+    
+    
+    
+    #The list of directories based on the given time. Same, previous, Next day
+    possible_paths = [get_path(t) for t in [start_time - day, start_time, start_time + day] 
+                            if get_path(t) is not None]
+    for path in possible_paths:
+        try:
+            rf = Report_file(path)
+        except:
+            rf = None
+        
+        if rf is not None:
+            for serie in rf.series:
+                if (start_time > serie.starttime) and (stop_time < serie.endtime):
+                    correct_series = serie
+    
+    if correct_series:
+        files = correct_series.files.get('apd', []) + correct_series.files.get('mcb', [])
+        m_series = PearlLidarMeasurement(files)
+        m_subset = m_series.subset_by_time(start_time, stop_time)
+        return m_subset
+    else:
+        return None
+
+
+def get_channel(tim, channel = '1064'):
+    if channel =='1064':
+        extension = '*.apd'
+    else:
+        extension = '*.mcb'
+    
+    dirstr = get_path(tim)
+    
+    if not os.path.isdir(dirstr):
+        raise IOError('No measurement for that date (directory does not exist.).')
+        #No measurement for that date (directory does not exist.).
+    files = glob.glob(dirstr + extension)
+    m = PearlLidarMeasurement(files)
+    c = m.channels[channel]
+    return c
+    
+
+def get_path(tim):
+    dirstr = repository +  tim.strftime('%Y')+ '/' +tim.strftime('%d%m%Y') + '/'
+    return dirstr
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/pearl/pearl_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,98 @@
+general_parameters =  \
+{'System': '\'PEARL\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 40.601039,
+ 'Longitude_degrees_east': 15.723771,
+ 'Altitude_meter_asl': 760.0} # This should be float
+
+channel_parameters = \
+{'355HR': {'channel_ID': 8,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '355LR': {'channel_ID': 14,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '386HR': {'channel_ID': 9,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '386LR': {'channel_ID': 15,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '407HR': {'channel_ID': 17,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '532HR': {'channel_ID': 7,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '532LR': {'channel_ID': 13,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '532SHR': {'channel_ID': 12,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '532PHR': {'channel_ID': 11,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '607HR': {'channel_ID': 10,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':0,
+         'Depolarization_Factor': 0,},
+ '1064': {'channel_ID': 6,
+         'Background_Low': 30000,
+         'Background_High': 50000,
+         'Laser_Shots': 1500,
+         'LR_Input':1,
+         'DAQ_Range':100,
+         'Depolarization_Factor': 0,},
+        
+         }
+
+#For testing. To be read from milos files.
+'''
+measurement_parameters = \
+{'Pressure_at_Lidar_Station': 930,
+ 'Temperature_at_Lidar_Station': 15,
+ 'Measurement_ID': '12345'}
+'''
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/rali/rali.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,33 @@
+import radiometer
+
+from ...licel import LicelLidarMeasurement
+
+import rali_netcdf_parameters
+
+class RaliLidarMeasurement(LicelLidarMeasurement):
+    extra_netcdf_parameters = rali_netcdf_parameters
+    
+    def get_PT(self):
+        ''' Gets the pressure and temperature from Radiometer data.
+        If no data file is found, mean values from past measurements are 
+        used.
+        '''
+        
+        start_time = self.info['start_time']
+        stop_time = self.info['stop_time']
+        dt = stop_time - start_time
+        mean_time = start_time + dt/2
+        
+        meteo_triplet = radiometer.get_mean_PT(mean_time)
+        
+        if meteo_triplet:
+            pressure, temperature, humidity = meteo_triplet
+        else:
+            print "Radiometer meteo data not available. Using past values."
+            pressure = radiometer.P_mean[mean_time.month - 1, mean_time.hour]
+            temperature = radiometer.T_mean[mean_time.month - 1, mean_time.hour]
+            
+        self.info['Temperature'] = temperature - 273.15
+        self.info['Pressure'] = pressure
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/rali/rali_depol.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,5 @@
+from ...licel_depol import LicelCalibrationMeasurement
+import rali_depolarization_parameters
+
+class RALICalibrationMeasurement(LicelCalibrationMeasurement):
+    extra_netcdf_parameters = rali_depolarization_parameters
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/rali/rali_depolarization_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,80 @@
+general_parameters =  \
+{'System': '\'RALI\'',
+ 'Call sign': 'bu',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 44.348,
+ 'Longitude_degrees_east': 26.029,
+ 'Altitude_meter_asl': 93.0}  # This should be float
+
+# Change to channel_parameters to use all channels. For testing I define only photon counting channels below.
+channel_parameters = \
+{ '00532.p_an_p45': {'channel_ID': 383,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_p45': {'channel_ID': 378,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_an_p45': {'channel_ID': 385 ,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_p45': {'channel_ID': 380,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_an_m45': {'channel_ID': 384,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.p_ph_m45': {'channel_ID': 379,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_an_m45': {'channel_ID': 386,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+ '00532.s_ph_m45': {'channel_ID': 382,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Pol_Calib_Range_Min': 1000,
+         'Pol_Calib_Range_Max': 3000},
+         }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/atmospheric_lidar/systems/rali/rali_netcdf_parameters.py	Wed Dec 06 11:50:41 2017 +0200
@@ -0,0 +1,85 @@
+general_parameters =  \
+{'System': '\'RALI\'',
+ 'Laser_Pointing_Angle': 0,
+ 'Molecular_Calc': 0,
+ 'Latitude_degrees_north': 44.348,
+ 'Longitude_degrees_east': 26.029,
+ 'Altitude_meter_asl': 93.0,
+ 'Call sign': 'bu', } # This should be float
+
+channel_parameters = \
+{'01064.o_an': {'channel_ID': 89,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,},
+ '00355.o_an': {'channel_ID': 98,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,},
+ '00355.o_ph': {'channel_ID': 99,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,
+         'Depolarization_Factor': 0,},
+ '00387.o_an': {'channel_ID': 90,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,},
+ '00387.o_ph': {'channel_ID': 91,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,},
+ '00532.p_an': {'channel_ID': 94,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 100.0,},
+ '00532.p_ph': {'channel_ID': 95,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,},
+ '00532.s_an': {'channel_ID': 96,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,},
+ '00532.s_ph': {'channel_ID': 97,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,},
+ '00607.o_an': {'channel_ID': 92,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 20.0,},
+ '00607.o_ph': {'channel_ID': 93,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input':1,
+         'DAQ_Range':20.0,},
+ '00408.o_ph': {'channel_ID': 170,
+         'Background_Low': 50000,
+         'Background_High': 60000,
+         'Laser_Shots': 3000,
+         'LR_Input': 1,
+         'DAQ_Range': 0,},
+         }
+

mercurial