pro read_pf_level2_hdf,filename,fdata,indata,outdata ; GENERIC PROGRAM TO READ SDS ARRAYS FROM AN HDF FILE ; ALL OF THE ARRAYS ARE PUT INTO AN OUTPUT STRUCTURE, fdata ; KEYWORD tag_label: SET THIS IN ORDER FOR THE OUTPUT ; STRUCTURE TO USE THE SDS LABEL WHEN ; CREATING STRUCTURE TAG NAMES. ; DEFAULT IS TO USE SDS NAME. ;****************OBSOLETE******************* ; Original code by D. Cecil/NASA MSFC ; Modified to read PF Level 2 Output by S. Nesbitt, U. Utah, 10-29-02 fdata = {fdata,filename: filename} indata= {indata,filename: filename} outdata= {outdata,filename: filename} sdsfileid = hdf_sd_start(filename,/read) hdf_sd_fileinfo,sdsfileid,numsds,ngatt for i = 0, numsds - 1 do begin sds_id = hdf_sd_select(sdsfileid, i ) hdf_sd_getinfo, sds_id, name = na, ndim = nd,type= typ, label=label hdf_sd_getdata, sds_id, data if keyword_set(tag_label) and strlen(label) gt 0 then na=label tagname=strsplit(na,'_',/extract) if tagname(0) eq 'f' and n_elements(tagname) eq 2 then $ fdata=create_struct(fdata, tagname(1), data) if tagname(0) eq 'f' and n_elements(tagname) eq 3 then $ fdata=create_struct(fdata, tagname(1)+'_'+tagname(2), data) if tagname(0) eq 'in' and n_elements(tagname) eq 2 then $ indata=create_struct(indata, tagname(1), data) if tagname(0) eq 'in' and n_elements(tagname) eq 3 then $ indata=create_struct(indata, tagname(1)+'_'+tagname(2), data) if tagname(0) eq 'out' and n_elements(tagname) eq 2 then $ outdata=create_struct(outdata, tagname(1), data) if tagname(0) eq 'out' and n_elements(tagname) eq 3 then $ outdata=create_struct(outdata, tagname(1)+'_'+tagname(2), data) hdf_sd_endaccess,sds_id endfor hdf_sd_end,sdsfileid end