pro CPL_ATB_HDF5_READER_V2, filename ; This is a sample IDL program to read a CPL attenuated total backscatter (ATB) HDF5 file. ; Version 2 is the latest mod which eliminates parameters involving layers. (06Dec16) @cpl_l1_parms_common ;common for L1 data file_id = H5F_OPEN(filename) ;r = H5_PARSE(filename) ;help,r dataset_id = H5D_OPEN(file_id, 'Date') rawdate = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,rawdate dataset_id = H5D_OPEN(file_id, 'Project') project = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,project dataset_id = H5D_OPEN(file_id, 'NumRecs') NumRecs = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,NumRecs dataset_id = H5D_OPEN(file_id, 'NumWave') nwl = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,nwl ; Wavelengths= 355, 532, 1064nm dataset_id = H5D_OPEN(file_id, 'NumChans') NumChans = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,NumChans ; Channels= 355, 532, 1064parallel, 1064perpendicular dataset_id = H5D_OPEN(file_id, 'NumBins') NumBins = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,NumBins ; Number of vertical bins in frame dataset_id = H5D_OPEN(file_id, 'Bin_Width') vres = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,vres ; Vertical bin size (m) dataset_id = H5D_OPEN(file_id, 'Hori_Res') Hori_Res_Secs = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,Hori_Res_Secs ; 1 sec= ~0.200 km dataset_id = H5D_OPEN(file_id, 'Frame_Top') Frame_Top_Ht = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,Frame_Top_Ht ; km dataset_id = H5D_OPEN(file_id, 'Start_JDay') Start_JDay = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,Start_JDay dataset_id = H5D_OPEN(file_id, 'End_JDay') End_JDay = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,End_JDay ;dataset_id = H5D_OPEN(file_id, 'MaxLayers') ;maxlays = H5D_READ(dataset_id) ;H5D_CLOSE, dataset_id ;help,maxlays ; Maximum number of layers/profile ;*********** Read Science Data Sets **************************** dataset_id = H5D_OPEN(file_id, 'Bin_Alt') bin_alt = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,bin_alt ; Altitude of each vertical bin (km) dataset_id = H5D_OPEN(file_id, 'Latitude') Lat = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,Lat dataset_id = H5D_OPEN(file_id, 'Longitude') Lon = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,Lon dataset_id = H5D_OPEN(file_id, 'Dec_JDay') djday = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,djday ; Decimal Day-of-year dataset_id = H5D_OPEN(file_id, 'Hour') hr = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,hr dataset_id = H5D_OPEN(file_id, 'Minute') minu = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,minu dataset_id = H5D_OPEN(file_id, 'Second') sec = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,sec ;dataset_id = H5D_OPEN(file_id, 'Gnd_Hgt') ;gnd_ht = H5D_READ(dataset_id) ;H5D_CLOSE, dataset_id ;help,gnd_ht ; height of lidar ground return (km), missing= -0.999 dataset_id = H5D_OPEN(file_id, 'Depol_Ratio_1sec') depol = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,depol ; 1064nm Depolarization Ratio profiles, valid only inside layers dataset_id = H5D_OPEN(file_id, 'Saturate') saturate_ht = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,saturate_ht ; Height (km) where detector saturation first occurs per channel (if any) ;dataset_id = H5D_OPEN(file_id, 'NumLayers') ;nlay = H5D_READ(dataset_id) ;H5D_CLOSE, dataset_id ;help,nlay ; Number of layers detected in current profile ;dataset_id = H5D_OPEN(file_id, 'Layer_Type') ;ltype = H5D_READ(dataset_id) ;H5D_CLOSE, dataset_id ;help,ltype ; layer type: 0=dummy,1=PBL,2=elevated aerosol,3=cloud,4=indeterminate ;dataset_id = H5D_OPEN(file_id, 'Layer_Top_Alt') ;lay_top_ht = H5D_READ(dataset_id) ;H5D_CLOSE, dataset_id ;help,lay_top_ht ; km ;dataset_id = H5D_OPEN(file_id, 'Layer_Bot_Alt') ;lay_bot_ht = H5D_READ(dataset_id) ;H5D_CLOSE, dataset_id ;help,lay_bot_ht ; km dataset_id = H5D_OPEN(file_id, 'ATB_355') atb_355 = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,atb_355 ; attenuated total backscatter profile 1/km-sr dataset_id = H5D_OPEN(file_id, 'Cali_355') cc_355 = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,cc_355 ; calibration applied for current profile dataset_id = H5D_OPEN(file_id, 'Cali_355_Err') cc_355_err = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,cc_355_err ; calibration applied for current profile dataset_id = H5D_OPEN(file_id, 'ATB_532') atb_532 = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,atb_532 ; attenuated total backscatter profile 1/km-sr dataset_id = H5D_OPEN(file_id, 'Cali_532') cc_532 = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,cc_532 ; calibration applied for current profile dataset_id = H5D_OPEN(file_id, 'Cali_532_Err') cc_532_err = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,cc_532_err ; calibration applied for current profile dataset_id = H5D_OPEN(file_id, 'ATB_1064') atb_1064 = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,atb_1064 ; attenuated total backscatter profile 1/km-sr dataset_id = H5D_OPEN(file_id, 'Cali_1064') cc_1064 = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,cc_1064 ; calibration applied for current profile dataset_id = H5D_OPEN(file_id, 'ATB_1064_PERP') atb_1064_perp = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,atb_1064_perp ; attenuated total backscatter profile 1/km-sr dataset_id = H5D_OPEN(file_id, 'Cali_1064_Err') cc_1064_err = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,cc_1064_err ; calibration applied for current profile dataset_id = H5D_OPEN(file_id, 'Pressure') pres = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,pres ; Mb dataset_id = H5D_OPEN(file_id, 'Temperature') temp = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,temp ; Degrees C dataset_id = H5D_OPEN(file_id, 'RH') rh = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,rh ; Percent dataset_id = H5D_OPEN(file_id, 'Mole_Back') mole_back = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,mole_back ; Molecular backscatter profile (1/km-sr) for the 3 wl dataset_id = H5D_OPEN(file_id, 'Plane_Alt') plane_ht = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,plane_ht ; km dataset_id = H5D_OPEN(file_id, 'Plane_Pitch') pitch = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,pitch ; degrees, down= '-' dataset_id = H5D_OPEN(file_id, 'Plane_Roll') roll = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,roll ; degrees, left turn= '-' dataset_id = H5D_OPEN(file_id, 'Plane_Heading') heading = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,heading ; degrees, clockwise from north dataset_id = H5D_OPEN(file_id, 'Solar_Elevation_Angle') sun_el = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,sun_el ; degrees dataset_id = H5D_OPEN(file_id, 'Solar_Azimuth_Angle') sun_az = H5D_READ(dataset_id) H5D_CLOSE, dataset_id help,sun_az ; degrees NumCPLRecs = NumRecs NumCPLBins = NumBins cpl_hr = hr cpl_minu = minu cpl_sec = sec cpl_lat = Lat cpl_lon = Lon H5F_CLOSE, file_id ;stop, "Testing" end