📄 ct2lst.pro
字号:
PRO CT2LST, lst, lng, tz, tme, day, mon, year;+; NAME:; CT2LST; PURPOSE:; To convert from Local Civil Time to Local Mean Sidereal Time.;; CALLING SEQUENCE:; CT2LST, Lst, Lng, Tz, Time, [Day, Mon, Year] ; or; CT2LST, Lst, Lng, dummy, JD;; INPUTS:; Lng - The longitude in degrees (east of Greenwich) of the place for ; which the local sidereal time is desired, scalar. The Greenwich ; mean sidereal time (GMST) can be found by setting Lng = 0.; Tz - The time zone of the site in hours, positive East of the Greenwich; meridian (ahead of GMT). Use this parameter to easily account ; for Daylight Savings time (e.g. -4=EDT, -5 = EST/CDT), scalar; This parameter is not needed (and ignored) if Julian date is ; supplied. ***Note that the sign of TZ was changed in July 2008; to match the standard definition.*** ; Time or JD - If more than four parameters are specified, then this is ; the time of day of the specified date in decimal hours. If ; exactly four parameters are specified, then this is the ; Julian date of time in question, scalar or vector;; OPTIONAL INPUTS:; Day - The day of the month (1-31),integer scalar or vector; Mon - The month, in numerical format (1-12), integer scalar or vector; Year - The 4 digit year (e.g. 2008), integer scalar or vector;; OUTPUTS:; Lst The Local Sidereal Time for the date/time specified in hours.;; RESTRICTIONS:; If specified, the date should be in numerical form. The year should; appear as yyyy.;; PROCEDURE:; The Julian date of the day and time is question is used to determine; the number of days to have passed since 0 Jan 2000. This is used; in conjunction with the GST of that date to extrapolate to the current; GST; this is then used to get the LST. See Astronomical Algorithms; by Jean Meeus, p. 84 (Eq. 11-4) for the constants used.;; EXAMPLE:; Find the Greenwich mean sidereal time (GMST) on 2008 Jul 30 at 15:53 pm; in Baltimore, Maryland (longitude=-76.72 degrees). The timezone is ; EDT or tz=-4;; IDL> CT2LST, lst, -76.72, -4,ten(15,53), 30, 07, 2008;; ==> lst = 11.356505 hours (= 11h 21m 23.418s);; The Web site http://tycho.usno.navy.mil/sidereal.html contains more; info on sidereal time, as well as an interactive calculator.; PROCEDURES USED:; jdcnv - Convert from year, month, day, hour to julian date;; MODIFICATION HISTORY:; Adapted from the FORTRAN program GETSD by Michael R. Greason, STX, ; 27 October 1988.; Use IAU 1984 constants Wayne Landsman, HSTX, April 1995, results ; differ by about 0.1 seconds ; Longitudes measured *east* of Greenwich W. Landsman December 1998; Time zone now measure positive East of Greenwich W. Landsman July 2008; Remove debugging print statement W. Landsman April 2009;- On_error,2 compile_opt idl2 if N_params() LT 3 THEN BEGIN print,'Syntax - CT2LST, Lst, Lng, Tz, Time, Day, Mon, Year' print,' or' print,' CT2LST, Lst, Lng, Tz, JD' return endif; If all parameters were given, then compute; the Julian date; otherwise assume it is stored; in Time.; IF N_params() gt 4 THEN BEGIN time = tme - tz jdcnv, year, mon, day, time, jd ENDIF ELSE jd = double(tme);; Useful constants, see Meeus, p.84; c = [280.46061837d0, 360.98564736629d0, 0.000387933d0, 38710000.0 ] jd2000 = 2451545.0D0 t0 = jd - jd2000 t = t0/36525;; Compute GST in seconds.; theta = c[0] + (c[1] * t0) + t^2*(c[2] - t/ c[3] );; Compute LST in hours.; lst = ( theta + double(lng))/15.0d neg = where(lst lt 0.0D0, n) if n gt 0 then lst[neg] = 24.D0 + (lst[neg] mod 24) lst = lst mod 24.D0; RETURN END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -