⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aper.pro

📁 basic median filter simulation
💻 PRO
📖 第 1 页 / 共 2 页
字号:
pro aper,image,xc,yc,mags,errap,sky,skyerr,phpadu,apr,skyrad,badpix, $       SETSKYVAL = setskyval,PRINT = print, SILENT = silent, FLUX=flux, $       EXACT = exact, Nan = nan, READNOISE = readnoise, MEANBACK = meanback, $       CLIPSIG=clipsig, MAXITER=maxiter,CONVERGE_NUM=converge_num;+; NAME:;      APER; PURPOSE:;      Compute concentric aperture photometry (adapted from DAOPHOT) ; EXPLANATION:;     APER can compute photometry in several user-specified aperture radii.  ;     A separate sky value is computed for each source using specified inner ;     and outer sky radii.   ;; CALLING SEQUENCE:;     APER, image, xc, yc, [ mags, errap, sky, skyerr, phpadu, apr, skyrad, ;                       badpix, /NAN, /EXACT, /FLUX, PRINT = , /SILENT, ;                       /MEANBACK, SETSKYVAL = ]; INPUTS:;     IMAGE -  input image array;     XC     - vector of x coordinates. ;     YC     - vector of y coordinates;; OPTIONAL INPUTS:;     PHPADU - Photons per Analog Digital Units, numeric scalar.  Converts;               the data numbers in IMAGE to photon units.  (APER assumes;               Poisson statistics.)  ;     APR    - Vector of up to 12 REAL photometry aperture radii.;     SKYRAD - Two element vector giving the inner and outer radii;               to be used for the sky annulus.   Ignored if the SETSKYVAL;              keyword is set.;     BADPIX - Two element vector giving the minimum and maximum value;               of a good pixel.   If badpix is not supplied or if BADPIX[0] is;               equal to BADPIX[1] then it is assumed that there are no bad;               pixels.     Note that fluxes will not be computed for any star;               with a bad pixel within the aperture area, but that bad pixels;               will be simply ignored for the sky computation.    The BADPIX;               parameter is ignored if the /NAN keyword is set.;; OPTIONAL KEYWORD INPUTS:;     CLIPSIG - if /MEANBACK is set, then this is the number of sigma at which ;             to clip the background.  Default=3;     CONVERGE_NUM:  if /MEANBACK is set then if the proportion of ;           rejected pixels is less than this fraction, the iterations stop.  ;           Default=0.02, i.e., iteration stops if fewer than 2% of pixels ;           excluded.;     /EXACT -  By default, APER counts subpixels, but uses a polygon ;             approximation for the intersection of a circular aperture with;             a square pixel (and normalizes the total area of the sum of the;             pixels to exactly match the circular area).   If the /EXACT ;             keyword, then the intersection of the circular aperture with a;             square pixel is computed exactly.    The /EXACT keyword is much;             slower and is only needed when small (~2 pixels) apertures are;             used with very undersampled data.    ;     /FLUX - By default, APER uses a magnitude system where a magnitude of;               25 corresponds to 1 flux unit.   If set, then APER will keep;              results in flux units instead of magnitudes.    ;     MAXITER if /MEANBACK is set then this is the ceiling on number of ;             clipping iterations of the background.  Default=5;     /MEANBACK - if set, then the background is computed using the 3 sigma ;             clipped mean (using meanclip.pro) rather than using the mode ;             computed with mmm.pro.    This keyword is useful for the Poisson ;             count regime or where contamination is known  to be minimal.;     /NAN  - If set then APER will check for NAN values in the image.   /NAN;             takes precedence over the BADPIX parameter.   Note that fluxes ;             will not be computed for any star with a NAN pixel within the ;             aperture area, but that NAN pixels will be simply ignored for ;             the sky computation.;     PRINT - if set and non-zero then APER will also write its results to;               a file aper.prt.   One can specify the output file name by;               setting PRINT = 'filename'.;     READNOISE - Scalar giving the read noise (or minimum noise for any;              pixel.   This value is passed to the procedure mmm.pro when;              computing the sky, and is only need for images where;              the noise is low, and pixel values are quantized.   ;     /SILENT -  If supplied and non-zero then no output is displayed to the;               terminal.;     SETSKYVAL - Use this keyword to force the sky to a specified value ;               rather than have APER compute a sky value.    SETSKYVAL ;               can either be a scalar specifying the sky value to use for ;               all sources, or a 3 element vector specifying the sky value, ;               the sigma of the sky value, and the number of elements used ;               to compute a sky value.   The 3 element form of SETSKYVAL;               is needed for accurate error budgeting.;; OUTPUTS:;     MAGS   -  NAPER by NSTAR array giving the magnitude for each star in;               each aperture.  (NAPER is the number of apertures, and NSTAR;               is the number of stars).   If the /FLUX keyword is not set, then;               a flux of 1 digital unit is assigned a zero point magnitude of ;               25.;     ERRAP  -  NAPER by NSTAR array giving error for each star.  If a ;               magnitude could not be determined then  ERRAP = 9.99 (if in ;                magnitudes) or ERRAP = !VALUES.F_NAN (if /FLUX is set).;     SKY  -    NSTAR element vector giving sky value for each star in ;               flux units;     SKYERR -  NSTAR element vector giving error in sky values;; EXAMPLE:;       Determine the flux and error for photometry radii of 3 and 5 pixels;       surrounding the position 234.2,344.3 on an image array, im.   Compute;       the partial pixel area exactly.    Assume that the flux units are in;       Poisson counts, so that PHPADU = 1, and the sky value is already known;       to be 1.3, and that the range [-32767,80000] for bad low and bad high;       pixels;      ;;       IDL> aper, im, 234.2, 344.3, flux, eflux, sky,skyerr, 1, [3,5], -1, $;            [-32767,80000],/exact, /flux, setsky = 1.3;       ; PROCEDURES USED:;       GETOPT, MMM, PIXWT(), STRN(), STRNUMBER(); NOTES:;       Reasons that a valid magnitude cannot be computed include the following:;      (1) Star position is too close (within 0.5 pixels) to edge of the frame;      (2) Less than 20 valid pixels available for computing sky;      (3) Modal value of sky could not be computed by the procedure MMM;      (4) *Any* pixel within the aperture radius is a "bad" pixel;      (5) The total computed flux is negative;;;       For the case where the source is fainter than the background, APER will;       return negative fluxes if /FLUX is set, but will otherwise give ;       invalid data (since negative fluxes can't be converted to magnitudes) ; ;       APER was modified in June 2000 in two ways: (1) the /EXACT keyword was;       added (2) the approximation of the intersection of a circular aperture;       with square pixels was improved (i.e. when /EXACT is not used) ; REVISON HISTORY:;       Adapted to IDL from DAOPHOT June, 1989   B. Pfarr, STX;       FLUX keyword added                       J. E. Hollis, February, 1996;       SETSKYVAL keyword, increase maxsky       W. Landsman, May 1997;       Work for more than 32767 stars           W. Landsman, August 1997;       Don't abort for insufficient sky pixels  W. Landsman  May 2000;       Added /EXACT keyword                     W. Landsman  June 2000 ;       Allow SETSKYVAL = 0                      W. Landsman  December 2000 ;       Set BADPIX[0] = BADPIX[1] to ignore bad pixels W. L.  January 2001     ;       Fix chk_badpixel problem introduced Jan 01 C. Ishida/W.L. February 2001;       Set bad fluxes and error to NAN if /FLUX is set  W. Landsman Oct. 2001 ;       Remove restrictions on maximum sky radius W. Landsman  July 2003;       Added /NAN keyword  W. Landsman November 2004;       Set badflux=0 if neither /NAN nor badpix is set  M. Perrin December 2004;       Added READNOISE keyword   W. Landsman January 2005;       Added MEANBACK keyword   W. Landsman October 2005;       Correct typo when /EXACT and multiple apertures used.  W.L. Dec 2005;       Remove VMS-specific code W.L. Sep 2006;       Add additional keywords if /MEANBACK is set W.L  Nov 2006;       Allow negative fluxes if /FLUX is set  W.L.  Mar 2008;       Previous update would crash if first star was out of range  W.L. Mar 2008;- COMPILE_OPT IDL2 On_error,2;             Set parameter limits minsky = 20   ;Smallest number of pixels from which the sky may be determined maxsky = 10000         ;Maximum number of pixels allowed in the sky annulus.;                                if N_params() LT 3 then begin    ;Enough parameters supplied?  print, $  'Syntax - APER, image, xc, yc, [ mags, errap, sky, skyerr, phpadu, apr, '  print,'             skyrad, badpix, /EXACT, /FLUX, SETSKYVAL = ,PRINT=, ]'  print,'             /SILENT, /NAN'  returnendif  s = size(image) if ( s[0] NE 2 ) then message, $       'ERROR - Image array (first parameter) must be 2 dimensional' ncol = s[1] & nrow = s[2]           ;Number of columns and rows in image array  silent = keyword_set(SILENT) if not keyword_set(nan) then begin if (N_elements(badpix) NE 2) then begin ;Bad pixel values suppliedGET_BADPIX:     ans = ''   print,'Enter low and high bad pixel values, [RETURN] for defaults'   read,'Low and high bad pixel values [none]: ',ans   if ans EQ  '' then badpix = [0,0] else begin   badpix = getopt(ans,'F')   if ( N_elements(badpix) NE 2 ) then begin        message,'Expecting 2 scalar values',/continue        goto,GET_BADPIX   endif   endelse endif  chk_badpix = badpix[0] LT badpix[1]     ;Ignore bad pixel checks? endif if ( N_elements(apr) LT 1 ) then begin              ;Read in aperture sizes?   apr = fltarr(10)   read, 'Enter first aperture radius: ',ap   apr[0] = ap   ap = 'aper'   for i = 1,9 do begin                                                   GETAP:       read,'Enter another aperture radius, [RETURN to terminate]: ',ap      if ap EQ '' then goto,DONE        result = strnumber(ap,val)      if result EQ 1 then apr[i] = val else goto, GETAP      endforDONE:    apr = apr[0:i-1] endif if N_elements(SETSKYVAL) GT 0 then begin     if N_elements( SETSKYVAL ) EQ 1 then setskyval = [setskyval,0.,1.]     if N_elements( SETSKYVAL ) NE 3 then message, $        'ERROR - Keyword SETSKYVAL must contain 1 or 3 elements'     skyrad = [ 0., max(apr) + 1] endif;Get radii of sky annulii if N_elements(skyrad) NE 2 then begin   skyrad = fltarr(2)   read,'Enter inner and outer sky radius (pixel units): ',skyrad endif else skyrad = float(skyrad) if ( N_elements(phpadu) LT 1 ) then $    read,'Enter scale factor in Photons per Analog per Digital Unit: ',phpadu Naper = N_elements( apr )                        ;Number of apertures Nstars = min([ N_elements(xc), N_elements(yc) ])  ;Number of stars to measure ms = strarr( Naper )       ;String array to display mag for each aperture if keyword_set(flux) then $          fmt = '(F8.1,1x,A,F7.1)' else $           ;Flux format          fmt = '(F9.3,A,F5.3)'                  ;Magnitude format fmt2 = '(I5,2F8.2,F7.2,3A,3(/,28x,4A,:))'       ;Screen format

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -