FUNCTION Extract_STARfm, input_file, $ data_this_profile, $ mission=mission return_code=0B ; 1 is good ; 0 is bad and report via email ; 2 is bad and record in log if ~keyword_set(mission) then begin path=strsplit(file_dirname(input_file),'/',/extract) mission=path[-3] endif agency='STAR' print,input_file openr,11,input_file variable_name='' variable_test='' lat=0.0 lon=0.0 readf, 11, roc readf, 11, lat, lon readf, 11, variable_name POINT_LUN, -11, pos ; record the pos readf, 11, variable_test variable_list = strsplit(variable_test, /extract) n_var = n_elements(strsplit(variable_test, /extract)) ; Height(km) Refrac(N) Pressure(Pa) Impact_Parameter(km) Alpha(deg) content = dblarr(n_var, file_lines(input_file)-3) POINT_LUN, 11, pos ; rewind to pos readf, 11, content close,11 if n_var eq 4 then begin height = content[0, *] refrac = content[1, *] pressure= !values.f_nan impact = content[2, *]-roc bangle = content[3, *] endif else if n_var eq 5 then begin height = content[0, *] refrac = content[1, *] pressure= content[2, *] impact = content[3, *]-roc bangle = content[4, *] endif fileStamp_array=strsplit(file_basename(input_file),'_.',/extract) gps=strlowcase(fileStamp_array[7]) leo=fileStamp_array[2] year=fileStamp_array[3] doy=fileStamp_array[4] hour=fileStamp_array[5] minute=fileStamp_array[6] caldat,julday(1, doy, year), month, day, year ;cic085_2018-12-17T00:07:08_r21_GeoOptics_CICERO title= leo+'_'+$ string(year,format='(i4)') +'-'+$ string(month,format='(i2.2)') +'-'+$ string(day,format='(i2.2)') +'T'+$ hour +':'+$ minute+':'+$ '00_'+$ gps+'_'+$ agency+'_'+mission ; print, title ; --- height_level1a_structure={data: float(impact), $ name: 'Impact Height, km'} height_level1b_structure={data: float(height), $ name: 'Height, km'} ; --- bending_angle_structure={data: float(bangle), $ name: 'Bending Angle, rad', $ vertical: 'Height_level1a'} refractivity_structure={data: float(refrac), $ name: 'Refractivity, N-units', $ vertical: 'Height_level1b'} pressure_structure={data: float(pressure)/100., $ ; convert to hPa name: 'Pressure, hPa', $ vertical: 'Height_level1b'} time = julday(month, day, year, hour, minute, 0.0) ; --- data_this_profile = {title: title, $ ELRC: float(roc),$ time: time, $ lat: lat, $ lon: lon, $ leo: leo, $ gnss: gps, $ ; --- Height_level1a: ptr_new(height_level1a_structure), $ Height_level1b: ptr_new(height_level1b_structure), $ ; --- BendingAngle: ptr_new(bending_angle_structure), $ Refractivity: ptr_new(refractivity_structure), $ pressure: ptr_new(pressure_structure) $ } ;print,'read end at: ', systime() return_code = 1B ; good profile jump_end: if return_code eq 0B then begin cmd=string('echo -e "'+error_string+'" | mail -s "Alert: something is wrong in Extract_STARfm.pro " xinjia.zhou@noaa.gov') spawn, cmd endif RETURN, return_code END