EIT Software Listings

 

anal
obsolete
response
util

 

Previous Routine
Next Routine

 

Listing of $SSW/soho/eit/idl/anal/eit_ring_flux.pro

 


function eit_ring_flux, infile, inner_rad, outer_rad, eastonly=eastonly,$
           westonly=westonly
;+
; NAME:
;   eit_ring_flux
;
; PURPOSE:
;   Calculate the total flux (DN) per second with a given annulus in 
;   an EIT full field image.
;
; CALLING SEQUENCE:
;    flux = eit_ring_flux(fits_file, inner_rad, outer_rad)
;
; INPUTS:
;    infile      = FITS file of full field EIT image
;    inner_rad   = inner edge for annulus in solar radii
;    outer_rad   = outer edge for annulus in solar radii
;
; OUTPUTS:
;    flux        = total flux per second in given annulus
;
; OPTIONAL INPUTS: 
;    eastonly    = set if want semi-annulus on east limb
;    westonly    = set if want semi-annulus on west limb
;
; EXAMPLES:
;     Return flux within annulus 1.13-1.17 Rsun:
;         flux = eit_ring_flux(infile,1.13,1.17)
;     Return all flux on disk:
;         flux = eit_ring_flux(infile,0,1.0)
;     Return all flux off disk:
;         flux = eit_ring_flux(infile,1.001,2.0)
;
; MODIFICATION HISTORY
;    1997 Jan 08 - (JSN) - Written
;    1997 Feb 13 - J. Newmark - add east and west keywords
;    1997 Mar 17 - J. Newmark - account for change in exptime parameter
;    1997 Apr 10 - J. Newmark - use normalize exptime, normalize filter
;                               in eit_prep
;
; COMMON BLOCKS: none
; NOTES: this procedure will fill in missing blocks with the /surround
;        option, i.e. with average of surrounding blocks.
;        
;        If image taken using AL+1 Filter will normalize to CLEAR.
;-

if inner_rad ge outer_rad then begin
  message, /info, 'The outer edge for the annulus must be greater than'+$
   ' the inner edge'
  return, 0
endif

eit_prep, infile, outhdr, outimage, /surround, /normalize, /filter_norm

if strupcase(eit_fxpar(outhdr,'object')) ne 'FULL FOV' then begin
   message, /info,'The input file is not a FULL FOV image'
   return, 0
endif 
nx = eit_fxpar(outhdr,'naxis1')
xcen = eit_fxpar(outhdr,'crpix1') - 1.
ycen = eit_fxpar(outhdr,'crpix2') - 1.
cdelt = eit_fxpar(outhdr,'cdelt1')

dist_circle, circle, nx, xcen, ycen
circle = circle * cdelt
sol_rad = eit_fxpar(outhdr,'solar_r') * cdelt

half = nx/2.
if keyword_set(eastonly) then begin
   circle = circle(0:half-1,*)
   outimage = outimage(0:half-1,*)
endif
if keyword_set(westonly) then begin
   circle = circle(half:nx-1,*)
   outimage = outimage(half:nx-1,*)
endif

ring = where(circle ge inner_rad*sol_rad and circle le outer_rad*sol_rad)

if ring(0) ne -1 then flux = total(outimage(ring)) else begin
  message, /info,'There are no pixels within given annulus'
  return, 0
endelse

return, flux
end


Web curator: Frédéric Auchère
Responsible NASA official: Joseph B. Gurman, Facility Scientist, Solar Data Analysis Center
joseph.b.gurman@gsfc.nasa.gov
+1 301 286-4767
NASA Goddard Space Flight Center
Solar Physics Branch / Code 682

Last revised: - Wed May 9 21:45:03 2007- F. Auchère