function rdfitscube,file,headers=headers,plane=plane,ext1=ext1,ext2=ext2 ; read a fits file w/ extensions into a data cube ; headers = header field for all DCEs in cube, numdce x numfield strarr. ; plane = which plane to extract for files where there are multiple ; planes. Defaults to zero, which is MIPS pipeline DN plane. ; ext1 = extract starting w/ extension #ext1. if not set, reads all extensions. ; ext2 = extract up thru extension #ext2. if ext1 set, but not ext2, ; extract only ext1 ; if (not keyword_set(plane)) then plane = 0 fits_open,file,fcb numdce = fcb.nextend if (n_elements(ext1) eq 0) then begin start = 1 stop = numdce endif else begin start=ext1 if (n_elements(ext2) eq 0) then stop = start else stop = ext2 numdce = stop - start + 1 endelse xsize = fcb.axis[0,1] ysize = fcb.axis[1,1] cube = fltarr(xsize,ysize,numdce) tmp = fltarr(xsize,ysize) for i = start,stop do begin fits_read,fcb,tmp,head,exten_no=i ;I took out the next two lines to work with my sedioc programs ; if (i eq 1) then headers = strarr(numdce,n_elements(head)) ; headers[i-1,*] = head cube[*,*,i-1] = tmp[*,*,plane] endfor fits_close,fcb return,cube end