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

📄 dao_value.pro

📁 basic median filter simulation
💻 PRO
字号:
FUNCTION  DAO_VALUE, XX, YY, GAUSS, PSF, DVDX, DVDY;+; NAME:;	DAO_VALUE; PURPOSE:;	Returns the value of a DAOPHOT point-spread function at a set of points.; EXPLANATION:;	The value of the point-spread function is the sum of a;	two-dimensional integral under a bivariate Gaussian function, and ;	a value obtained by interpolation in a look-up table.  DAO_VALUE will;	optionally compute the derivatives wrt X and Y;; CALLING SEQUENCE:;	Result = DAO_VALUE( xx, yy, gauss, psf, [ dvdx, dvdy ] );; INPUTS:;	XX,YY   - the real coordinates of the desired point relative ;		to the centroid of the point-spread function.;	GAUSS  -  5 element vector describing the bivariate Gaussian;	GAUSS(0)- the peak height of the best-fitting Gaussian profile.;	GAUSS(1,2) - x and y offsets from the centroid of the point-spread ;		function to the center of the best-fitting Gaussian.;	GAUSS(3,4) - the x and y sigmas of the best-fitting Gaussian.;	PSF  -  a NPSF by NPSF array containing the look-up table.;; OUTPUTS:;    RESULT - the computed value of the point-spread function at;             a position XX, YY relative to its centroid (which ;             coincides with the center of the central pixel of the;             look-up table).;; OPTIONAL OUTPUTS:;       DVDX,DVDY - the first derivatives of the composite point-spread;             function with respect to x and y.;; NOTES; 	although the arguments XX,YY of the function DAO_VALUE;	are relative to the centroid of the PSF, the function RINTER which;	DAO_VALUE calls requires coordinates relative to the corner of the ;	array (see code).;; PROCEDURES CALLED:;	DAOERF, RINTER(); REVISON HISTORY:;	Adapted to IDL by B. Pfarr, STX, 11/17/87 from 1986 STSDAS version;	of DAOPHOT;	Converted to IDL V5.0   W. Landsman   September 1997;- s = size(psf) npsf = s[1] half = float(npsf-1)/2  x = 2.*xx + half   ;Initialize y = 2.*yy + half; X and Y are the coordinates relative to the corner of the look-up table, ; which has a half-pixel grid size.   if ( (min(x) LT 1.) or ( max(x) GT npsf-2.) or  $      (min(y) LT 1.) or ( max(y) GT npsf-2.) ) then begin         message,'X,Y positions too close to edge of frame',/INF         return,xx*0  endif; Evaluate the approximating Gaussian.; Then add a value interpolated from the look-up table to the approximating; Gaussian.  Since the lookup table has a grid size of one-half pixel in each; coordinate, the spatial derivatives must be multiplied by two to yield; the derivatives in units of ADU/pixel in the big frame. if N_params() GT 4 then begin   ;Compute derivatives?     DAOERF, xx, yy, gauss, e, pder      value = e + RINTER( psf, x, y, dfdx, dfdy)     dvdx = 2.*dfdx - pder[*,1]     dvdy = 2.*dfdy - pder[*,2]            endif else begin       DAOERF, xx, yy, gauss, e     value = e + RINTER(psf,x,y) endelse return, value end                                             

⌨️ 快捷键说明

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