j15b0dif $SMEI/user/bjackson/c3_differencer/j15b0dif.pro
[Previous] [Next]
 NAME:
	j15b0dif
 CALLING SEQUENCE:
	pro j15b0dif,imn=imn,imset=imset,img=img
 CALLS: ***
	WRITEFITS


j15bdif $SMEI/user/bjackson/c3_differencer/j15bdif.pro
[Previous] [Next]
 NAME:
	j15bdif
 CALLING SEQUENCE:
	pro j15bdif,imn=imn,imset=imset,img=img
 CALLS: ***
	WRITEFITS


j15dif $SMEI/user/bjackson/c3_differencer/j15dif.pro
[Previous] [Next]
 NAME:
	j15dif
 CALLING SEQUENCE:
	pro j15dif,imn=imn,imset=imset,img=img
 CALLS: ***
	WRITEFITS


j15sum_dif $SMEI/user/bjackson/c3_differencer/j15sum_dif.pro
[Previous] [Next]
 NAME:
	j15sum_dif
 CALLING SEQUENCE:
	pro j15sum_dif,imn=imn,imset=imset,img=img
 CALLS: ***
	WRITEFITS


jpl_body $SMEI/ucsd/gen/idl/ephem/jpl_body.pro
[Previous] [Next]
 NAME:
	jpl_body
 PURPOSE:
	Used to set the 'body' and 'center' input to the main JPL Lunar
	and planetary ephemeris routine jpl_eph
 CATEGORY:
	smei/gen/idl/ephem, JPL Lunar and Planetary ephemeris
 CALLING SEQUENCE:
	FUNCTION jpl_body, number   , $
	    sun     = sun	, $
	    mercury = mercury	, $
	    venus   = venus	, $
	    earth   = earth	, $
	    mars    = mars	, $
	    jupiter = jupiter	, $
	    saturn  = saturn	, $
	    uranus  = uranus	, $
	    neptune = neptune	, $
	    pluto   = pluto	, $
	    moon    = moon	, $
	    ssbary  = ssbary	, $
	    embary  = embary	, $
	    nutations=nutations , $
	    librations=librations,$
	    count   = count	, $
	    string  = string
 OPTIONAL INPUT PARAMETERS:
	Only one of the following keywords should be set. If none is set then
	a list of all names is returned.

	/sun
	/mercury
	/venus
	/earth
	/mars
	/jupiter
	/saturn
	/uranus
	/neptune
	/pluto
	/moon		selects the corresponding body

	/ssbary 	selects the solar system barycenter
	/embary 	selects the Earth-Moon barycenter

	/nutations	selects /nutations (may not be present in ephemeris file?)
	/librations	selects /librations (may not be present in ephemeris file?)
 OUTPUTS:
	Result		    scalar; type: integer
			    integer value corresponding to selected location
 OPTIONAL OUTPUTS:
	count=count	scalar; type: integer
			    number of bodies in JPL ephem (Sun, planets and Moon)
			    These take the first 'count' position in the array
			    returned by jpl_body()
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, IsType, where_common
 CALLED BY:
	BZero, CvSky, CvSky_GSE, CvSky_GSEQ, CvSky_GSM, CvSky_RTN, EarthSky3DLoc
	EarthTransit3DLoc, GeographicInfo, InsituTimeSeries, PlotEarthSkymap [2]
	PlotPlanarCut, PlotPolarSkymap, PlotSolarDisk, RemoteView, RemoteView_BodyLoc
	RemoteView_Init_Display, RemoteView_Init_View, allsky [1], allsky [2]
	allsky [3], allsky_f, aurora, big_body, big_eph, big_orbit, forecast, forecast_cfg
	forecast_movie, haystack_2006, jpl_eph, jpl_phase, jpl_test, maygeometry, mpc_eph
	mpc_orbit_eph, qEphem_State, qRemoteView, qRemoteView_Pick, run_movie
	smei_frm_cvhdr, smei_frm_eclipse, smei_frm_summary, smei_frm_where
	smei_hdr_plot, smei_sky, smei_sky_track, smei_star_fit, smei_star_test
	smei_zld_model, smei_zld_remove [1], smei_zld_remove [2], stardistance
	vu_insitu, vu_movie, vu_point_source, vu_solardisk, vu_synopticmap, vu_timeseries
	vu_vox_draworbit, vu_vox_write
 SEE ALSO:
	jpl_eph
 PROCEDURE:
	The numbering convention is:
	0 = Sun 	 8 = Neptune
	1 = Mercury	 9 = Pluto
	2 = Venus	10 = Moon
	3 = Earth	13 = Solar-system barycenter
	4 = Mars	14 = Earth-Moon barycenter
	5 = Jupiter	11 = Nutations (longitude and obliquity)
	6 = Saturn	12 = Librations (if on file)
	7 = Uranus

	A call to jpl_eph will typically contain two calls to jpl_body, e.g.
	    P = jpl_eph( UT, jpl_body(/earth), center=jpl_body(/sun))
	returns heliocentric position and velocity coordinates for Earth.
 MODIFICATION HISTORY:
	DEC-2002, Paul Hick (UCSD/CASS)
	OCT-2006, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added keyword /string


jpl_close $SMEI/ucsd/gen/idl/ephem/jpl_close.pro
[Previous] [Next]
 NAME:
	jpl_close
 PURPOSE:
	Close an ephemeris file
 CATEGORY:
	ucsd/gen/idl/ephem
 CALLING SEQUENCE:
	PRO jpl_close, kill=kill
 INPUTS:
	(none)
 OPTIONAL INPUTS:
	/kill
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, destroyvar
 CALLED BY:
	PlotEarthSkymap [2], allsky [1], allsky [2], allsky [3], allsky_f, jpl_eph, jpl_test
 SEE ALSO:
	jpl_init
 COMMON BLOCKS:
	common	JPL_INFO, JPL_PNTR	; Pointer to heap variable
 PROCEDURE:
 >	Common block is filled by jpl_init
 >	jpl_close closes an open ephemeris file with logical unit
	number (*JPL_PNTR).iU.
 > If /kill is set then the heap variable to which JPL_PNTR points
	is destroyed.
 MODIFICATION HISTORY:
	AUG-1999, Paul Hick (UCSD/CASS)
	FEB-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Introduced /kill keyword


jpl_eph $SMEI/ucsd/gen/idl/ephem/jpl_eph.pro
[Previous] [Next]
 NAME:
	jpl_eph
 PURPOSE:
	Access JPL planetary ephemeris DE405
	Reads the JPL ephemeris and provides position and velocity vectors of 'body' relative to
	'center' at the time ET by interpolating on the ephemeris data
 CATEGORY:
	smei/gen/idl/ephem, JPL Lunar and Planetary Ephemeris
 CALLING SEQUENCE:
	FUNCTION jpl_eph, UT, body, $
	    center	= center    , $
	    km		= km	    , $
	    loud	= loud	    , $
	    location	= location  , $
	    speed	= speed     , $
	    to_sphere	= to_sphere , $
	    to_ecliptic = to_ecliptic,$
	    degrees	= degrees   , $
	    precess	= precess   , $
	    get 	= get	    , $
	    noclose	= noclose   , $
	    test	= test
 INPUTS:
	UT	array[2,n]; type: double
		scalar	  ; type: double
		array[n]  ; type: double
		array[n]  ; type: time structure
		    Ephemeris times specified as Julian date where interpolated positions are needed.

		    The input times are usually specified as a pair of numbers in days
		    Generally, ET[0] will be set to some convenient fixed epoch (specified as a
		    Julian day number) used as 'time origin' for the integrations, and ET[1] will
		    be the elapsed time since ET[0] (in days).

		    Any time ET[0]+ET[1] falling in the time covered by the ephemeris file is OK

		    For maximum precision:
		    set ET[0] to the most recent midnight at or before the interpolation epoch and
		    set ET[1] to the fractional part of the day elapsed since ET[0]

		    Special cases for the input argument are:
		    A double scalar is interpreted as ET = [ET,0]
		    A double array[n] (with n NOT equal 2) is interpreted as n pairs [ET[i],0], i=0,n-1
		    For an array of time structures the midnight, T0, preceding ET[0] is used as epoch;
		    then elapsed times relative to this time origin are calculate to set up the pairs
		    [T0,ET[i]] (i=0,n-1).

	body	scalar	    type: integer; default: 3 (Earth)
		    index of the 'target' body
	center	scalar	    type: integer: default: 0 (Sun)
		    index of the center body

		    The numbering convention for body and center is:
		    0 = Sun	     8 = Neptune
		    1 = Mercury      9 = Pluto
		    2 = Venus	    10 = Moon
		    3 = Earth	    13 = Solar-system barycenter
		    4 = Mars	    14 = Earth-Moon barycenter
		    5 = Jupiter     11 = Nutations (longitude and obliquity)
		    6 = Saturn	    12 = Librations (if on file)
		    7 = Uranus

		    For nutations (body = 11) and librations (body = 12), center is
		    ignored.
		    jpl_state returns the Earth-Moon barycenter state as body 3
		    This is moved to state 14. Then states 14 and 10 (geocentric
		    Moon) are combined to provide the state for Earth.
 OPTIONAL INPUT PARAMETERS:
	/km	    if set Sun, planets and Moon states are returned in
		    km and km/s; default is AU and AU/day
		    For nutations and librations the angle unit is always radians
	/loud	    passed to jpl_init. Prints some info read from ephemeris files
	/location   only return location of 'body'
	/speed	    only return speed of 'body'
	/to_sphere  return location in spherical coordinates (longitude, latitude, distance)
	/noclose    suppresses the call to jpl_close (closing the ephemeris file)
	/precess
	/to_ecliptic if set convert from equatorial to ecliptic coordinates
 OUTPUTS:
	Result	    array[6]	type: double
		    contains positions and velocity vector of 'body' relative to
		    'center'. Units depend on setting of /km for Sun, planets and
		    Moon. For librations units are radians and radians/day
		    For nutations only the first four words are set to nutation and
		    nutation rates with units radians and radians/day
		    If the ephemeris could not be accessed or ET was out of the
		    range covered by the ephemeris than R is filled with NaN values
		    (!values.d_nan).
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	AngleRange, BadValue, CV_COORD, CvPrecess, CvSky, InitVar, IsTime, IsType, TimeGet, TimeOp
	TimeSet, TimeUnit, jpl_body, jpl_close, jpl_init, jpl_state
 CALLED BY:
	Carrington, PlotEarthSkymap [2], RemoteView_BodyLoc, allsky [1], allsky [2]
	allsky [3], allsky_f, big_eph, coriolis_map, haystack_2006, jpl_phase, jpl_test
	mpc_eph, mpc_orbit_eph, smei_frm_cvhdr, smei_frm_where, smei_star_fit
	stardistance, usno_eph
 SEE ALSO:
	jpl_close, jpl_init, jpl_interp
 COMMON BLOCKS:
	common	JPL_INFO, JPL_PNTR
 RESTRICTIONS:
	DE405 covers JED 2305424.50  (1599 DEC 09)  to	JED 2525008.50	(2201 FEB 20)
 PROCEDURE:
 >	DE405 includes both nutations and libration, and covers

	JED 2305424.50	(1599 DEC 09)  to  JED 2525008.50  (2201 FEB 20)

	It is based upon the International Celestial Reference Frame (ICRF), which
	apparently is within 0.01 arcseconds of the dynamical equator and
	equinox of J2000.
 >	The ephemeris file is opened on the first call to jpl_eph.
 >	Unless /noclose is set, the ephemeris file is closed before returning.
	The JPL_PNTR heap variable will still keep the last record (with 32 days
	of ephemeris data) in memory. To destroy the heap variable an explicit
	call jpl_close,/kill is required.
 MODIFICATION HISTORY:
	AUG-1999, Paul Hick (UCSD/CASS)
	    Translation of JPL Fortran software provided with the ephemeris package
	DEC-2002, Paul Hick  (UCSD/CASS)
	    Modified to accept time structures as input, in addition to pairs of
	    double precision numbers for a Julian date.
	APR-2003, Paul Hick  (UCSD/CASS)
	    Added keywords to_sphere, degrees, speed and location
	FEB-2005, Paul Hick  (UCSD/CASS; pphick@ucsd.edu)
	    Fairly substantial rewrite to minimize the time that the ephemeris file
	    is kept open.
	APR-2009, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Bug fix. When body or center where set to 'SS-bary' or 'EM-bary' these
	    were mapped to integers 11 and 12, instead of 13 and 14.


jpl_init $SMEI/ucsd/gen/idl/ephem/jpl_init.pro
[Previous] [Next]
 NAME:
	jpl_init
 PURPOSE:
	Initialize a new ephemeris file
 CATEGORY:
	smei/gen/idl/ephem
 CALLING SEQUENCE:
	FUNCTION jpl_init, ET, JPL_PNTR, loud=loud, test=test
 INPUTS:
	ET(2)	    double  ephemeris time
	JPL_PNTR    pointer to structure with info for current
			    ephemeris file
 OPTIONAL INPUT PARAMETERS:
	 /loud		    if set some parameters read from the ephemeris file
			    are printed (used by jpl_test).
 OUTPUTS:
	OK	    =1: ephemeris file ready for next jpl_state call
		    =0: usually means ET is outside the range of the ephemeris
			(currently 1950-2050)
	JPL_PNTR    update pointer
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLED BY:
	jpl_eph
 COMMON BLOCKS:
	common	JPL_BUF, BUF_MAP	    ; File handle for assoc read
 CALLS: ***
	FILEPATH, InitVar, jpl_inside, jpl_read, who_am_i
 PROCEDURE:
 > IDL implementation of the JPL Lunar and Planetary Ephemeris package
 >	Ephemeris data files are searched for in the subdirectory 'jpl' of the directory
	where this file is located.
 > jpl_init opens the appropriate ephemeris file for time ET and reads
	the correct record in the pointer JPL_PNTR
 > The ephemeris file is accessed using BUF_MAP, an 1018-element
	double precesion array associated with a record in the ephemeris file.
 MODIFICATION HISTORY:
	AUG-1999, Paul Hick (UCSD/CASS)
	FEB-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_inside $SMEI/ucsd/gen/idl/ephem/jpl_inside.pro
[Previous] [Next]
 NAME:
	jpl_inside
 PURPOSE:
	Check whether time is inside current ephemeris file
 CATEGORY:
 CALLING SEQUENCE:
	NR = jpl_inside(ET,SS)
 INPUTS:
	ET(2)	    double	ephemeris time
	SS(2)	    double	time range of ephemeris file
 OUTPUTS:
	NR	    integer	record number in ephemeris file
				with data for time ET.
				NR=-1 if outside range.
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLED BY:
	jpl_init
 PROCEDURE:
 MODIFICATION HISTORY:
	FEB-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_interp $SMEI/ucsd/gen/idl/ephem/jpl_interp.pro
[Previous] [Next]
 NAME:
	jpl_interp
 PURPOSE:
	Differentiates and interpolates a set of Chebyshev coefficients to give
	position and velocity
 CATEGORY:
	smei/gen/idl/ephem; JPL Lunar and Planetary Ephemeris
 CALLING SEQUENCE:
	FUNCTION jpl_interp, BUF,T,NCF,NCM,NA,IFL,PV
 INPUTS:
	BUF	1st location of array of double Chebyshev coefficients of position
	T	T[1] is double fractional time in interval covered by
		coefficients at which interpolation is wanted (0 <= T[1] <= 1).
		T[2] is double length of whole interval in input time units
	NCF	# coefficients per component
	NCM	# components per set of coefficients
	NA	# sets of coefficients in full array
		(i.e, # sub-intervals in full interval)
	IFL	integer flag:	=1 for positions only
				=2 for position and velocity
 OUTPUTS:
	PV	array[NCM,IFL]; type: double
		    interpolated quantities requested.
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLED BY:
	jpl_state
 COMMON BLOCKS:
	common	JPL_INTERP_SAVE, PC, VC, TWOT, NP, NV
 PROCEDURE:
 MODIFICATION HISTORY:
	AUG-1999, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    adapted from JPL Fortran software


jpl_mag $SMEI/ucsd/gen/idl/ephem/jpl_mag.pro
[Previous] [Next]
 NAME:
	jpl_mag
 PURPOSE:
	Calculate apparent magnitude for body in JPL ephemeris
 CATEGORY:
	gen/idl/ephem
 CALLING SEQUENCE:
	FUNCTION jpl_mag, ut, body  , $
	    observer	= observer  , $
	    mag_body	= mag_body  , $
	    degrees	= degrees   , $
	    phase	= phase     , $
	    int_phase	= int_phase
 INPUTS:
	ut		array[ntime]; type: time structure
			    list of times for which phase angles are needed
	body		scalar or array[nbody]; type: integer
			    default: jpl_body(/moon)
			    body for which apparent magnitude is needed
 OPTIONAL INPUT PARAMETERS:
	observer=observer
			scalar or array[nobs]; type: integer
			    default: jpl_body(/earth)
	mag_body	same structure as 'body'; type: float
			    default: ([-26.73,-0.42,-4.40,-3.86,
					-1.52,-9.40,-8.88,-7.19,-6.87,-1.0,0.21])[body]
			    absolute magnitude of 'body'
	/degrees	if set the phase angle is output in degrees
			    (default: radians)
	int_phase=int_phase
			scalar; type: string
			    name of function used for the phase integral
			    Must be function with as only input argument
			    the phase angle in radians.
 OUTPUTS:
	Result		array[nbody,nobs,ntime]; type: float
			    (dummy dimensions are omitted)
			    apparent magnitude
 OPTIONAL OUTPUTS:
	phase		array[nbody,nobs,ntime]; type: float
			    (dummy dimensions are omitted)
			    phase angle as returned by jpl_phase
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, IsType, SuperArray, ToRadians, jpl_phase
 CALLED BY:
	qEphem_State, smei_star_fit
 PROCEDURE:
	Visual absolute magnitudes for all bodies in the JPL ephemeris
	are hardcoded. Override with the 'mag_body' keyword.
	The apperent magnitude calculation uses the phase integral
	for an ideal diffuse reflecting sphere by default.
	Override this using argument 'int_phase'

	The difference between jpl_eph and JPL's HORIZONS system is usally about ~.2-3, whereas the difference between
	an astronomical almanac and jpl_eph is usually on the order of ~.4-5.
 MODIFICATION HISTORY:
	NOV-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_parallax $SMEI/ucsd/gen/idl/ephem/jpl_parallax.pro
[Previous] [Next]
 NAME:
	jpl_parallax
 PURPOSE:
	Get size of parallax
 CATEGORY:
	gen/idl/ephem
 CALLING SEQUENCE:
    FUNCTION jpl_parallax, tt_or_rr, body=body, onebody=onebody, $
	    degrees=degrees, arcsec=arcsec
 INPUTS:
	tt
 OPTIONAL INPUT PARAMETERS:
	body=body
	/onebody
	/degrees
	/arcsec
 OUTPUTS:
	rr
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, IsTime, SubArray, big_eph
 PROCEDURE:
 MODIFICATION HISTORY:
	MAR-2007, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_phase $SMEI/ucsd/gen/idl/ephem/jpl_phase.pro
[Previous] [Next]
 NAME:
	jpl_phase
 PURPOSE:
	Calculate phase angle for body in JPL ephemeris
 CATEGORY:
	gen/idl/ephem
 CALLING SEQUENCE:
	FUNCTION jpl_phase, ut, body	, $
	    observer	= observer  , $
	    degrees	= degrees   , $
	    sun 	= sun	    , $
	    pos 	= pos
 INPUTS:
	ut		array[ntime]; type: time structure
			    list of times for which phase angles are needed
	body		scalar or array[nbody]; type: integer; default: jpl_body(/moon)
			    body for which phase is needed
 OPTIONAL INPUT PARAMETERS:
	observer=observer
			scalar or array[nobs]; type: integer; default: jpl_body(/earth)
			    body to used as observer location
	/degrees	if set the phase angle is returned in degrees
			    (default: radians)
 OUTPUTS:
	Result		scalar or array[nbody,nobs,ntime]; type: float
			    (dummy dimensions are omitted)
			    phase angles
 OPTIONAL OUTPUTS:
	sun		array[3,nbody,nobs,ntime]; type: float
			    (dummy dimensions are omitted)
			    rectangular ecliptic location of Sun in topocentric
			    coordinates of 'body' (AU)
	pos		array[3,nbody,nobs,ntime]; type: float
			    (dummy dimensions are omitted)
			    rectangular ecliptic location of observer in topocentric
			    coordinates of 'body' (AU)
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, SubArray, SuperArray, ToRadians, jpl_body, jpl_eph, scalarproduct
 CALLED BY:
	jpl_mag, smei_frm_summary, smei_hdr_plot
 PROCEDURE:
	The phase angle is defined as the angle Sun-body-observer
	The visible fraction of the disk of body as seen by observer
	is approximately 1-phase/180, so phase=0 is 'full' and
	phase=180 is 'new'.
	'waxing' means that the size of the visible disk is increasing,
	i.e. decreasing phase angle from 180 to 0; 'waning' means
	the size of the disk is decreasing i.e. phase angle is
	increasing from 0 to 180.
 MODIFICATION HISTORY:
	NOV-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_read $SMEI/ucsd/gen/idl/ephem/jpl_read.pro
[Previous] [Next]
 NAME:
	jpl_read
 PURPOSE:
	Read new record from open ephemeris file
 CATEGORY:
	ucsd/gen/idl/ephem
 CALLING SEQUENCE:
	FUNCTION jpl_read, NR, JPL_PNTR, BUF_MAP
 INPUTS:
	NR
	JPL_PNTR
	BUF_MAP
 OUTPUTS:
	(*JPL_PNTR).NRL
	(*JPL_PNTR).BUF
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLED BY:
	jpl_init
 PROCEDURE:
 MODIFICATION HISTORY:
	FEB-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_sizeofsun $SMEI/ucsd/gen/idl/ephem/jpl_sizeofsun.pro
[Previous] [Next]
 NAME:
	jpl_sizeofsun
 PURPOSE:
	Get size of half the solar disk in angular measure
 CATEGORY:
	gen/idl/ephem
 CALLING SEQUENCE:
    FUNCTION jpl_sizeofsun, tt_or_rr, $
	    body    = body   , $
	    onebody = onebody, $
	    degrees = degrees, $
	    arcsec  = arcsec
 INPUTS:
	tt_or_rr	array; type: time structure or float
			    If time structure is specified this is
			    used with 'body' to calculate a heliocentric
			    distance using big_eph.
			    If float this should be a heliocentric
			    distance in AU
 OPTIONAL INPUT PARAMETERS:
	body=body	passed to big_eph
	/onebody	passed to big_eph
	/degrees	return disk size in degrees (default is radians)
	/arcsec 	return disk size in arcseconds (overrides /degrees)
 OUTPUTS:
	dd		angular size of half the solar disk
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, IsTime, SubArray, ToRadians, big_eph
 PROCEDURE:
	Returns arcsin( radius of Sun / heliocentric distance)
 MODIFICATION HISTORY:
	MAR-2007, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


jpl_state $SMEI/ucsd/gen/idl/ephem/jpl_state.pro
[Previous] [Next]
 NAME:
	jpl_state
 PURPOSE:
	Reads and interpolates the JPL planetary ephemeris file
	(internal use for jpl_eph only)
 CATEGORY:
	smei/gen/idl/ephem; JPL Lunar and Planetary Ephemeris
 CALLING SEQUENCE:
	FUNCTION jpl_state, ET, JPL_PNTR, LST, km=km, ssbary=ssbary, loud=loud
 INPUTS:
	ET	    array[2]; type: double (input is converted to double)
			Julian ephemeris date where the interpolated positions are needed.
			Any time ET[0]+ET[1] falling in the time covered by the ephemeris file is OK

		    Generally, ET[0] will be set to some convenient fixed epoch used as 'time
		    origin' for the integrations, and ET[1] will be the elapsed time since ET[0]

		    For maximum precision:
		    set ET[0] to the most recent midnight at or before the interpolation epoch and
		    set ET[1] to the fractional part of the day elapsed since ET[0]

	LST	array[13]   type: integer
			    specifies what type of interpolation is needed for each body
			    = 0: no interpolation
			    = 1: position only
			    = 2: position and velocity
			    LST[0] (Sun) is internally set to 2

		    The designation of astronomical bodies in LST
			0 = Sun 	 7 = Uranus
			1 = Mercury	 8 = Neptune
			2 = Venus	 9 = Pluto
			3 = Earth	10 = geocentric Moon
			4 = Mars	11 = nutations (longitude and obliquity)
			5 = Jupiter	12 = librations (if present on file)
			6 = Saturn
 OPTIONAL INPUT PARAMETERS:
	/km	    if set the units for PV[0:10] are in km; default is AU
	/ssbary     if set then PV[1:9] are returned in solar-system barycentric
			coordinates; default is heliocentric
	/loud	    passed to jpl_init. Prints some info read from ephemeris files
 OUTPUTS:
	PV	array[6,13] type: double precision
			    requested interpolated quantities
			    The order of the components i: X,Y,Z,DX,DY,DZ.
			    Only those components are calculated as indicated by the LST array.
			    Everthing else is set to zero.
		    If the ephemeris file could not be accessed of JD is out of the range
		    covered by the ephemeris then PV will contain NaN values (!values.d_nan)

		    All output vectors are referenced to the Earth mea equator and equinox
		    of J2000 if the DE number is 200 or greater; of B1950 if the DE number
		    is less than 200.

		    PV[*,0]	the Sun state is always solar-system barycentric
				[PLH: I think, see how its used in jpl_eph].
		    PV[*,1:9]	the planet states are heliocentric or solar system barycentric,
				depending on the setting of ssbary
				[PLH: actually I think PV[*,3] is the Earth-Moon barycenter;
				see how its used in jpl_eph]
		    PV[*,10]	the Moon state is always geocentric

		    PV[0:3,11]	contains nutations and rates. The components are
				dPSI	    nutation in longitude (radians)
				dEPSILON    nutation in obliquity (radians)
				dPSI/dT     rates (radians/day)
				dEPSILON/dT
		    PV[*,12]	lunar librations (if on file) if LST[12] is 1 or 2.
				in radians and radians/day
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, jpl_interp
 CALLED BY:
	jpl_eph
 PROCEDURE:
 MODIFICATION HISTORY:
	AUG-1999, Paul Hick (UCSD/CASS)
	    Based on JPL Fortran software
	DEC-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Bug fix. Fraction of day in ET[1] was not always processed properly.


jpl_test $SMEI/ucsd/gen/idl/ephem/jpl_test.pro
[Previous] [Next]
 NAME:
	jpl_test
 PURPOSE:
	Test program for JPL lunar and planetary ephemeris
 CATEGORY:
	smei/gen/idl/ephem JPL Lunar and Planetary Ephemeris
 CALLING SEQUENCE:
	PRO jpl_test, newcomb=newcomb, aa_equ=aa_equ, aa_ecl=aa_ecl, convert=convert
 OPTIONAL INPUT PARAMETERS:
	By default a test is run using the testp.405 file provided with the JPL software.

	/newcomb	the JPL heliocentric position of Earth is compared with the
			result from the function NewcombSun (which is known to reproduce
			values from the Astronomical Almanac with a precision on the order
			of arcseconds. The only correction to the JPL values is a precession
			from J2000 to the equinox of date.
	 /almanac	compares JPL and NewcombSun results with numbers from
			the Astronomical Almanac
 OUTPUTS:
	(none)
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	AngleRange, AngleUnits, CV_COORD, CvPrecess, CvSky, FILEPATH, InitVar, MEAN, NewcombSun
	PlotCurve, STDDEV, TimeOp, TimeSet, TimeUnit, TimeXAxis, ToDegrees, flt_read, gridgen
	jpl_body, jpl_close, jpl_eph, twin, who_am_i
 PROCEDURE:
	Checks ephemeris calculations agains numbers in the test file
	    testpo.405 stored in the subdirectory 'jpl'.
 MODIFICATION HISTORY:
	FEB-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu)