import h5py import numpy as np def read_cpl_l1b(L1B_file): """ Read all data in from a CPL L1B (ATB) file. Input: L1B_file => full-path string name of L1B file Output: d => dictionary containing all the data where keys are variable names. Last modified: 3/7/24, Patrick Selmer """ var_name_list = [ 'ATB_1064', 'ATB_1064_PERP', 'ATB_355', 'ATB_532', 'Bin_Alt', 'Bin_Width', 'Cali_1064', 'Cali_1064_Err', 'Cali_355', 'Cali_355_Err', 'Cali_532', 'Cali_532_Err', 'DEM_laserspot', 'DEM_laserspot_surftype', 'DEM_nadir', 'DEM_nadir_surftype', 'Date', 'Dec_JDay', 'EM', 'End_JDay', 'Frame_Top', 'Hori_Res', 'Hour', 'L1B_Version', 'Latitude', 'Longitude', 'Minute', 'Mole_2way_Trans', 'Mole_Back', 'NumBins', 'NumChans', 'NumRecs', 'NumWave', 'Ozone_Transmission', 'Plane_Alt', 'Plane_Heading', 'Plane_Pitch', 'Plane_Roll', 'Pressure', 'Project', 'RH', 'Saturate', 'Second', 'Solar_Azimuth_Angle', 'Solar_Elevation_Angle', 'Start_JDay', 'Temperature', 'bg' ] hdf5 = h5py.File(L1B_file, 'r') d = {} for var_name in var_name_list: try: d[var_name] = np.array(hdf5[var_name]) except: print('**********\n{} missing in {}\n***********'.format(var_name, L1B_file)) hdf5.close() return d """ # *** Example code *** filepath = 'C:\\Users\\pselmer\\Documents\\CPL\\IMPACTS_23\\L1\\' L1B_file = filepath + 'IMPACTS_CPL_ATB_L1_20230123.hdf5' data = read_cpl_l1b(L1B_file) print('Dimensions of ATB_532 array are {}'.format(data['ATB_532'].shape)) # Display fraction of day for 1st element data['Dec_JDay'][0] # If you like varaibles outside of dictionary, just do this... z = data['Bin_Alt'] ATB_1064 = data['ATB_1064'] print(z.shape, ATB_1064.shape) """