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

📄 arrows.pro

📁 basic median filter simulation
💻 PRO
字号:
pro arrows,h,xcen,ycen,thick=thick,charsize=charsize,arrowlen=arrowlen, $             color=color,NotVertex=NotVertex,Normal = normal,Data=data,font=font;+; NAME:;      ARROWS; PURPOSE:;      To display "weathervane" directional arrows on an astronomical image ; EXPLANATION:;      Overlays a graphic showing orientation of North and East.;; CALLING SEQUENCE:;      ARROWS,h, [ xcen, ycen, ARROWLEN= , CHARSIZE=  COLOR= , /DATA;                              FONT=, /NORMAL, /NOTVERTEX, THICK=  ];; INPUTS:;       h - FITS header array, must include astrometry;; OPTIONAL INPUTS:;       xcen,ycen - numeric scalars, specifying the center position of;		arrows.   Position in device units unless the /NORMALIZED ;		keyword is specified.   If not supplied, then ARROWS;		will prompt for xcen and ycen;; OPTIONAL KEYWORD INPUTS:;       arrowlen  - length of arrows in terms of normal Y size of vector-drawn;                     character,  default  = 3.5, floating point scalar;       charsize  - character size, default = 2.0, floating point scalar;       color     - color that the arrows and NE letters should be.  Default;                    value is !P.COLOR;       Data - if this keyword is set and nonzero, the input center (xcen,;                 ycen) is understood to be in data coordinates;       font - IDL vector font number (1-20) to use to display NE letters.;                 For example, set font=13 to use complex italic font.;       NotVertex - Normally (historically) the specified xcen,ycen indicated;                   the position of the vertex of the figure.  If this;                   keyword is set, the xcen,ycen coordinates refer to a sort;                   of 'center of mass' of the figure.  This allows the;                   figure to always appear with the area irregardless of;                   the rotation angle.;       Normal - if this keyword is set and nonzero, the input center ;                (xcen,ycen) is taken to be in normalized coordinates.   The;                default is device coordinates.;       thick     - line thickness, default = 2.0, floating point scalar; OUTPUTS:;       none; EXAMPLE:;       Draw a weathervane at (400,100) on the currently active window, ;       showing the orientation of the image associated with a FITS header, hdr;;       IDL> arrows, hdr, 400, 100;; METHOD:;       Uses EXTAST to EXTract ASTrometry from the FITS header.   The ;       directions of North and East are computed and the procedure;       ONE_ARROW called to create the "weathervane".;; PROCEDURES USED:;       GETROT - Computes rotation from the FITS header;       ONE_ARROW - Draw a labeled arrow	;       ZPARCHECK; REVISON HISTORY:;       written by B. Boothman 2/5/86 ;       Recoded with new procedures ONE_ARROW, ONE_RAY.  R.S.Hill,HSTX,5/20/92;       Added separate determination for N and E arrow to properly display;         arrows irregardless of handedness or other peculiarities and added;         /NotVertex keyword to improve positioning of figure. E.Deutsch 1/10/93;       Added /DATA and /NORMAL keywords W. Landsman      July 1993;       Recognize GSSS header    W. Landsman       June 1993;       Added /FONT keyword W. Landsman           April 1995;       Modified to work correctly for COLOR=0  J.Wm.Parker, HITC   1995 May 25;       Work correctly for negative CDELT values   W. Landsman   Feb. 1996;       Converted to IDL V5.0   W. Landsman   September 1997;       Use GETROT to compute rotation   W. Landsman    June 2003;       Restored /NotVertex keyword which was not working after June 2003 change;                  W. Landsman  January 2004;-  On_error,2                            ;Return to caller  if (N_params() LT 1) then begin     print,'Syntax - ' + $             'ARROWS, hdr, [ xcen, ycen, ARROWLEN= , CHARSIZE=  COLOR= , /DATA'    print,'                        FONT=, /NORMAL, /NotVertex, THICK=  ]'    print,'         hdr - FITS header with astrometry'    return  endif else zparcheck,'ARROWS',h,1,7,1,'FITS header array'  if ( N_params() LT 3 ) then $    read,'Enter x, y values for center of arrows: ',xcen,ycen  if not keyword_set( THICK ) then    thick    = 2.0  if not keyword_set( CHARSIZE ) then charsize = 2.0  if not keyword_set( ARROWLEN ) then arrowlen = 3.5  if (n_elements(COLOR) eq 0) then color = !P.COLOR  if not keyword_set( NotVertex ) then NotVertex=0;  Derive Position Angles for North and East separately  getrot,h,npa, cdelt,/SILENT  sgn = 1 - 2*(cdelt[0]*cdelt[1] GT 0)   epa = npa + sgn*90   ;  Make arrows reasonable size depending on device  arrowlen_dev = arrowlen*!D.y_ch_size  arrowsize = [arrowlen_dev, arrowlen_dev/3.5, 35.0]  ; See one_arrow.pro  if keyword_set( NORMAL) then begin	newcen = convert_coord( xcen, ycen, /NORMAL, /TO_DEVICE)        xcent = newcen[0]        ycent = newcen[1]  endif else if keyword_set( DATA) then begin	newcen = convert_coord( xcen, ycen, /DATA, /TO_DEVICE)        xcent = newcen[0]        ycent = newcen[1]  endif else begin         xcent=xcen & ycent=ycen  endelse ;  Adjust Center to 'Center of Mass' if NotVertex set if NotVertex then begin    rot = npa/!RADEG    dRAdX = cdelt[0]*cos(rot)    dRAdY = cdelt[1]*sin(rot)    dDECdX = cdelt[0]*sin(rot)     dDECdY = cdelt[1]*cos(rot)    RAnorm = sqrt( dRAdX^2 + dRAdY^2 )    DECnorm = sqrt(dDECdX^2 + dDECdY^2 )    xcent = xcen - (dRAdX+dDECdX)/2/RAnorm*arrowsize[0]    ycent = ycen - (dRAdY+dDECdY)/2/DECnorm*arrowsize[0]    endif;  Draw arrows  one_arrow, xcent, ycent,  90+NPA, 'N', font= font, $    charsize=charsize, thick=thick, color=color, arrowsize=arrowsize  one_arrow, xcent, ycent, 90+EPA, 'E', font = font, $    charsize=charsize, thick=thick, color=color, arrowsize=arrowsize  return  end

⌨️ 快捷键说明

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