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

📄 hreverse.pro

📁 basic median filter simulation
💻 PRO
字号:
pro hreverse, oldim, oldhd, newim, newhd, subs, SILENT = silent, ERRMSG= errmsg;+; NAME:;       HREVERSE; PURPOSE:;       Reverse an image about either dimension and update FITS astrometry; EXPLANATION:;       Reverse an image about either the X or Y axis, and create a new ;       header with updated astrometry for the reversed image.;; CALLING SEQUENCE:;       HREVERSE,oldim,oldhd, [ subs, /SILENT ]   ;Update input image and header;               or;       HREVERSE, oldim, oldhd, newim, newhd, [ subs, /SILENT ]   ;; INPUTS:;       OLDIM - the original image array;       OLDHD - the original image header;; OPTIONAL INPUTS:;       SUBS - Subs equals 1 to reverse the order of the X dimension,;               2 to reverse Y order.  If omitted, then HREVERSE will;               prompt for this scalar parameter.;; OPTIONAL OUTPUTS:;       NEWIM - the rotated image, with the same dimensions as Oldim ;       NEWHD - header for newim containing updated astrometry info;               If output parameters are not supplied, the program;               will modify the input parameters OLDIM and OLDHD;               to contain the rotated image and updated header.;; OPTIONAL KEYWORD INPUT:;       SILENT - if set and non-zero, then informative messages are suppressed.;; OPTIONAL KEYWORD OUTPUT:;       ERRMSG - If this keyword is supplied, then any error mesasges will be;               returned to the user in this parameter rather than depending on;               on the MESSAGE routine in IDL.   If no errors are encountered;               then a null string is returned.               ;; SIDE EFFECTS:;       A right-handed coordinate system is converted into a left-;       handed one, and vice-versa.;; PROCEDURE:;       The User's Library procedure REVERSE is used to reverse the image.;       The CD and CRPIX header parameters are updated for the new header.;       For AIPS type astrometry, the CDELT parameters are also updated.;       A history record is also added to the header;; PROCEDURES USED:;       CHECK_FITS, EXTAST, REVERSE(), STRN(), SXADDPAR ; MODIFICATION HISTORY:;       Written, Aug. 1986 W. Landsman, STI Corp.;       Error modifying CROTA angles corrected     9-23-88;       Added format keyword, J. Isensee, July, 1990;       Work for ST Guide Star images, W. Landsman   HSTX, May 1995;       Compute CRPIX1 correctly for X reversal   W. Landsman HSTX August 1995;       Converted to IDL V5.0   W. Landsman   September 1997;       Added ERRMSG, Use double precision formatting, W. Landsman April 2000;       Recognize PC00n00m astrometry matrix   W. Landsman   December 2001;-  On_error, 2 npar = N_params() if npar LE 1 then begin     print,'Syntax: HREVERSE, oldim, oldhd, [ subs, /SILENT, ERRMSG = ]'     print,'    or  HREVERSE, oldim, oldhd, newim, newhd, [ subs, /SILENT]'     return endif  save_err = arg_present(errmsg)     ;Does user want error msgs returned?;                                    Check for valid 2-D image & header check_FITS, oldim, oldhd, dimen, /NOTYPE, ERRMSG = errmsg  if errmsg NE '' then begin        if not save_err then message,'ERROR - ' + errmsg,/CON        return  endif  if N_elements(dimen) NE 2 then begin         errmsg =  'ERROR - Input image array must be 2-dimensional'        if not save_err then message,'ERROR - ' + errmsg,/CON        return endif  xsize = dimen[0]  &  ysize = dimen[1] if npar EQ 3 then subs = newim  READSUBS: if (npar NE 3) and (npar NE 5) then $ read,'Enter 1 to reverse X dimension, 2 to reverse Y dimension: ',subs if  ( subs NE 2 ) and ( subs NE 1 ) then begin        message,'ERROR - Illegal Value of Subs parameter',/CON        if npar then npar = npar -1     ;Make npar even        goto, READSUBS     endif newhd = oldhd axis_name = ['X','Y'] if not keyword_set(SILENT) then message, /INF, $'Now reversing ' + strn(xsize) + ' by ' + strn(ysize) + ' image about ' + $    axis_name[subs-1] + ' dimension'if npar GE 4 then newim = reverse( oldim,subs ) else $                  oldim = reverse( oldim,subs ) label = 'HREVERSE: ' + strmid(systime(),4,20) sxaddpar, newhd, 'HISTORY', label+ $         ' Reversed About '+ axis_name[SUBS-1] + ' Dimension'; Update astrometry info if it exists extast, oldhd, astr, noparams if noparams LT 0 then goto, DONE  if subs EQ 1 then begin         if strmid( astr.ctype[0],5,3) EQ 'GSS' then begin                cnpix = -astr.xll -xsize                sxaddpar, newhd, 'CNPIX1', cnpix                sxaddpar, newhd, 'XPIXELSZ', -astr.xsz         endif else begin                 crpix1 = xsize  - (astr.crpix[0]-1)                 sxaddpar, newhd, 'CRPIX1', crpix1         if (noparams LT 2) or (noparams EQ 3) then $                sxaddpar, newhd, 'CDELT1', -astr.cdelt[0] $         else begin           ;If so, then convert them                 sxaddpar, newhd, 'CD1_1', -astr.cd[0,0]                 sxaddpar, newhd, 'CD2_1', -astr.cd[1,0]         endelse  endelse endif else  begin         if strmid(astr.ctype[0],5,3) EQ 'GSS' then begin                cnpix = -astr.yll -ysize                sxaddpar, newhd, 'CNPIX2', cnpix                sxaddpar, newhd, 'YPIXELSZ', -astr.ysz         endif else begin                 crpix2 = ysize  - (astr.crpix[1]-1)                 sxaddpar, newhd, 'CRPIX2', crpix2         if (noparams LT 2) or (noparams EQ 3) then $                      sxaddpar, newhd, 'CDELT2', -astr.cdelt[1] $         else begin           ;If so, then convert them                 sxaddpar, newhd, 'CD1_2', -astr.cd[0,1]                 sxaddpar, newhd, 'CD2_2', -astr.cd[1,1]         endelse          endelse endelseDONE: if npar LE 3 then oldhd = newhd                ;update old headerreturnend

⌨️ 快捷键说明

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