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

📄 ticlabels.pro

📁 basic median filter simulation
💻 PRO
字号:
pro ticlabels, minval, numtics, incr, ticlabs, RA=ra, DELTA=delta, FONT=font;+; NAME:;	TICLABELS; PURPOSE:;	Create tic labels for labeling astronomical images.; EXPLANATION: ;	Used to display images with right ascension or declination;	axes.  This routine creates labels for already determined tic;	marks (every other tic mark by default);; CALLING SEQUENCE:;	TICLABELS, minval, numtics, incr, ticlabs, [ RA = ,DELTA = ];; INPUTS:;	minval  - minimum value for labels (degrees);	numtics - number of tic marks;	incr    - increment in minutes for labels;; OUTPUTS:;	ticlabs - array of charater string labels;; OPTIONAL INPUT KEYWORDS:;	/RA - if this keyword is set then the grid axis is assumed to be;		a Right Ascension.   Otherwise a declination axis is assumed;	DELTA - Scalar specifying spacing of labels.   The default is ;		DELTA = 2 which means that a label is made for every other tic;		mark.  Set DELTA=1 to create a label for every tic mark.;       FONT - scalar font graphics keyword (-1,0 or 1) for text;; PROCEDURES USED:;	RADEC;; RESTRICTIONS:;	Invalid for wide field (> 2 degree) images since it assumes that a ;	fixed interval in Y (or X) corresponds to a fixed interval in Dec ;	(or RA);; REVISON HISTORY:;	written by B. Pfarr, 4/15/87;	Added DELTA keywrd for compatibility with IMCONTOUR W. Landsman Nov 1991;	Added nicer hms and dms symbols when using native PS fonts Deutsch 11/92;	Added Patch for bug in IDL <2.4.0 as explained in NOTES E. Deutsch 11/92;	Fix when crossing 0 dec or 24h RA;	Fix DELTA keyword so that it behaves according to the documentation;			W. Landsman  Hughes STX,  Nov 95  ;       Allow sub arcsecond formatting  W. Landsman   May 2000;       Better formatting for non-unity DELTA values  W. Landsman July 2004;       Allow FONT keyword to be passed.  T. Robishaw Apr. 2006;       Write 0h rather than 24h  W. L. August 2008;- On_error,2 compile_opt idl2;                               convert min to hours, minutes, secs  if N_params() LT 4 then begin     print,'Syntax - ticlabels, minval, numtics, incr, ticlabs, ' + $                     '[ /RA  ,DELTA = ]'     return  endif  if N_elements(FONT) eq 0 then font = !p.font  ticlabs = replicate(' ',numtics )  if minval LT 0 then begin 	neg = -1 & sgn = '-'  endif else begin	neg = 1  & sgn = ''   endelse   firstval = minval  if not keyword_set( DELTA ) then delta = 2  if keyword_set( RA ) then begin                  ;Define RA tic symbols       radec, firstval, 0, minh, minm, mins, dum1, dum2, dum3        sd = '!Ah!N' & sm = '!Am!N'  & ss = '!As!N'        if (!d.name eq 'PS') and (font eq 0) then begin    ;Postscript fonts?         sd ='!Uh!N' & sm='!Um!N' & ss='!Us!N'          endif endif else begin        radec, 0, firstval, dum1, dum2, dum3, minh, minm, mins       minm = abs(minm)       mins = abs(mins)       sd = "!Ao!N" & sm = "'" &  ss = "''"       if (!d.name eq 'PS') and (font eq 0) then begin         RtEF = '!X'         sd = '!9' + string(176b) + RtEF          sm = '!9' + string(162b) + RtEF         ss = '!9' + string(178b) + RtEF       endif  endelse      inc1 = incr*60.0d      inc = incr*60.0d*delta           ;increment in arc seconds      if abs(inc1) GE 1.0 then begin              mins = round(mins)            sfmt = '(i2.2)'       endif else $           if abs(inc1) GT 0.1 then  sfmt = '(f4.1)' else sfmt = '(f5.2)'      if abs(inc) GE 1.0 then  inc = round(inc)     while (mins GE 60) do begin            mins = mins - 60            minm = minm + 1     endwhile          if (minm ge 60) then begin             minm = minm - 60             minh = minh + neg     endif if (abs(mins) GT 1) or (abs(incr) LT 1.0/DELTA)  then begin      ;Seconds    ticlabs[0] = sgn + string( abs(minh), '(i2.2)') + sd + ' ' + $            string(minm,'(i2.2)') + sm + ' ' + string( mins, sfmt) + ss          for i = delta,numtics-1, delta do begin         mins = mins + neg*inc         if ( ( mins GE 60) or (mins LT 0) ) then begin            while ( mins GE 60 ) do begin                mins = mins - 60                minm = minm + 1            endwhile            while ( mins LT 0 ) do begin                mins = mins + 60                minm = minm - 1             endwhile             if (minm ge 60) then begin             minm = minm - 60             minh = minh + neg             ticlabs[i]= sgn + string(abs(minh),'(i2.2)') + sd + ' ' + $                          string(minm,'(i2.2)') + sm         endif else if (minm LT 0) then begin	     if minh EQ 0 then begin		if keyword_set(RA) then begin			minh = 23			minm = minm + 60		endif else begin		 	 minm = -minm	                 neg = -neg		         if neg EQ 1 then sgn = '' else sgn = '-'		endelse	     endif else begin	             minm = minm + 60	             minh = minh - neg             endelse	     ticlabs[i]= sgn + string(abs(minh),'(i2.2)') + sd + ' ' + $               string((minm),'(i2)') + sm + ' ' +string(mins,sfmt) + ss        endif else ticlabs[i] = string( minm, '(i2.2)' ) + sm + ' '+ $                         string( mins, sfmt) + ss         endif else ticlabs[i] = string( mins, sfmt ) + ss          endfor endif else $    if (abs(minm) gt 1) or (abs(incr) LT 60.0/DELTA) then begin ;MINUTES      inc = fix(incr*DELTA)      ticlabs[0] = sgn + string(abs(minh),'(i2.2)')+ sd+ ' ' + $		string(minm,'(i2.2)') + sm      for i = delta,numtics-1, delta do begin         minm = minm + neg*inc         if (minm ge 60) then begin             minm = minm - 60             minh = minh + neg	     while minh LT 0 do minh = minh + 24	    while minh GE 24 do minh = minh - 24             ticlabs[i]= sgn + string(abs(minh),'(i2.2)') + sd + ' ' + $			string(minm,'(i2.2)') +sm         endif else if (minm LT 0) then begin	     if minh EQ 0 then begin             ;Cross zero Dec or RA?		if keyword_set(RA) then begin			minh = 23			minm = minm + 60		endif else begin			 minm = -minm	                 neg = -neg		         if neg EQ 1 then sgn = '' else sgn = '-'		endelse	     endif else begin	             minm = minm + 60	             minh = minh - neg             endelse	     ticlabs[i]= sgn + string(abs(minh),'(i2.2)') + sd + ' ' + $			string((minm),'(i2.2)') + sm      endif else ticlabs[i] = string(minm,'(i2.2)')      endfor endif else begin                        ;Hours/Degrees      inc = fix(DELTA*incr/60.0)      ticlabs[0] = strtrim(minh,2) + sd       for i = delta,numtics-1, delta do begin          minh = minh + inc	  if keyword_set(RA) then begin	  		while minh LT 0 do minh = minh + 24		while minh GE 24 do minh = minh - 24          endif          ticlabs[i] = strtrim( minh,2) + sd      endfor       endelse return     end

⌨️ 快捷键说明

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