Viewing contents of file '../idllib/astron/contrib/varosi/code/allpro/check_mag_fact.pro'
function check_Mag_Fact, image_List, size_im, size_imsc, ALL_MAGS=all_mags, $
TAG_IMAGE=tag_image, $
TAG_SIZE_IM=tag_size, $
TAG_SIZE_SIM=tag_size_ims
;code written by Frank Varosi NASA/GSFC 1989.
;F.V.1990, mod to handle case when image data is not in structure, just sizes.
;F.V.1991, mod to handle magnification < 1.
;F.V.1991, keyword /ALL_MAGS for when image data is not in structure.
;F.V.1992, keywords TAG_* to get flags about image data structure.
if N_tags( image_List ) GT 0 then begin
tags = tag_names( image_List )
tag_image = max( tags EQ "IMAGE" )
if (tag_image) then begin
size_im = size( image_List(0).Image )
size_imsc = size( image_List(0).Imscaled )
sim = size_im(1)
simsc = size_imsc(1)
if ( simsc GE sim ) then return, fix( simsc/sim ) $
else return, 1.0/fix( sim/float( simsc ) )
endif else begin
tag_size = max( tags EQ "SIZE_IMAGE" )
tag_size_ims = max( tags EQ "SIZE_IMSCALED", tag_size_ims )
if (tag_size) then begin
size_im = image_List.Size_Image
sim = reform( size_im(1,*) ) > 1
endif else sim = [-1]
if (tag_size_ims) then begin
size_imsc = image_List.Size_Imscaled
simsc = reform( size_imsc(1,*) ) > 1
endif else simsc = -sim
if keyword_set( all_mags ) then begin
wg = where( [simsc] GE [sim], ng )
wl = where( [simsc] LT [sim], nl )
if (nl GT 0) then begin
Magf = fltarr( nl+ng )
Magf(wl) = 1.0/fix( sim(wl)/float( simsc(wl) ))
endif else Magf = intarr( ng )
if (ng GT 0) then Magf(wg) = fix( simsc(wg) / sim(wg) )
return, Magf
endif else begin
if ( simsc(0) GE sim(0) ) then $
return, fix( simsc(0)/sim(0) ) $
else return, 1.0/fix( sim(0)/float(simsc(0)))
endelse
endelse
endif else return,(0)
end