ra_fictitious_sun $SMEI/ucsd/gen/idl/ephem/ra_fictitious_sun.pro
[Previous] [Next]
 NAME:
	ra_fictitious_sun
 PURPOSE:
	Returns right ascension of fictitious sun for specified UT time
 CATEGORY:
	gen/idl/ephem
 CALLING SEQUENCE:
	FUNCTION ra_fictitious_sun, tt, degrees=degrees, scalar=scalar
 INPUTS:
	tt	array; standard time structure
 OPTIONAL INPUT PARAMETERS:
	/degrees    if set, returned RA is in degrees; default: radians
 OUTPUTS:
	ra	scalar or array; right ascension
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	AngleRange, TimeGet, ToDegrees
 CALLED BY:
	cv, smei_normal, smei_sgp4_orbits
 PROCEDURE:
 MODIFICATION HISTORY:
	MAR-2011, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


rank_array $SMEI/ucsd/gen/idl/toolbox/math/rank_array.pro
[Previous] [Next]
 NAME:
	rank_array
 PURPOSE:
	Calculates rank array for a given index array
 CATEGORY:
	gen/idl/toolbox/math
 CALLING SEQUENCE:
	rank = rank_array(index)
 INPUTS:
	index	    array; type: integer
			index array, i.e. array of indices returned
			by the IDL sort function
 OUTPUTS:
	rank	    array; type: integer
			rank array
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	IsType
 CALLED BY:
	boost
 PROCEDURE:
	The rank array inverts the index array. Applying rank to the sorted
	array returns the array back into its original order: A[rank[index]] = A
 MODIFICATION HISTORY:
	JAN-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


ReadSynopticMap $SMEI/ucsd/sat/idl/remoteview/readsynopticmap.pro
[Previous] [Next]
 NAME:
	ReadSynopticMap
 PURPOSE:
	Read a synoptic map file in standard form
 CATEGORY:
	I/O
 CALLING SEQUENCE:
	FUNCTION ReadSynopticMap, Rotation, spred = SPRed, spgreen = SPGreen
 INPUTS:
	Rotation	integer scalar	    Carrington rotation number
 OPTIONAL INPUT PARAMETERS:
	/spgreen	if set, Sac Peak Fe XIV map is read
	/spred		if set, Sac Peak Fe X map is read
 OUTPUTS:
	map		2D float array
 OPTIONAL OUTPUT PARAMETERS:
 CALLS: ***
	FILEPATH, InitVar, flt_read
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLED BY:
	RemoteView_Init_Display, Sky_ColorView [1], Sky_ColorView [2]
 RESTRICTIONS:
	keywords are processed in the order given above. The first
	keyword present is processed; all others are ignored.
 PROCEDURE:
	The Sac Peak should be located in the $dat/map/sacpeak directory.
 MODIFICATION HISTORY:
	FEB-1998, Paul Hick (UCSD/CASS, pphick@ucsd.edu)


refine_pointing $SMEI/ucsd/camera/idl/toolbox/refine_pointing.pro
[Previous] [Next]
 NAME:
	refine_pointing
 PURPOSE:

 CATEGORY:
 CALLING SEQUENCE:
	abg = refine_pointing(good_pos, bad_pos, /degrees)
 INPUTS:
	good_pos
	bad_pos
 OPTIONAL INPUT PARAMETERS:
 OUTPUTS:
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	MEAN, ToRadians
 PROCEDURE:
 MODIFICATION HISTORY:
	MAR-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView $SMEI/ucsd/sat/idl/remoteview/remoteview.pro
[Previous] [Next]
 NAME:
	RemoteView
 PURPOSE:
	Calculates image of sky from 3D density matrix for a given viewer location
	and viewing direction.
 CATEGORY:
	Volume rendering
 CALLING SEQUENCE:
	PRO RemoteView, 		$
	    getcube	= getcube	, $
	    fovcube	= FOVCube	, $	; Output only when /getcube is set

	    cube	= Cube		, $
	    drawecliptic= DrawEcliptic	, $
	    meshecliptic= MeshEcliptic	, $
	    meshhcs	= MeshHCS	, $
	    ;mergehcs	= MergeHCS	, $

	    voxel	= Voxel 	, $
	    base_name	= base_name	, $
	    noplot	= NoPlot	, $

	    upto	= upto		, $
	    _extra	= _extra	, $

	    images	= images	, $

	    M3D 	= M3D		, $
	    V3D 	= V3D		, $
	    D3D 	= D3D		, $

	    silent	= silent
 OPTIONAL INPUT PARAMETERS:
	Most keywords are those described in RemoteView_Init.

	/cube		add bounding cube
	/drawecliptic	add ecliptic boundary
	/meshecliptic	add mesh in ecliptic
	/noplot 	suppresses all plotting activity
	/meshhcs	add heliospheric current sheet as mesh surface

	voxel	    array, type: integer; default: 1
		    up to a 4 element array of values 0,1,2 or 3.
		    Values 0,1 and 2 result in a 3D remote view (see
		    RemoteView_Display3D:
		    0: skip rgbo calculation (bodies and orbits only)
		    1: use IDL Voxel_Proj function
		    2: home-brew rgbo rendering (needs work)
		    Value 3 results in a 2D image (see RemoteView_Display2D.
		    The keyword f3dfnc determines the content of the 2D image
		    (the default is the Thomson scattering brightness)
	base_dir    scalar; type: string; default: getenv('TUB')
		    destination directory for output image files
	base_name   array; type: string
		    base name used for output image files. A 3-digit counter for
		    each of the views rendered is appended to the base name.
		    Especially if keyword 'voxel' is specified as an array (i.e.
		    multiple images are calculated for each view) then a separate
		    base_name should be specified for each of the 'voxel' entries.

	/getcube    ?

	upto = upto passed to remoteview_display2d and remoteview_display3d
 OUTPUTS:
	(to screen or image file)

	images=images
		    scalar or array; type: string
		    fully-qualified names of all output images created
	fovcube=FOVCube
		    Output only when /getcube is set
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CV_COORD, CvSky, InitVar, IsType, REVERSE, RemoteView_BodyLoc, RemoteView_BodySize
	RemoteView_CubeFrame, RemoteView_CurrentSheet, RemoteView_Destroy
	RemoteView_Destroy_FOV, RemoteView_Display2D, RemoteView_Display3D
	RemoteView_FOV, RemoteView_FOV_loc, RemoteView_Init, RemoteView_VertexMap
	RemoteView_ZEclipticPlane, SuperArray, T3D, big_orbit, boost, destroyvar, gridgen
	jpl_body
 CALLED BY:
	qRemoteView_Calculate, vu_remoteview
 PROCEDURE:
 MODIFICATION HISTORY:
	APR-2001, Paul Hick (UCSD/CASS)
	JUN-2004, Paul Hick (UCSD/CASS)
	    Added option to plot orbits for planets and Moon (depends on JPL
	    ephemeris). A negative Voxel value now suppresses labeling in
	    RemoteView_Display3D.
	JUN-2010, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Explicitly added keyword upto=upto.


RemoteView_BodyLoc $SMEI/ucsd/sat/idl/remoteview/remoteview_bodyloc.pro
[Previous] [Next]
 NAME:
	RemoteView_BodyLoc
 PURPOSE:
	Get position coordinates of Earth in a Cartesian
	heliographic coordinate system (see SkyGrid for
	definition coordinate system).
 CATEGORY:
 CALLING SEQUENCE:
	FUNCTION RemoteView_BodyLoc, TT, body=body, silent=silent
 INPUTS:
	TT		array[1]; type: time structure
			    time
 OPTIONAL INPUT PARAMETERS:
	body=body	scalar; type: string
			    name of body
	/silent 	if set, suppresses informational messages
 OUTPUTS:
	Earth		array[3]	X,Y,Z coordinates of Earth (in data units)
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CV_COORD, CvSky, InitVar, KeplerOrbit, TimeGet, TimeOp, TimeSet, big_eph, jpl_body
	jpl_eph, sgp_body
 CALLED BY:
	RemoteView
 RESTRICTIONS:
 PROCEDURE:
	NewcombSun is used to get the geocentric ecliptic coordinates
	of the Sun. The heliocentric ecliptic coordinates of Earth
	are given by the opposite point (add 180 deg to longitude;
	change sign on the latitude. Then Ecliptic_Heliog is used to
	convert to heliographic coordinates.
 MODIFICATION HISTORY:
	FEB-1997, Paul Hick (UCSD/CASS)
	OCT-2006, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Replaced call to jpl_eph by call to big_eph. This makes it easier
	    to add bodies processed by the USNO asteroid ephemeris and any
	    ephemerides downloaded from the Minor Planet Center.


RemoteView_BodySize $SMEI/ucsd/sat/idl/remoteview/remoteview_bodysize.pro
[Previous] [Next]
 NAME:
	RemoteView_BodySize
 PURPOSE:
	Determine angular size of body
 CATEGORY:
	sat/idl/remoteview
 CALLING SEQUENCE:
	FUNCTION RemoteView_BodySize, rView, rSphere, fake, rOuter, fov, degrees=degrees
 INPUTS:
	rView	    scalar; type: float
			distance of viewing location to body (AU)
	rSphere     scalar; type: float
			actual radius of body (AU)
	fake	    scalar; type: float
			fake angular size to be used for displaying body
			as a fraction of the FOV size
	rOuter	    scalar; type: float
			outer radius of data sphere
	fov	    array[2]; type: double
			size of FOV in hor and vert direction
 OPTIONAL INPUT PARAMETERS:
	/degrees	if set, all angles are in degrees (default: radians)
 OUTPUTS:
	Result	    angular size of body (but never less than fake size)
			expressed as fraction of the FOV size
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	ToRadians
 CALLED BY:
	RemoteView
 PROCEDURE:
 MODIFICATION HISTORY:
	JULY-2001, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_CMEDensity $SMEI/ucsd/sat/idl/remoteview/remoteview_cmedensity.pro
[Previous] [Next]
 NAME:
	RemoteView_CMEDensity
 PURPOSE:
	Adds CME density to remoteview
 CATEGORY:
 CALLING SEQUENCE:
	FUNCTION RemoteView_CMEDensity, TT0, TT, nDim, rEdge, CMEmin, CMEmax,	$
	    rot_cme=rot_cme, degrees=degrees, cme_smooth=cme_smooth, cme_average=cme_average
 INPUTS:
	TT0	    array[1]; type: time structure
			time assigned to the CME density matrix read from file
			Usually the same as the 3D solar wind density matrix with
			which the CME density is merged.
	TT	    array[1]; type: time structure
			time at which CME is displayed; the CME matrix expands
			at a constant speed of V=400 km/s from time TT0 to TT
			(usually TT will be a couple of days later than TT0)

	The heliospheric matrix is defined by:

	nDim	    array[3]; type: integer
			# longitudinal, latitudinal and radial grid points
	rEdge	    array[2]; type: float
			inner and outer radius of radial grid (AU)
 OPTIONAL INPUTS:
	rot_cme=rot_cme scalar or array[2]
		extra rotations applied to the CME
 OUTPUTS:
	CMEmin	    scalar; type: float
	CMEmax	    scalar; type: float
			min and max normalized density in CME matrix
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	ArrayLocation, CV_COORD, EulerRotate, FILEPATH, MEAN, TimeGet, TimeOp, TimeUnit
	ToRadians, flt_read, gridgen
 CALLED BY:
	RemoteView_Init_Matrix
 PROCEDURE:
 MODIFICATION HISTORY:
	SEP-1999, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_Colors $SMEI/ucsd/sat/idl/remoteview/remoteview_colors.pro
[Previous] [Next]
 NAME:
	RemoteView_Colors
 PURPOSE:
	Defines colors to be used for coloring heliospheric bodies
 CATEGORY:
	RemoteView package: volume rendering
 CALLING SEQUENCE:
	PRO RemoteView_Colors, colortable,  $
	    White, Black, Purple, Red, Green,	$
	    Greyish, Yellowish, Blueish, Reddish, Greenish
 INPUTS:
	(none)
 OUTPUTS:
	colortable
	    array[N,3]; type: byte; currently N=236
		RGB color table used for coloring heliospheric objects
		(planets, etc.).
		The color table is patched together from a number of IDL
		color tables. The file skycolor.pro describes the color table
		Black	 :	     0		 1
		White	 :	     2		 3
		Purple	 :	     4		 5
		Red	 :	     6		 7
		Green	 :	     8		 9
		Blue	 :	    10		11
		Earth	 :	    12		15
		Greyish  :	    16		59
		Blueish  :	    60	       103
		Yellowish:	   104	       147
		Reddish  :	   148	       191
		Greenish :	   192	       235
	    Each of these entries is returned as a two-element argument.

	White, Black, Purple, Red, Green
.	Greyish, Yellowish, Blueish, Reddish, Greenish
		array[2]; type: integer
		    indices into the color arrays 'reds','green','blues' for
		    beginning and start color
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
	@skycolors.pro		    ; Dummy comment for Linux
 CALLS: ***
	FILEPATH, flt_read, who_am_i
 INCLUDE:
	@skycolors.pro
 CALLED BY:
	RemoteView_Init_Display
 SIDE EFFECTS:
	Needs files remoteview_colors_info.txt and remoteview_colors.txt,
	storing the color table information.
 RESTRICTIONS:
 PROCEDURE:
	Currently the number of elements is restricte to 236 colors to make things work
	on Windows NT.
 MODIFICATION HISTORY:
	JUN-2000, Paul Hick (UCSD/CASS)
	    Split off from old skycolors.pro (now obsolete)
	AUG-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    The two ascii files with color table info is now
	    looked for in the same directory as the source code.


RemoteView_CubeFrame $SMEI/ucsd/sat/idl/remoteview/remoteview_cubeframe.pro
[Previous] [Next]
 NAME:
	RemoteView_CubeFrame
 PURPOSE:
	Draws outline of 3D data cube
 CATEGORY:
	Graphics
 CALLING SEQUENCE:
	FUNCTION RemoteView_CubeFrame, nS, color=Color, corners=Corners
 INPUTS:
	nS	integer; type: float
		    cube size in data units
		    (if nL is fo type float it is rounded up to the
		    next integer)
 OPTIONAL INPUT PARAMETERS:
	color=Color scalar	color index used for drawing
				(if omitted then !p.color is used)
 OUTPUTS:
	Cube
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	IsType, gridgen
 CALLED BY:
	RemoteView
 PROCEDURE:
	Make sure the proper 3D transformation is set up.
	The cube drawn extends from 0 to nDim-1 in all three dimensions.
 MODIFICATION HISTORY:
	Feb-1997, Paul Hick (UCSD)


RemoteView_CurrentSheet $SMEI/ucsd/sat/idl/remoteview/remoteview_currentsheet.pro
[Previous] [Next]
 NAME:
	RemoteView_CurrentSheet
 PURPOSE:
	Find the polygons of the currentsheet surface in cartesian coordinates
	for a given helographic-sperical B3D matrix.
 CATEGORY:
  tool
 CALLING SEQUENCE:
	FUNCTION RemoteView_CurrentSheet, FOVInfo, P
 INPUTS:
	FOVInfo 	array[1]; type: structure
			    structure set up by RemoteView_Init_FOV
	B3D		array[lng,lat,rad]; type: float
			    3D magnetic data;
 OUTPUTS:
	Result		array[3,*]; type: float
			    polygon coordinates in rectangular coordinates
			    Units are data units (usually AU).
	P		array[*]; type: integer
			    information about polygons (# points for each polygon,
			    and index lists for all points in each polygon)
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	AngleRange, BadValue, CV_COORD, IsType, gridgen
 CALLED BY:
	RemoteView
 PROCEDURE:
 >	Taking a B3D array in heliographic spherical  convert to cartesian.
 >	Create a currentsheet based on B3D information
 >	Build a contoured surface at that currentsheet out of polygons
 >	Return the list of vertices and polygon-connectivity
 MODIFICATION HISTORY:
	OCT-2001, T. Dunn (tdunn@ucsd.edu)
	JUL-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Integrated into RemoteView package


RemoteView_Destroy $SMEI/ucsd/sat/idl/remoteview/remoteview_destroy.pro
[Previous] [Next]
 NAME:
	RemoteView_Destroy
 PURPOSE:
	Clean up heap variables
 CATEGORY:
	RemoteView package
 CALLING SEQUENCE:
	PRO RemoteView_Destroy, M3D=M3D, V3D=V3D, D3D=D3D
 INPUTS:
	M3D	array[1]; type: structure
	V3D	array[1]; type: structure
	D3D	array[1]; type: structure
 OUTPUTS:
	(none)
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLED BY:
	RemoteView, RemoteView_Init
 PROCEDURE:
	Destroy heap variables associated with the M3D, V3D and D3D structures
 MODIFICATION HISTORY:
	JULY-2001, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_Destroy_FOV $SMEI/ucsd/sat/idl/remoteview/remoteview_destroy_fov.pro
[Previous] [Next]
 NAME:
	RemoteView_Destroy_FOV
 PURPOSE:
	Clean up heap variables
 CATEGORY:
	RemoteView package
 CALLING SEQUENCE:
	PRO RemoteView_Destroy_FOV, FOVInfo
 INPUTS:
	FOVInfo 	array; type: structure
			    array of FOVInfo structures
 OUTPUTS:
	(none>
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLED BY:
	RemoteView, RemoteView_Init
 PROCEDURE:
	Destroy heap variables associated with FOVInfo.view_elo and FOVInfo.matrix
	The FOVInfo structure contains three pointers to heap variables.
	FOVInfo.view_elo always needs to be cleared.
	FOVInfo.matrix and FOVInfo.matrixb only need to be cleared if they point
	to an interpolated matrix (see RemoteView_Init_FOV).
 MODIFICATION HISTORY:
	JULY-2001, Paul Hick (UCSD/CASS)
	JULY-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Updated to handle pointer to magnetic field.


RemoteView_Display2D $SMEI/ucsd/sat/idl/remoteview/remoteview_display2d.pro
[Previous] [Next]
 NAME:
	RemoteView_Display2D
 PURPOSE:
	Calculates a line-of-sight integration throught the 3D volume data in
	FOVCube.
 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	PRO RemoteView_Display2D, D3D, FOVInfo, FOVCube, FOVLoc, iView, $
	    voxel	= Voxel     , $
	    f3dfnc	= f3dfnc    , $
	    w3dfnc	= w3dfnc    , $
	    losarg	= losarg    , $
	    base_dir	= base_dir  , $
	    base_name	= base_name , $
	    images	= images    , $
	    title	= title     , $
	    format	= format    , $
	    logo	= logo	    , $
	    rim 	= rim	    , $
	    silent	= silent    , $
	    range	= range     , $     ; obsolete
	    full_range	= full_range, $
	    view_nr	= view_nr   , $
	    radialfilter= radialfilter, $
	    upto	= upto	    , $
	    _extra	= _extra
 INPUTS:
	D3D		array[1]; type: structure
			    contains information about volume data (see
			    RemoteView_Init)
	FOVInfo
	FOVCube 	array[nX,nY,nZ]; type: float
			    function values covering fov of nX,nY lines of sight
			    at nZ positions along line of sight
	FOVLoc		array[3,nX,nY,nZ]; type: float
			    heliographic locations at all of the line of sight
			    segments. Always in spherical coordinates (even for
			    rectangular matrix) i.e. heliographic longitude,
			    latitude in radians; and heliocentric distance in AU.
	iView		scalar; type: integer
			    image number (used only in file name construction)
 OPTIONAL INPUT PARAMETERS:
	base_dir=base_dir
			scalar; type: string; default: getenv('TUB')
			    destination directory for all image files
	base_name=base_name
			scalar; type: string; default: f3dfnc
			    base name for output image files
	view_nr=view_nr scalar; type: integer; default: none
			    overrides argument 'iView'
			    iView is the loop parameter used in the calling
			    procedure RemoteView to loop over multiple
			    view. Often RemoteView itself is called in a loop
			    processing a single view per call. iView will
			    always be 1 in this case, and image files would
			    be overwritten. Keyword view_nr can be added to
			    the RemoteView call to replace iView and avoid
			    overwriting of images.
	full_range=full_range
			array[2]; type: float; default: [0.1,1.0]
			    range of data values displayed

	f3dfnc = f3dfnc
	w3dfnc = w3dfnc
	losarg = losarg
	logo=logo	scalar; type: string; default: none
			    if "logo" is not an existing file the string is
			    plotted in the lower left corner of the display.
			    alternatively it is the name of a tiny image file to
			    be put in lowerleft corner of display.
			    (This must be a truecolor image).

	upto = upto	scalar; type: integer; default: TimeUnit(/sec)
			    controls precision of time string added to image
 OUTPUTS:
	(images to display or file)
	images=images	scalar or array; type: string
			    fully-qualified names of all image files created
			    (if no image was created, 'images' will be undefined)
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
	@vu_fnc_include.pro	;
 EXTERNAL:
	ThomsonBrightness
 CALLS: ***
	BadValue, CONGRID, CheckDir, CvSky, FILEPATH, GetColors [1], GetColors [2]
	GetColors [3], IPS_params, InitVar, IntegrateLOS, IsType, LOADCT, REVERSE, SuperArray
	ThomsonRadialFilter, ThomsonUBVConst, TimeGet, TimeUnit, WRITE_BMP, WRITE_GIF
	WRITE_PPM, big_eph, boost, destroyvar, flip_colors, gridgen, img_read, twin, vu_fnc
 CALLED BY:
	RemoteView
 COMMON BLOCKS:
	common SkyDisplaySave, PreviousImage
 PROCEDURE:
 MODIFICATION HISTORY:
	JUN-2001, Paul Hick (UCSD/CASS)
	SEP-2008, Paul Hick (UCSD/CASS)
	    Added legend. Modified labeling.
	JUN-2010, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added keyword upto to control precision of output string


RemoteView_Display3D $SMEI/ucsd/sat/idl/remoteview/remoteview_display3d.pro
[Previous] [Next]
 NAME:
	RemoteView_Display3D
 PURPOSE:
	Collapses the 3D volume data in FOVCube to a 2D view ready for display using
	some form of rgbo rendering
 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	PRO RemoteView_Display3D, D3D, FOVInfo, FOVCube, FOVLoc, iView, $
	    FOVCubeB	= FOVCubeB  , $
	    voxel	= Voxel     , $
	    base_dir	= base_dir  , $
	    base_name	= base_name , $
	    images	= images    , $
	    title	= title     , $
	    format	= format    , $
	    logo	= logo	    , $
	    rim 	= rim	    , $
	    silent	= silent    , $
	    view_nr	= view_nr   , $
	    upto	= upto	    , $
	    _extra	= _extra
 INPUTS:
	D3D		array[1]; type: structure
			    info about volume data (see RemoteView_Init)
	FOVCube 	array[nX,nY,nZ]; type: float
			    function values covering fov of nX,nY lines of sight
			    at nZ positions along line of sight
	FOVLoc		array[3,nX,nY,nZ]; type: float
			    heliographic locations at all line of sight segments.
			    Always returned in spherical coordinates (even for
			    rectangular matrix) i.e. heliographic longitude,
			    latitude in radians; and heliocentric distance in AU.
	iView		scalar; type: integer
			    image number (used only in file name construction)
 OPTIONAL INPUT PARAMETERS:
	FOVCubeB=FOVCubeB
			array[nX,nY,nZ]; type: float
			    magnetic field values covering fov of nX,nY lines of
			    sight at nZ positions along line of sight
	voxel=Voxel	scalar; type: integer; default: 0
			    0: skip rgbo calculation (bodies and orbits only)
			    1: use IDL Voxel_Proj function
				(doesn't work in IDL 5.4 unless the patch
				Voxel_Proj2 is available)
			    2: home-brew rgbo rendering (needs work)
	base_dir=base_dir
			scalar; type: string; default: getenv('TUB')
			    destination directory for all image files
	base_name-base_name
			scalar; type: string; default: f3dfnc
			    base name for output image files
	view_nr=view_nr scalar; type: integer; default: none
			    overrides argument 'iView'
			    iView is the loop parameter used in the calling
			    procedure RemoteView to loop over multiple
			    view. Often RemoteView itself is called in a loop
			    processing a single view per call. iView will
			    always be 1 in this case, and image files would
			    be overwritten. Keyword view_nr can be added to
			    the RemoteView call to replace iView and avoid
			    overwriting of images.
	logo=logo	scalar; type: string; default: none
			    if "logo" is not an existing file the string is
			    plotted in the lower left corner of the display.
			    alternatively it is the name of a tiny image file to
			    be put in lowerleft corner of display.
			    (This must be a truecolor image).
	rim=rim 	array[4]; type: float; default: [0.0,0.15,0.1,0.1]

	upto = upto	scalar; type: integer; default: TimeUnit(/sec)
			    controls precision of time string added to image
 OUTPUTS:
	(images to display or file)
	images=images	scalar or array; type: string
			    fully-qualified names of image files
			    (if no images were created, 'images' will be undefined)
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CONGRID, CheckDir, FILEPATH, InitVar, IsType, LOADCT, REVERSE, RGBO_DepthCue
	RGBO_Project, RemoteView_Matte, SuperArray, TimeGet, TimeUnit, WRITE_BMP, WRITE_GIF
	WRITE_PPM, boost, destroyvar, flip_colors, img_read, twin
 CALLED BY:
	RemoteView
 COMMON BLOCKS:
	common SkyDisplaySave, PreviousImage
 PROCEDURE:
	The common block is used to store the left image when an interleaved
	image is requested. (after the right image is calculated the left and
	right images are merged).
 MODIFICATION HISTORY:
	AUG-2000, Paul Hick (UCSD/CASS)
	AUG-2002, Paul Hick (UCSD/CASS)
	    Our home-made rgbo rendering engine (voxel=2) seems to work now.
	    Added option to include depth cueing, and an option to do 'radial
	    cueing' (multiply opacity with a radial distance-dependent function).
	    Added color legend to display, together with minimal annotation.
	JUN-2004, Paul Hick (UCSD/CASS)
	    A negative Voxel value now suppresses the labeling and color bar.
	JUN-2010, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_EqTrans $SMEI/ucsd/sat/idl/remoteview/remoteview_eqtrans.pro
[Previous] [Next]
 NAME:
	RemoteView_EqTrans
 PURPOSE:
	Sets integer ID of mapping used to map sky to display
 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	FUNCTION RemoteView_eqtrans, EqTrans, eqdistance=EqDistance, eqangle=EqAngle, eqarea=EqArea
 OPTIONAL INPUT PARAMETERS:
	/eqdistance	    preserve distance to line of sight through center of image
			(this is the default if no keywords are set)
	/eqangle	    preserve angular distance to line of sight through center of image
	/eqarea 	    preserve area on sky;
 OUTPUTS:
	Result		    scalar; type: integer
	@compile_opt.pro	    ; On error, return to caller
 CALLED BY:
	RemoteView_FOV_Edge, RemoteView_FOV_loc, RemoteView_FOV_xyz
	RemoteView_Init_View
 PROCEDURE:
 MODIFICATION HISTORY:
	SEP-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_FOV $SMEI/ucsd/sat/idl/remoteview/remoteview_fov.pro
[Previous] [Next]
 NAME:
	RemoteView_FOV
 PURPOSE:
	Calculates image of sky from 3D density matrix for a given viewer location
	and viewing direction.
 CATEGORY:
	RemoteView package: Image construction
 CALLING SEQUENCE:
	FUNCTION RemoteView_FOV, V3D, M3D, FOVCube, FOVInfo, FOVLoc,	$
	    view_index=view_index, FOVCubeB=FOVCubeB, silent=silent

 INPUTS:
	V3D	    array[1]; type; structure
			structure array containing information about the views
			to be calculated.
	M3D	    array[1]; type: structure
			structure containing 3D density matrices and associated
			information; passed to RemoteView_Init_FOV
 OPTIONAL INPUT PARAMETERS:
	view_index=view_index
		    scalar; type: integer
			index of a single view to be processed
	/silent     suppress informational messages
 OUTPUTS:
	FOVCube     array[nDim[0],nDim[1],nDim[2],nView]
			Output matrix with interpolated data values.
			This is the matrix that needs to be integrated along the 3rd
			(line-of-sight) dimension to create the 2D sky image
	FOVInfo     array[nView]; type: structure
			structure array combining information about a the 3D density
			matrices for all views.
	FOVLoc	    array[3,nDim[0],nDim[1],nDim[2]]; type: float
			(only returned when 'view_index' is specified)
			heliographic locations at all of the line of sight segments.
			Always returned in spherical coordinates (even for rectangular
			matrix) i.e. heliographic longitude, latitude in radians; and
			heliocentric distance in AU.
	FOVCubeB = FOVCubeB
		    array[nDim[0],nDim[1],nDim[2],nView]
			Output matrix with interpolated data values for magnetic field.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	InitVar, IsType, RemoteView_FOV_Cube, RemoteView_Init_FOV, SuperArray, TimeGet
	TimeSystem, TimeUnit, destroyvar
 CALLED BY:
	RemoteView, RemoteView_Init
 PROCEDURE:
	The FOVCube matrix is set up as a float array using the sizes of the two input
	structures.
	For each view Sky_Grid_Struct is called, returning a new structure combining
	all the necessary information (3D density matrix and view).
	RemoteView_FOV_Cube does the actual actual calculation; its output is used to fill the
	FOVCube array.
 MODIFICATION HISTORY:
	DEC-2000, Paul Hick (UCSD/CASS)
	OCT-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added keyword /silent


RemoteView_FOV_Cube $SMEI/ucsd/sat/idl/remoteview/remoteview_fov_cube.pro
[Previous] [Next]
 NAME:
	RemoteView_FOV_Cube
 PURPOSE:
 CATEGORY:
	3D viewing
 CALLING SEQUENCE:
	FUNCTION RemoteView_FOV_Cube, FOVInfo, x, R=R, bcube=BCube
 INPUTS:
	FOVInfo     array[1]; type: structure
 OUTPUTS:
	status	    0: no data inside field of view for specified viewing direction
		    1: there are data inside the field of view
	FOVCube     array[nX,nY,nZ]; type: float
			function values covering fov of nX,nY lines of sight
			at nZ positions along line of sight
 OPTIONAL OUTPUT PARAMETERS:
	R=R	    array[3,nX,nY,nZ]; type: float
			heliographic locations at all of the line of sight
			segments. Always returned in spherical coordinates (even
			for rectangular matrix) i.e. heliographic longitude,
			latitude in radians, and heliocentric distance in AU.
	bcube=BCube array[nX,nY,nZ]; type: float
			function values for magnetic field covering fov of nX,nY
			lines of sight at nZ positions along line of sight
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	AngleRange, CV_COORD, CvT3d, RemoteView_FOV_xyz, sphere_distance
 CALLED BY:
	RemoteView_FOV
 PROCEDURE:
 >	Read the RemoteView document (in D:\work\doc\remoteview.doc) for a
	detailed description.
 >	The 3D data set is specified in an arbitrary Cartesian coordinate
	system x-y-z.
 >	The data set is contained within a sphere of radius DataRadius centered
	on the origin.
 >	Put a rectangle with sides 2*tan(FOVInfo.view_fov) in a plane perpendicular
	to the viewer direction at a distance of one unit. Define a rectangular
	grid of dimension nX x nY covering the rectangle. Connect the origin with
	each of the nX x nY grid points to define an angular grid.
 >	Define a radial grid of dimension nZ extending outward from the
	observer between FOVInfo.view_extent[0] and FOVInfo.view_extent[1].
 >	The radial and angular grid define a 'sky grid' covering the portion of
	space along the viewing direction which may contain data.
 MODIFICATION HISTORY:
	FEB-1998, Paul Hick (UCSD/CASS)
	DEC-1998, Paul Hick (UCSD/CASS, pphick@ucsd.edu), rewrite


RemoteView_FOV_Edge $SMEI/ucsd/sat/idl/remoteview/remoteview_fov_edge.pro
[Previous] [Next]
 NAME:
	RemoteView_FOV_Edge
 PURPOSE:

 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	FUNCTION RemoteView_FOV_Edge, fov, EqTrans
 INPUTS:
	fov		scalar; type: float
			    half-width of field of view (radians)
	EqTrans 	scalar; type: integer
			    defines the type of transformation between fov and sky.
 OUTPUTS:
	fovedge 	scalar; type: float
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	RemoteView_EqTrans
 CALLED BY:
	RemoteView_FOV_loc, RemoteView_FOV_xyz
 PROCEDURE:
 MODIFICATION HISTORY:
	DEC-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_FOV_loc $SMEI/ucsd/sat/idl/remoteview/remoteview_fov_loc.pro
[Previous] [Next]
 NAME:
	RemoteView_FOV_loc
 PURPOSE:
 CATEGORY:
	3D viewing
 CALLING SEQUENCE:
	FUNCTION RemoteView_FOV_loc, vector, FOVInfo, $
	    rectangular = rectangular	, $
	    dloc	= dloc
 INPUTS:
	vector		array[3,*]; type: float
			    heliographic coordinates (spherical or, if
			    /rectangular, Cartesian) of points to be
			    converted to display coordinates.
			    Distances are in data units (usually AU).
	FOVInfo 	array[1]; type: structure
			    structure set up by RemoteView_FOV
 OPTIONAL INPUT:
	/rectangular	if set then 'vector' is in rectangular heliographic
			    coordinates (default is spherical coordinates).
 OUTPUTS:
	Result		arrays[3,*]
			    input vector points converted to sky coordinates.
			    These are normal coordinates, i.e. points inside
			    the fov range from 0 to 1.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	BadValue, CV_COORD, CvT3d, InitVar, RemoteView_EqTrans, RemoteView_FOV_Edge
	SyncDims
 CALLED BY:
	RemoteView
 PROCEDURE:
 >	Read the RemoteView document (remoteview.doc) for
	a detailed description.
 >	The 3D data set is specified in an arbitrary Cartesian
	coordinate system x-y-z.
 >	The data set is contained within a sphere of radius DataRadius
	centered on the origin.
 >	Put a rectangle with sides 2*tan(Fov) in a plane
	perpendicular to the viewer direction at a distance of one unit.
	Define a rectangular grid of dimension nDimX x nDimY covering
	the rectangle. Connect the origin with each of the nDimX x nDimY
	grid points to define an angular grid.
 >	Define a radial grid of dimension nDimZ covering the range
	FOVInfo.view_extent
 >	The radial and angular grid define a 'sky grid' covering the
	portion of space along the viewing direction which may
	contain data.
 STRUCTURES:
	FOVInfo.view_loc, FOVInfo.view_dir,  FOVInfo.view_fov,
	FOVInfo.view_tilt, FOVInfo.view_eqtrans, FOVInfo.view_extent
 MODIFICATION HISTORY:
	FEB-1998, Paul Hick (UCSD/CASS)
	DEC-2000, Paul Hick (UCSD/CASS)
	    Rewrite
	SEP-2008, Paul Hick (UCSD/CASS, pphick@ucsd.edu)
	    Bug fix?. The calculation of the z-component
	    (depth) for the FOV coordinates did not
	    preserve the sign of the z-component of the
	    native camera coordinates system. As a result
	    point "behind" the camera where put "in front"
	    of the camera.
	    Coordinates for points "behind" the camera are
	    now explicitly set to NaN in the return array.


RemoteView_FOV_xyz $SMEI/ucsd/sat/idl/remoteview/remoteview_fov_xyz.pro
[Previous] [Next]
 NAME:
	RemoteView_FOV_xyz
 PURPOSE:
	Internal use. Should be called by RemoteView_FOV_Cube only.
 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	FUNCTION RemoteView_FOV_xyz, x, FOVInfo, bigmemory=bigmemory,	$
	    fov=fov, eqtrans=eqtrans
 INPUTS:
	x	    float array[4,nDimX,nDimY,nDimZ]
			Initialized in calling program RemoteView_FOV_Cube with:
			    x = fltarr(4,nDimX,nDimY,nDimZ, /nozero)
			Only x[0:2,*,*,*] is filled here.
	FOVInfo     array[1]; type: structure
			structure set up by RemoteView_Init_FOV
 OPTIONAL INPUT PARAMETERS:
	/bigmemory  if set then no explicit do-loops are used in the calculations.
		    This will be significantly faster if lots of memory is available
		    (i.e. as long as no disk swapping is needed)
 OUTPUTS:
	Result	    float array[4,nDimX*nDimY*nDimZ]
			Cartesian coordinates of locations where interpolated
			densities are required. The coordinate system is the X,Y,Z
			coordinate system defined in the RemoteView document.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	InitVar, IsType, RemoteView_EqTrans, RemoteView_FOV_Edge, gridgen
 CALLED BY:
	RemoteView_FOV_Cube, RemoteView_Init_FOV
 PROCEDURE:
	If the output array is reformed to Result[4,nDimX,nDimY,nDimZ] then the nDimX and
	nDimY dimensions cover field of view. The nDimZ dimension is the 'depth' dimension.
	It stores the distance to the viewer location starting at the maximum distance from
	the viewer, i.e. R[*,*,*,0] is the depth layer farthest away from the viewer along
	the line of sight; R[*,*,*,nDimZ-1] is closest to the viewer.
 MODIFICATION HISTORY:
	FEB-1998, Paul Hick (UCSD/CASS)
	DEC-2000, Paul Hick (UCSD/CASS, pphick@ucsd.edu), adapted for handling of
	    time-dependent tomography


RemoteView_FovTilt $SMEI/ucsd/sat/idl/remoteview/remoteview_fovtilt.pro
[Previous] [Next]
 NAME:
	RemoteView_FovTilt
 PURPOSE:
	Calculates the angle between the projections of
	the solar north and ecliptic north in the fov
 CATEGORY:
	sat/idl/remoteview
 CALLING SEQUENCE:
	FUNCTION RemoteView_FovTilt, TT, Dir, degrees=degrees
 INPUTS:
	TT	    array[1] or array[K]
	Dir	    array[2] or array[2,K]
			Viewing direction in heliographic spherical
			coordinates
 OPTIONAL INPUT PARAMETERS:
	/degrees    if set all angles are in degrees (default is radians)
 OUTPUTS:
	R	    array[2,K]
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CvSky, CvT3d, ToRadians
 CALLED BY:
	RemoteView_Init_View
 PROCEDURE:
 MODIFICATION HISTORY:
	MAR-2000, Paul Hick (UCSD/CASS)
	SEP-2008, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Total rewrite. The old version was only valid for
	    the special case where the viewing direction was
	    straight back to the Sun


RemoteView_Init $SMEI/ucsd/sat/idl/remoteview/remoteview_init.pro
[Previous] [Next]
 NAME:
	RemoteView_Init
 PURPOSE:
	Sets up structure for volume data and viewing information
 CATEGORY:
	sat/idl/remoteview
 CALLING SEQUENCE:
	PRO RemoteView_Init, M3D, V3D, D3D, getcube=GetCube, fovcube=FOVCube, silent=silent, _extra=_extra
 OPTIONAL INPUT PARAMETERS:
	/silent 	controls display of messages
	/getcube
	    if set, only the volume data array FOVCube is returned.
	    None of the structures will exist on return.

	Keywords defining the volume data (passed to RemoteView_Init_Matrix)
	    f3dmat
	    b3dmat
	    matrix_time
	    matrix_rect
	    volsize
	    start_lng
	    degrees
	    cme

	Keywords passed to RemoteView_Init_View are explained there:
	    degrees
	    view_rect
	    ecliptic
	    location
	    direction
	    view_time
	    fovsize
	    fovtilt
	    stereo
	    ngrid
	    eqdistance
	    eqangle
	    eqarea

	Keywords passed to RemoteView_Init_Display are explained there:
	    xysize
	    gif
	    tiff8
	    tiff24
	    bmp8
	    bmp24
	    interleave
	    probe
	    helios
	    twinsc
	    spgreen
	    spred
	    earth
	    rotation (????)

	Keywords passed to RemoteView_rgbo are explained there:
	    full_color,
	    full_opacity
	    mid_range
	    mid_color
	    mid_opacity
	    opacity_power
	    update

	    rotation=Rotation	scalar; type: float

		The value of Rotation is used in three ways:
		1. the fractional part is used to set the starting heliographic longitude,
		    e.g. 1884.0 starts at 0 degrees; 1884.25 at 270 degrees.
		2. if the image time in the States array is set to !values.f_nan, it is
		    assumed to be the time at which the longitude corresponding to 'Rotation'
		    crossed the central meridian (i.e. it is set to CarringtonT(Rotation))
		3. Rotation is passed to ReadSynopticMap to read in a map to be wrapped around
		    the surface of the Sun

 OUTPUTS:
	M3D	    array[1]; type: structure
			contains information about volume data
	V3D	    array[1]; type: structure
			contains information about view
	D3D	    array[1]; type: structure
			contains information about display
 OPTIONAL OUTPUT PARAMETERS:
	fovcube = FOVCube
		4-dim array; type: float
		Output only when /getcube is set. Contains the volume data
		for all views.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	InitVar, IsType, RemoteView_Destroy, RemoteView_Destroy_FOV, RemoteView_FOV
	RemoteView_Init_Display, RemoteView_Init_Matrix, RemoteView_Init_View
 CALLED BY:
	RemoteView
 PROCEDURE:
	The structures are actually set up by the RemoteView_Init_* functions. This procedure just
	functions as a wrapper to keep everything in one place.
 MODIFICATION HISTORY:
	APR-2001, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_Init_Display $SMEI/ucsd/sat/idl/remoteview/remoteview_init_display.pro
[Previous] [Next]
 NAME:
	RemoteView_Init_Display
 PURPOSE:
	Set up the SKY_DISPLAY3D structure.
 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	FUNCTION RemoteView_Init_Display, fminmax,  $

	    xysize	= xysize    ,	$

	    binary	= Binary    ,	$

	    tiff8	= Tiff8     ,	$
	    tiff24	= Tiff24    ,	$
	    bmp8	= Bmp8	    ,	$
	    bmp24	= Bmp24     ,	$
	    gif 	= Gif	    ,	$
	    ppm 	= Ppm	    ,	$
	    png 	= Png	    ,	$
	    jpg 	= Jpg	    ,	$

	    interleave	= Interleave,	$

	    body	= body	    ,	$
	    rotation	= Rotation  ,	$
	    spgreen	= SPGreen   ,	$
	    spred	= SPRed     ,	$


	    full_range	= full_range,	$

	    mergehcs	= mergehcs  ,	$
	    tinysize	= tinysize  ,	$

	    _extra	= _extra
 INPUTS:
	fminmax 	    array[2]; type: float
				used if 'full_range' not specified. Typically, this
				is set to minimum and maximum of the volume data by
				the calling procedure (e.g. RemoteView_Init).
 OPTIONAL INPUT PARAMETERS:
	full_range=full_range
			    scalar or array[2]; type: any; no default
				(MUST be specified)
				A scalar is interpreted as [0,full_range]
				The full range of values of rendered data in data
				units. These keywords is processed by
				RemoteView_rgbo and are after return stored
				in the output structure.

	xysize = xysize     scalar or array[2]; default: [400,400]
				dimension of plot window and z-buffer
	/tiff8, /tiff24, /bmp8, /bmp24, /gif, /ppm, /png
			    if one of these is set then the image is build in the
			    z-buffer and then written to the appropriate image file.
	/binary
			    writes a binary file

	/interleave

	body=body	    array; type: string; default: ['Sun','Earth&']
				names of bodies to be embedded in the display
				names can be any of the bodies from the JPL ephem
				(see jpl_body), one of the USNO asteroids
				(see usno_body), a body for which ephemerides
				are available from the Minor Planet Center (see
				mpc_body), or one of
				'Helios 1','Helios 2','Fire','SMEX','Stereo-E','Stereo-W'
				If the symbol '&' is tag on the end of the name the orbit
				is also embedded. This does not work for the spacecraft.
				If the symbol '@' is added then a map is wrapped around
				the body. This works only for Earth.

	rotation=Rotation   scalar; type: integer
			    Rotation is passed to ReadSynopticMap to read in a map
			    to be wrapped around the surface of the Sun (together
			    with /spgreen or /spred setting).
	/spgreen, /spred    if set then this can be used to select the Sac Peak
			    green or red line map for the rotation set with keyword
			    Rotation.

 OUTPUTS:
	S		    array[1]; SKYVIEW_DISPLAY structure
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	FILEPATH, InitVar, READ_BMP, ReadSynopticMap, RemoteView_Colors
	RemoteView_VertexSphere, RemoteView_rgbo, big_body, jpl_body
 CALLED BY:
	RemoteView_Init
 PROCEDURE:
	The SKY_DISPLAY3D structure contains information which does not depend on
	the viewing location and direction (mainly which celestial bodies to
	display).
 MODIFICATION HISTORY:
	JUN-2000, Paul Hick (UCSD/CASS)
	DEC-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu), adapted for handling of
	    sequence of matrices from time-dependent tomography.
	JUN-2004, Paul Hick (UCSD/CASS)
	    Added markorbit to contol plotting of planetary orbits
	OCT-2006, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added /linear, /neat, /bradley


RemoteView_Init_FOV $SMEI/ucsd/sat/idl/remoteview/remoteview_init_fov.pro
[Previous] [Next]
 NAME:
	RemoteView_Init_FOV
 PURPOSE:
	Set up structure for RemoteView_FOV
 CATEGORY:
	RemoteView project
 CALLING SEQUENCE:
	FUNCTION RemoteView_Init_FOV, iT, V3D, M3D
 INPUTS:
	iT	    scalar; type: integer
			counter for current view (as index into V3D)
	V3D	    array[1]; type; structure
			structure array containing information about the views
			to be calculated.
	M3D	    array[1]; type: structure
			structure containing 3D density matrices and associated
			information; passed to Sky_Grid_Struct
 OUTPUTS:
	FOVInfo     array[1]; type: structure
			structure combining information about a single 3D density
			matrix and a single view. The single density matrix and
			view are derived from the two input structure arrays.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	AlignHeliosphere, CV_COORD, EulerRotate, RemoteView_FOV_xyz, TimeOp, TimeUnit
	sphere_distance
 CALLED BY:
	RemoteView_FOV
 RESTRICTIONS:
	The interpolation scheme assumes that the matrices are sorted into
	chronological order.
 PROCEDURE:
 >	The time for view iT is compared with the matrix times. A new matrix is
	calculated by interpolating between two matrices.
 >	If the view time coincides exactly with a matrix time then no
	interpolation is needed. In this case the FOVInfo structure will just
	point to the appropriate original matrix.
 >	If only one matrix is specified then this matrix is always used (i.e.
	the specified times are ignored.

 >	The V3D and M3D contain information about ALL views and ALL matrices,
	respectively. The SKYVIEW_FOV structure is assembled from the two
	structures and describes a single view and matrix.

	matrix		    This is a pointer to a 3D density matrix
	matrix_index	    Time index into 3D matrix (=0 for interpolated matrix)
	matrix_rect	    Set to 1 for rectangular matrix
	matrix_rEdge	    Inner and outer radius of data (AU)
	matrix_dR	    AU/grid spacing
	matrix_Origin	    Location of origin (grid spacings; only for rectangular data)
	matrix_lng0	    Start heliographic longitude of matrix

	view_loc	    Viewing location : lng, lat in radians; distance in AU
	view_dir	    Viewing direction: lng, lat in radians

	view_fov	    Angular half-width field of view (radians)
	view_tilt	    Field of view tilt angle (radians)

	view_ndim	    Dimensions of field of view cube
	view_eqtrans

	view_extent	    Minimum, maximum distance along line of sight
	view_elo	    Elongation across field of view

 MODIFICATION HISTORY:
	DEC-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_Init_Matrix $SMEI/ucsd/sat/idl/remoteview/remoteview_init_matrix.pro
[Previous] [Next]
 NAME:
	RemoteView_Init_Matrix
 PURPOSE:
	Defines structure for storing 3D matrix and associated information
 CATEGORY:
	Sky project: structure definition
 CALLING SEQUENCE:
	FUNCTION RemoteView_Init_Matrix,    $
	    f3dmat	= F3Dmat,	$
	    b3dmat	= B3Dmat,	$
	    matrix_time = matrix_time,	$
	    matrix_rect = matrix_rect,	$
	    volsize	= volsize,	$
	    start_lng	= start_lng,	$
	    degrees	= degrees,	$

	    ; keyword view_time and rot_cme are accessed only if /cme is set.
	    ; They SHOULD NOT BE MODIFIED.

	    cme 	= cme,		$
	    view_time	= view_time,	$
	    rot_cme	= rot_cme,	$
	    silent	= silent
 INPUTS:

	F3Dmat	array[N,L,M,K]; type: float
		array[N,L,M  ] (K  = 1)
		    Specifies a sequence of 3D heliospheric volume data to be rendered.
		    The array must have at 3 or 4 dimensions. The first three are the
		    spatial dimensions; the last usually is the time dimension. The matrix
		    can be specified on a Cartesian or a spherical grid, but always refers
		    to heliographic coordinates:

		    Each matrix F3Dmat[*,*,*,k] (k=0,K-1) represents a spatial
		    scalar solar wind quantity at time TT[k].

		    The matrix covers a whole Carrington rotation (360 degree
		    in heliographic longitude) starting at longitude start_lng (see below)

		    Rectangular: N=L=M; cube of data with the location of the Sun
			    as implied by 'volsize' keyword (see below).
		    Spherical: N=# longitudes covering 360 deg
			       L=# latitudes  covering -90,90 deg
			       M=# heliocentric distances covering [volsize[0],volsize[1]]
		    The Sun is located at radial distance 0.

	B3Dmat	array[N,L,M,K]; type: float
		array[N,L,M  ] (K  = 1)
		    Radial component of the magnetic field, corresponding to F3Dmat volume date.

 OPTIONAL INPUT PARAMETERS:
	Parameters used to define the volume data matrix.

	matrix_time=matrix_time
		array[1] or array[K]; type: time structure
		    times for each of the K 3D matrices in F3Dmat
		    For K=1 no time needs to be specified.

	/matrix_rect
		if set then F3Dmat refers to a Cartesian (rectangular) coordinate system
		    (default is a spherical coordinate system).

	volsize=volsize
		scalar, array[2]; type: float; default: [0,1.5]
		    A scalar is interpreted as [0,volsize]

		    Cartesian: volsize[1] is half the size of the cube covered by F3Dmat
			(volsize[0] is not used)
		    Spherical: heliocentric distance range covered by F3Dmat

	volsize=volsize
		Determines the spatial extent of the volume covered by F3Dmat (in AU).
		If tomography files are read then this keyword can be used to limit the extent.
		of the volume rendered.

		If /matrix_rect NOT set (spherical data set)
		    scalar or array[2]; type: float; default: [0,1.5]
		    A scalar is interpreted as [0,volsize].
		    volsize[0] and volsize[1] are the inner and outer radial boundary of F3Dmat

		If /matrix_rect set (rectangular data set)
		    scalar, array[2], array[3], array[2,3]
		    volsize determines the edges of the cube in x, y and z dimension, respectively.
		    -A scalar volsize is interpreted as
		     [[-volsize,volsize], [-volsize,volsize], [-volsize,volsize]] i.e. the
		     origin of the coordinate system is in the center of a cube with sides 2*volsize.
		    - An array[2] is interpreted as
		     [[-volsize[0],volsize[1]], [-volsize[0],volsize[1]], [-volsize[0],volsize[1]]]
		     i.e. the volume is a cube with sides volsize[1]-volsize[0], but the origin is
		     not necessarily in the center.
		    -An array[3] is interpreted as
		     [[-volsize[0],volsize[0]], [-volsize[1],volsize[1]], [-volsize[2],volsize[2]]]
		     i.e. the size of the volume is different for all dimensions, but the
		     origin is still in the center of the volume.

	start_lng=start_lng
		scalar or array[K]; type: float: default: 0.0
		    start heliographic longitude of the matrices in F3Dmat
		    If K > 1 then start_lng can be an array with different start
		    longitudes for each of the K matrices in F3Dmat.
		    (if scalar is used then the same value is used for all K matrices).

	/degrees    if set then start_lng is assumed to be in degrees.

	cme=cme     if set then RemoteView_CMEDensity is called to add the density of a CME to
		    the input F3Dmat density matrix. This is an old trick which superposes
		    a 3D HELIOS CME density on the input volume data.
		    if /matrix_rect is set then this keyword is ignored

		    If /cme is set then:

		    The CME density matrix is assigned the same time as the matrix time.
		    The CME is expanded from matrix_time to view_time (usually the view times
		    will be a couple of days later than the matrix time).
		    rot_cme are two angles (in radians) used to rotate the CME matrix to
			the desired part of the heliosphere
 OUTPUTS:
	M3D		array[1]; type: Sky_Matrix3D structure
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLED BY:
	RemoteView_Init
 RESTRICTIONS:
	For matrices referring to Cartesian coordinates the grid spacings in all three dimensions
	must correspond to the same physical distance in AU. So it is not permitted e.g to use
	a grid spacing of 0.2 AU for the x-dimension and 0.1 for y and z.
 CALLS: ***
	AngleRange, BadValue, InitVar, IsType, MEAN, RemoteView_CMEDensity, SuperArray
	TimeSystem, ToRadians
 PROCEDURE:
 >	The 3D matrix F3Dmat is specified in a heliographic coordinate system, with
	x and y axis in the solar equator and z-axis toward solar north. The Sun is
	located in the origin. The heliographic longitude of the x-axis is given by
	'start_lng'.

 >	If only one spatial matrix is specified (i.e. K=1) then the time keyword need not be specified
	(unless /cme is set)

 >	The structure used to carry around information about the 3D matrix.
	    time	array[K]	time of matrix	    (pointer to heap variable)
	    F3Dmat	array[n,m,l,K]	the matrix itself   (pointer)
	    Lng0	array[K]	heliographic longitude at start of matrix (pointer)

	    dR		float		spatial resolution (AU/grid spacing)
	    rEdge	fltarr(2)	inner and outer edge (grid spacings)
	    Origin	float(3)	location of Sun (grid spacings) (0,0,0) for spherical matrix)
	    rectangular integer 	0: spherical coordinates; 1: Cartesian coordinates

 MODIFICATION HISTORY:
	MAY-2000, Paul Hick (UCSD/CASS)
	DEC-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu), adapted to handle a sequence of
	    matrices from time-dependent tomography


RemoteView_Init_View $SMEI/ucsd/sat/idl/remoteview/remoteview_init_view.pro
[Previous] [Next]
 NAME:
	RemoteView_Init_View
 PURPOSE:

 CATEGORY:
 CALLING SEQUENCE:
	FUNCTION RemoteView_Init_View,	    $
	    view_rect	= view_rect,	$
	    ecliptic	= ecliptic,	$
	    location	= location,	$
	    direction	= direction,	$
	    time	= time, 	$
	    view_time	= view_time,	$
	    fovsize	= fovsize,	$
	    fovtilt	= fovtilt,	$
	    degrees	= degrees,	$
	    ngrid	= ngrid,	$
	    stereo	= stereo,	$
	    eqdistance	= EqDistance,	$
	    eqangle	= EqAngle,	$
	    eqarea	= EqArea,	$
	    earth	= earth,	$
	    silent	= silent
 OPTIONAL INPUT PARAMETERS:
	(only one of location, direction, view_time, fovsize and
	fovtilt needs to be specified as an array with trailing
	dimension K to set up an array of views, e.g. if the same
	view is needed for different times then view_time will be an
	array[K], while location is an array[3], direction an
	array[2] and fovsize and fovtilt are scalars).

	/degrees
		if set then all angles are in degrees (default is radians)
	/view_rect
		By default, spherical coordinates are used (longitude,
		latitude, heliocentric distance). If /view_rect is set
		rectangular coordinates are used.
		This applies to Location and Direction

	/ecliptic
		By default, a heliographic coordinates are used. If /ecliptic is
		set an ecliptic coordinate system is used.
		This applies to Location, Direction and fovtilt

	location = location
		array[3] or array[3,K]; type: float
		    viewing locations
		    Longitude, latitude, heliocentric distance (if /view_rect NOT set),
		    or x, y and z coordinates relative to Sun (if /view_rect set).
		    The distance unit is AU. The unit for angles depends on the /degree setting.
		    If location is not set then a default location is selected
		    based on the location of Earth. Currently the default location
		    has the same ecliptic longitude as Earth, ecliptic latitude
		    of 30 degrees, and a distance of 3 times the Sun-Earth distance.

		    If keyword location is also specified then parts of location
		    that are not set to bad will be inserted in the default viewing
		    location.

	/earth	    selects the position of Earth as the viewing location
		    If keyword location is also specified then parts of location
		    that are not set to bad will be inserted in the viewing
		    location.

	direction = direction
		array[2] or array[2,K] (if /view_rect NOT set); type: float
		    viewing direction for center of field of view as longitude and latitude
		array[3] or array[3,K] (if /view_rect set); type: float
		    viewing direction in rectangular coordinates (in AU). Only the direction
		    will be used.

		    The direction is specified in the same coordinate system as the viewer
		    location, but with the viewer in the origin. If no direction is specified
		    then the direction towards the origin is used.

	view_time = view_time
		array[1] or array[K]; type: time structure
		    times for all views; if not specified then keyword 'time' is used;
		    if this also is not specified the the system time is used.

	fovsize = fovsize
		scalar, array[2], array[2,K]; type: float
		    Angular half-widths (horizontal and vertical) of rectangular field of view
		    If scalar is specified then horizontal and vertical
		    size are assumed to be the same.

	fovtilt = fovtilt
		scalar or array[K]; type: float
		    ??? Tilt angle of field of view. Zero tilt means that the horizontal
		    direction in the image is parallel to the ecliptic or solar
		    equator (depending on the setting of keyword /ecliptic)
		    Tilt angle increases counterclockwise.

	ngrid = ngrid
		scalar or array[3]; type: integer; default: [31,31,31]
		    dimension of the 3D matrix describing the view. The first and second
		    dimension is the 'horizontal' and 'vertical' direction in the field of view.
		    The third is the 'depth' dimension (along the lines of sight)


	/stereo
	stereo = [Angle,Distance]
		/stereo     if set, stereo pairs are produced using default
			    settings for stereo angle (6 degrees) and
			    distance (Sun-viewer distance)
		stereo=[Angle, Distance]
			    if specified as a two-element array, the first
			    element is used as stereo angle, the second as
			    stereo distance. If the distance is set to zero
			    then the viewer-origin distance Loc[2,*] is used.

	/eqdistance	    preserve distance to line of sight through center of image
	/eqangle	    preserve angular distance to line of sight through center of image
	/eqarea 	    preserve area on sky;

 OUTPUTS:
	Result	array[1]; type: SMEIremoteView structure
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	AngleRange, CV_COORD, Carrington, CvSky, InitVar, IsType, RemoteView_EqTrans
	RemoteView_FovTilt, RemoteView_StereoStates, SuperArray, TimeSystem, ToRadians
	big_eph, jpl_body
 CALLED BY:
	RemoteView_Init
 PROCEDURE:
	nview		    # views

	time		    time structure (pointer)
	Loc		    viewing location: heliographic lng, lat (radians)
			    and r (AU) (pointer)
	Dir		    viewing direction: heliographic lng, lat (radians)

	Fov		    angular half-width field of view (radians)
	Tilt		    field of view tilt angle (radians)

	nDim		    dimensions of fov cube
	rNear		    AU

	eqtrans 	    int scalar	    1,2 or 3
			    1: preserve distance to line of sight through center of image
			    2: preserve angular distance to line of sight through center of image
			    3: preserve area on sky;
	stereo		    0: stereo off; 1: stereo on (with left image in even,
			    and right image in odd view locations)

	silent=silent	    controls display of informational messages
 MODIFICATION HISTORY:
	MAY-2000, Paul Hick (UCSD/CASS)
	DEC-2000, Paul Hick (UCSD/CASS)
	    adapted to handle matrix sequences from time-dependent tomography.
	NOV-2001, Paul Hick (UCSD/CASS)
	    fixed bug processing /ecliptic keyword when no viewing location is specified
	APR-2002, Paul Hick (UCSD/CASS)
	    fixed bug processing location when specified explicitly with keyword /ecliptic
	JUN-2004, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Made sure that input is converted to double precision to avoid problems
	    with integer input.


RemoteView_Matte $SMEI/ucsd/sat/idl/remoteview/remoteview_matte.pro
[Previous] [Next]
 NAME:
	RemoteView_Matte
 PURPOSE:
	Sets up the opacity matte values for a volume data set
 CATEGORY:
	Visualization
 CALLING SEQUENCE:
	PRO RemoteView_Matte, FOVLoc, cue_radial=cue_radial, matte=matte, silent=silent
 INPUTS:
	FOVLoc		array[3,n,l,m]; type: float
			    locations of volume elements in FOVCube in
			    heliographic coordinates
			    (longitude, latitude, heliocentric distance).
 OPTIONAL INPUT PARAMETERS:
	cue_radial=cue_radial
			array[4]; type: float
			    [rmin, rmax, depth, depth_power]
			    If depth_power is not specified then 1.0 is assumed.
			    Causes an opacity that drops off with distance from
			    1 at 'rmin' to 'depth' at 'rmax'.
			    The opacity drops off as a power law with power
			    'depth_power' (the power should be positive)
 OUTPUTS:
	matte=matte	array[n,l,m]; type: float
			    opacity matrix (values between 0 and 1)
			    This matrix is passed to RGBO_Project, where
			    it is multiplied with the rgbo vector.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	InitVar, IsType
 CALLED BY:
	RemoteView_Display3D
 PROCEDURE:
	This procedures applies modification to the
	opacities which depend on location in the volume data (rather
	than just the color). The resulting opacities are folded into
	the rgb color indices before returning.
 MODIFICATION HISTORY:
	AUG-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_PlotVertices $SMEI/ucsd/sat/idl/remoteview/remoteview_plotvertices.pro
[Previous] [Next]
 NAME:
	RemoteView_PlotVertices
 PURPOSE:
 CATEGORY:
 CALLING SEQUENCE:
	PRO RemoteView_PlotVertices, V, P
 INPUTS:
 OPTIONAL INPUT PARAMETERS:
 OUTPUTS:
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 EXTERNAL:
 CALLS: ***
	RemoteView_VertexSphere, WhatIs, setup3d, twin
 SEE ALSO:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 EXAMPLE:
 PROCEDURE:
 MODIFICATION HISTORY:
	OCT-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RemoteView_rgbo $SMEI/ucsd/sat/idl/remoteview/remoteview_rgbo.pro
[Previous] [Next]
 NAME:
	RemoteView_rgbo
 PURPOSE:
	Sets up the RGBO vector for volume rendering
 CATEGORY:
	Volume rendering: RemoteView
 CALLING SEQUENCE:
	FUNCTION RemoteView_rgbo,		$
	    rgbo	    = rgbo,		$
	    rgb_range	    = rgb_range,	$

	    full_range	    = full_range,	$
	    full_color	    = full_color,	$
	    full_opacity    = full_opacity,	$

	    mid_range	    = mid_range,	$
	    mid_color	    = mid_color,	$
	    mid_opacity     = mid_opacity,	$

	    opacity_power   = opacity_power,	$
	    update	    = update,		$

	    postfix	    = postfix,		$

	    data_range	    = data_range,	$
	    rgb_index	    = rgb_index,	$

	    silent	    = silent
 INPUTS:
	full_range=full_range
		    scalar or array[2]; type: any; no default (MUST be specified)
			A scalar is interpreted as [0,full_range]
			The full range of values of rendered data in data units
			(e.g. cm^-3 for a rendering of densities)
			This range is converted to the byte range 'rgb_range' (using bytscl).
 OPTIONAL INPUT PARAMETERS:
	rgbo=rgbo   array[256,4]; type: float
			rgbo vector to be updated. If 'rgbo' does not exist and /update
			is not set then a new rgbo vector is created.

	/update     if set then the input rgbo vector is updated
			(ignored if rgbo is not defined)

	rgb_range = rgb_range
		    scalar or array[2]; type: byte; default: [0B,255B]
			Range of elements in rgbo assigned to the data set.

	mid_range = mid_range
		    scalar or array[2]; type: any; default: full_range
			A scalar is interpreted as [0,full_range]
			Internally this is restricted to be a subrange of 'full_range'

			Range of data values defining 'intermediate data values'

	full_color = full_color
		    scalar or array[2]; default: [0,235]
			A scalar is interpreted as [0,full_color].

			Range of colors to be used in the rendering.
			Internally this is restricted to the available colors (currently 236).
			color_range[0] is matched to data value full_range[0]
			color_range[1] is matched to data value full_range[1]

	mid_color = mid_color
		    scalar or array[2]; default: full_color
			Internally this is restricted to be a subrange of 'full_color'
			Range of colors used for rendering the intermediate data values

	full_opacity = full_opacity
		    scalar or array[2]; type: float; default: [0,1]
			range of opacity values

	mid_opacity = mid_opacity
		    scalar or array[2]; type: float; default: full_opacity
			Internally this is restricted to be a subrange of 'full_opacity'
			Opacity applied to data values to mid-range data values

	opacity_power = opacity_power
		    scalar; type: float; default: 1
			power applied to opacity for mid-range data values

 OUTPUTS:
	rgbo	    array[256,4]; type: float
			rgbo color vector needed for volume rendering
			The first index [0,255] represent the data values.
			Only the range 'rgb_range' is filled. The rest is zero
			(if rgbo is created), or unmodified (if rgbo is updated)
			The colors values rgbo[0:2,*] are not yet multiplied
			with the opacities.

	data_range= data_range
		    array[2], type: float
			The actual range of values of rendered data in data units.
			This is derived from the input 'full_range'
	rgb_index = rgb_index
		    array[2], type: byte
			Actual range of elements in rgbo assigned to the data set.
			This is derived from the input 'rgb_range'
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
	@skycolors.pro		    ; Dummy comment for Linux
 CALLS: ***
	FILEPATH, InitVar, IsType, SetRange, flt_read, gridgen, who_am_i
 CALLED BY:
	RemoteView_Init_Display, qRemoteView_Calculate
 SIDE EFFECTS:
	Needs file remoteview_rgbo.txt, storing the color table information
 RESTRICTIONS:
 PROCEDURE:
	The original 3D matrix will cover a certain range of data values. Volume rendering
	can only handle a maximum of 256 different 'density values'.

	We first need to decide how many of these 256 colors we want to assign to the
	3D density matrix. If only one 3D volume data set is rendered then the full
	range [0,255] can be used, but when several 3D volume data sets are merged
	each set is assigned its own subrange. This is done with keyword 'rgb_range'

	Next we need to set the range of data values in the 3D matrix to be rendered.
	'full_range' sets the data range to be scaled to 'rgb_range'. The 3D matrix has
	to be converted to byte by the IDL bytscl command (as e.g. in RemoteView_Display3D)

	    rgb_range[0]+bytscl( Matrix, top=rgb_range[1]-rgb_range[0], min=full_range[0], max=full_range[1])

	This scales the data values to the proper range 'rgb_range'
	Note that data values below full_range[0] are treated the same as full_range[0], and data
	values above full_range[1] the same as full_range[1]).

	'mid_range' selects a subrange of 'full_range'. These two values separate the full range
	in three sections:
	    low data values:	    [full_range[0], mid_range[0]]
	    intermediate values:    [mid_range [0], mid_range[1]]
	    high data values:	    [midrange  [1], full_range[0]]
	These three ranges are treated separately.

	To set up the rgbo vector an 8-bit color table and an opacity needs to be defined.
	The color table information is stored in two files (see RESTRICTIONS).
	Keywords 'full_color' and 'mid_color' select color ranges from this table.
	Keywords 'full_opacity' and 'mid_opacity' set the opacities.

	Data values, color indices and opacities are matched as follows:
	    full_range[0]   <----->	full_color[0]	<------>    full_opacity[0]
	    mid_range [0]   <----->	mid_color [0]	<------>    mid_opacity [0]
	    mid_range [1]   <----->	mid_color [1]	<------>    mid_opacity [1]
	    full_range[1]   <----->	full_color[1]	<------>    full_opacity[1]

	For the low data values (between full_range[0] and mid_range[1]) both color index
	and opacity are obtained by a linear scaling with the data values; the same is
	the case for the high data values (between mid_range[1] and full_range[1]).

	For the intermediate data values the color index scales linearly with the
	data values. The opacity scales as a power law of data value with the power
	specified in keyword opacity_power.
 MODIFICATION HISTORY:
	JUN-2000, Paul Hick (UCSD/CASS)
	AUG-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Color table file is now looked for in same directory as
	    this source code file.


RemoteView_StereoStates $SMEI/ucsd/sat/idl/remoteview/remoteview_stereostates.pro
[Previous] [Next]
 NAME:
	RemoteView_StereoStates
 PURPOSE:
	Takes a single viewing state and splits it up into two states
	representing a stereo pair
 CATEGORY:
	Number strangling
 CALLING SEQUENCE:
	FUNCTION RemoteView_StereoStates, nView, TT, Loc, Dir, Fov, Tilt, stereo=Stereo, degrees=degrees
 INPUTS:
	TT[n], Loc[3,n], Dir[2,n], Fov[n], Tilt[n]
		arrays describing n viewing states (see RemoteView)
	/stereo
	stereo=[Angle,Distance]
		/stereo     if set, stereo pairs are produced using default
			    settings for stereo angle (6 degrees) and
			    distance (Sun-viewer distance)
		stereo=[Angle, Distance]
			    if specified as a two-element array, the first
			    element is used as stereo angle, the second as
			    stereo distance. If the distance is set to zero
			    then the viewer-origin distance Loc[2,*] is used.
 OPTIONAL INPUT PARAMETERS:
	/degrees    if set, all angles are in degrees (default: radians)
 OUTPUTS:
	R	    scalar; type: integer
			    0 if no stereo states were calculated
			    1 if stereo states were calculate

 OPTIONAL OUTPUT PARAMETERS:
	(Only calculated if return value R = 1)
	TT[2*n], Loc[3,2*n], Dir[2,2*n], Fov[2,2*n], Tilt[2*n]
		    The stereo pairs for the n input states are stored as
		    TT[2*i  ]	    right eye view for state i=0,n-1
		    TT[2*i+1]	    left  eye view for state i=0,n-1
		    (Note that TT, Fov and Tilt values will be the
		    same for left and right view; Loc and Dir will be
		    slightly different from the input Loc and Dir)
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CV_COORD, EulerRotate, SuperArray, ToRadians
 CALLED BY:
	RemoteView_Init_View
 PROCEDURE:
 >	Called by RemoteView to set up stereo pairs
	In stereo mode each state is split into a stereo pair.
 >	Coordinate systems are defined in document SkyGrid.doc (probably in D:\work\doc).
 >	The stereo pair states are defined in the X,Y,Z coordinate system (+Y is the
	horizontal direction toward the right). In this coordinate system the viewer
	location is at the origin and the viewing direction is the positive Z-axis.
 >	The stereo pair is defined by two viewing locations close to the origin and
	two viewing direction close to the +Z axis.
	Take a point P on the +Z axis at distance StereoDist. Take viewing locations
	R on the +Y axis and L on -Y axis at equal distance to the origin such that
	the lines RP and YP connecting these points to P make an angle StereoAngle
	L and R are the positions of left and right eye, respectively.
	LP and RP are the viewing directions from left and right eye, respectively.
	The separation LR is 2*Dist*tan(StereoAngle/2.)
 MODIFICATION HISTORY:
	FEB-1998, Paul Hick (UCSD/CASS)
	MAY-2000, Paul Hick (UCSD/CASS, pphick@ucsd.edu); converted from procedure to function


RemoteView_VertexMap $SMEI/ucsd/sat/idl/remoteview/remoteview_vertexmap.pro
[Previous] [Next]
 NAME:
	RemoteView_VertexMap
 PURPOSE:
	Map a given synoptic map to a color index range.
 CATEGORY:
 CALLING SEQUENCE:
	FUNCTION RemoteView_VertexMap, Vertex, VMap, Colors,	$
	    polygon=Polygon, scale=Scale, nearestneighbour=NearestNeighbour

 INPUTS:
	Vertex	    float array[3,n]
			    x,y,z coordinates of the vertices of a spherical
			    polygon surface (as returned by VertexSphere)
	VMap	    array[nLng,nLat]
			    synoptic map to be mapped to sphere, covering range
			    [0,360] degrees in longitude, and [-90,90] deg in latitude
 OPTIONAL INPUT PARAMETERS:
	Colors	    int array[2]
			    defines a range of color indices. VMap is rescaled
			    into the specified color range: the minimum is mapped
			    to Colors[0], the maximum to Colors[1].
			    If VMap already is an array of color indices than
			    this argument can be omitted.
	Scale	    int scalar
			    use only Scale evenly space colors between
			    Color[0] and Color[1]
	/nearestneighbour   if set, the map value at each vertex is calculated by
			    taking the value of the neares point of VMap.
	polygon=Polygon
		    long array[m]
			    polygon list for the spherical surface (as returned by
			    VertexSphere). See IDL Help for shade_volume for
			    description of the structure of Polygon

 OUTPUTS:
	Result	    No polygon array specified:
		    long array[n]	color indices; one for each vertex.
					To be used in the 'shade' keyword to polyshade
		    Polygon array specied:
		    long array[m]	color indices; one for each polygon
					To be used in the 'shade_polygon' keyword to polyshade

 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CV_COORD, SCALE2LEVELS
 CALLED BY:
	RemoteView
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 >	The synoptic map VMap is 2D array giving function values on a spherical surface
	on the regular grid in longitude ([0,360] degrees) and latitude ([-90,90] degrees).
 >	The Vertex array and Polygon array describe the surface of the sphere in terms
	of polygons.
 >	Function values at the vertices are calculated by interpolation or nearest neighbour
	method, and converted to integer color indices, using the round function.
 MODIFICATION HISTORY:


RemoteView_VertexSphere $SMEI/ucsd/sat/idl/remoteview/remoteview_vertexsphere.pro
[Previous] [Next]
 NAME:
	RemoteView_VertexSphere
 PURPOSE:
	Calulate the vertices for shading a sphere.
 CATEGORY:
	Skyview package
 CALLING SEQUENCE:
	PRO RemoteView_VertexSphere, nS, Vertex, Polygon
 INPUTS:
	nS	    scalar	determines the resolution of the sphere.
				25 is a reasonable value
 OUTPUTS:
	Vertex, Polygon
		    arrays	determined by IDL shade_volume procedure
				the vertices are points on the unit sphere,
				relative to the origin of the sphere.
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	gridgen
 CALLED BY:
	RemoteView_Init_Display, RemoteView_PlotVertices
 PROCEDURE:
	Set up a 3D volume data array containing the distance
	to the sphere center. Then calculate the vertex and polygon arrays.
	The vertices usually need to be scaled to the appropriate size, and/or
	the origin needs to be shifted.
 MODIFICATION HISTORY:
	FEB-1998, Paul Hick (UCSD/CASS, pphick@ucsd.edu)


RemoteView_ZEclipticPlane $SMEI/ucsd/sat/idl/remoteview/remoteview_zeclipticplane.pro
[Previous] [Next]
 NAME:
	RemoteView_ZEclipticPlane
 PURPOSE:
	Get coordinate arrays describing ecliptic plane in
	a Cartesian heliographic coordinate system.
 CATEGORY:
	Sky graphics
 CALLING SEQUENCE:
	FUNCTION RemoteView_ZEclipticPlane, TT, X, $
	    corners = Corners	, $
	    grid    = Grid	, $
	    angle   = Angle	, $
	    degrees = Degrees	, $
	    color   = color
 INPUTS:
	TT		array[1]; type: standard time structure;
			    time
	X		array[2,*]
			    X and Y coordinates of points in the solar
			    equatorial plane.
 OPTIONAL INPUT PARAMETERS:
	/corners	if set then only the first 2 points X[*,0:1] are used. The output
			    arrays will be an array[3,5], in the sequence
			    (0,0),(1,0),(1,1),(0,1),(0,0), i.e. the Z array can be used to
			    draw a square representing the ecliptic plane.
	/grid		if set, every value in X[0,*] is combined with every X[1,*]. This
			    defines a square grid of points covering the ecliptic plane
	angle=Angle	scalar; default: 0
			    the input coordinates are rotated over Angle in the solar
			    equatorial plane before the Z-coordinates are calculated
	/degrees	if set, Angle is in degrees (default: radians)
 OUTPUTS:
	ZEcliptic	array[*], array[*,*]
	X		array[*], array[*,*]
			    X,Y,Z coordinates of points in ecliptic plane
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	CvSky, InitVar, IsType, ToRadians
 CALLED BY:
	RemoteView
 PROCEDURE:
	The X-Y-Z coordinate system is associated with heliographic coordinates:
	X-Y plane is the solar equator; X-axis has heliographic longitude zero;
	Z-axis points to solar North pole.
	Ecliptic north has has ecliptic latitude !pi/2 (the longitude doesn't matter,
	use 0). Converting this to heliographic coordinates gives the heliographic
	longitude, rLng, and latitude, rLat of ecliptic North.
	If [A,B,C] is a unit vector pointing to ecliptic north, then
	    A = cos(rLat)*cos(rLng)
	    B = cos(rLat)*sin(rLng)
	    C = sin(rLat)
	The equation of the ecliptic plane in heliographic coordinates is given
	by the A*x+B*y+C*z=0. So for given x,y: z = -(A*x+B*y)/C
 MODIFICATION HISTORY:
	28-Feb-1997, Paul Hick (UCSD, pphick@ucsd.edu)


remove_stars $SMEI/user/pphick/idl/remove_stars.pro
[Previous] [Next]
 NAME:
	remove_stars
 CALLING SEQUENCE:
	PRO remove_stars, year, camera=camera, force=force
 INCLUDE:
	@compile_opt.pro
 CALLS: ***
	FILEPATH, InitVar, smei_star_remove


remove_stars_c3s $SMEI/user/pphick/idl/remove_stars_c3s.pro
[Previous] [Next]
 NAME:
	remove_stars_c3s
 CALLING SEQUENCE:
	PRO remove_stars_c3s, year, force=force
 INCLUDE:
	@compile_opt.pro
 CALLS: ***
	FILEPATH, InitVar, smei_star_remove


remove_stars_m0 $SMEI/user/pphick/idl/remove_stars_m0.pro
[Previous] [Next]
 NAME:
	remove_stars_m0
 CALLING SEQUENCE:
	PRO remove_stars_m0, year, camera=camera, force=force, keepbkgnd=keepbkgnd
 INCLUDE:
	@compile_opt.pro
 CALLS: ***
	FILEPATH, InitVar, smei_star_remove


rename_mrk $SMEI/user/pphick/idl/rename_mrk.pro
[Previous] [Next]
 NAME:
	rename_mrk
 CALLING SEQUENCE:
	pro rename_mrk
 INCLUDE;
	@compile_opt.pro
 CALLS: ***
	GetFileSpec


reset_colors $SMEI/ucsd/obsolete/reset_colors.pro
[Previous] [Next]
 NAME:
	reset_colors
 CALLING SEQUENCE:
	PRO reset_colors, reverse=reverse
 INCLUDE:
	@compile_opt.pro
 CALLS: ***
	FLIP_BLACK_AND_WHITE
 CALLED BY:
	GetColors [2], GetColors [3], PlotEarthSkymap [2], PlotEarthSkymap [3]
	PlotEarthSkymap [4], allsky [1], allsky [2], allsky [3], allsky_f
	vu_thomson_antifish, vu_thomson_hammer


RGBO_DepthCue $SMEI/ucsd/gen/idl/toolbox/graphics/rgbo_depthcue.pro
[Previous] [Next]
 NAME:
	RGBO_DepthCue
 PURPOSE:
	Returns a matte matrix for a depth cue operation
 CATEGORY:
	gen/idl/toolbox/graphics
 CALLING SEQUENCE:
	PRO RGBO_DepthCue, cue_depth=cue_depth, size=sz, dimension=dimension, matte=matte
 INPUTS:
	cue_depth=cue_depth scalar or array[2]; type: float
				scalar is interpreted as [depth,depth]
				depth[0]: opacity at maximum depth
				depth[1]: power applied to dropoff from minimum to
				maximum depth (should be positive)
 OPTIONAL INPUT PARAMETERS:
	size=sz 	    array; type: integer
				IDL size vector for 3D array
				only the dimensions sz[1:sz[0]] are used
	dimension=dimension array[3]; type: integer
				dimensions of 3D array

				Either one of these keyword is used to specify the dimensions
				of a 3D array [N,L,M]

	matte=matte	    array[N,L,M]; type: float
				The matte matrix for the depth cue is multiplied into
				the input matte, if it exists
 OUTPUTS:
	matte=matte	    array[N,L,M]; type: float
				resulting matte matrix (input matte times depth cue matte)
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	IsType, SuperArray
 CALLED BY:
	RemoteView_Display3D
 SEE ALSO:
	RGBO_Project
 PROCEDURE:
	The 3rd dimension of M is taken to be the z-dimension.
	m=0 has maximum depth (farthest away from the viewer) and gets opacity
	depth[0]. m=M-1 has minimum depth (nearest to the viewer) and gets opacity
	of one. The dropoff between the two is given by the power value:
	    o = depth[0]+(1-depth[0])*( z/(ndim[2]-1)  )^depth[1]
	The resulting values are constrained to stay between 0 and 1.
 MODIFICATION HISTORY:
	AUG-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RGBO_Project $SMEI/ucsd/gen/idl/toolbox/graphics/rgbo_project.pro
[Previous] [Next]
 NAME:
	RGBO_Project
 PURPOSE:
	Merges content of z-buffer with color and opacity
	array of volume data set
 CATEGORY:

 CALLING SEQUENCE:
	FUNCTION RGBO_Project, zvol, rgbo, $
	    zpix	= zpix		, $
	    zbuf	= zbuf		, $
	    ctrgb	= ctrgb 	, $
	    background	= background	, $
	    bad_data	= bad_data	, $
	    bad_opacity = bad_opacity	, $
	    low_data	= low_data	, $
	    low_opacity = low_opacity	, $
	    high_data	= high_data	, $
	    high_opacity= high_opacity	, $
	    matte	= matte
 INPUTS:
	zvol		array[N,M,L]; type: byte
			    byte array for volume data
	rgbo		array[256,4]; type; float
			    rgbo vector; rgbo[*,0]=o*r, rgbo[*,1]=o*g, rgbo[*,2]=o*b
			    rgbo[*,3] = o*255. o = opacity (0 <= o <= 1), r,g,b = red,green
			    blue color indices (0 <= r,g,b <= 255).
 OPTIONAL INPUT PARAMETERS:
	zpix=zpix	array[n,m]; type: byte
			    Z-buffer content (the Z-buffer iis a 256-color device)
			array[n,m,3]; type: byte
			    Z-buffer content as true color image
	zbuf=zbuf	array[n,m]; type: integer
			    Z-buffer depth array
	background=background
			scalar; type: byte
			    background color index in Z-buffer
			    If not specified then !p.background is used.
			array[3]; type: byte
			    (only if zpix is true color image)
			    background color rgb values in Z-buffer
	ctrgb=ctrgb	array[256,3]; type: byte
			    (only if zpix is 256-color image)
			    rgb values for color table to be used to interpret zpix
			    If not specified then the current color table is retrieved
			    with the IDL tvlct function.
	matte=matte	array[N,M,L] or array[N,M,L,4]
			    matrix of values between 0 and 1 to be applied to
			    zvol after conversion to rgbo values and before projecting onto
			    the image plane. This can be used e.g. to implement depth cueing.
			    An array[N,M,L] is applied to each channel (r,g,b,o).
 OUTPUTS:
 OPTIONAL OUTPUT PARAMETERS:
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	ArrayLocation, CONGRID, InitVar, IsType, SuperArray
 CALLED BY:
	RemoteView_Display3D
 SEE ALSO:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
	JUL-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)


RotationMeasure $SMEI/ucsd/sat/idl/toolbox/faraday/rotationmeasure.pro
[Previous] [Next]
 NAME:
	RotationMeasure
 PURPOSE:
	Calculates component of vector field n*B along line of sight
 CATEGORY:
	sat/idl/toolbox/faraday
 CALLING SEQUENCE:
	FUNCTION RotationMeasure, REarth, R, F, w3darg, $
	    ut_earth	= ut_earth  , $
	    pa_earth	= pa_earth  , $
	    elo_earth	= elo_earth , $
	    elo_sun	= elo_sun   , $
	    degrees	= degrees   , $
	    get_blos	= get_blos
 INPUTS:
	REarth			    not used
	R	    array[3,N,L,M]  heliographic coordinates of points in a 2D grid
				    of NxL lines of sight with M segments along each
				    R[0,*,*,*] : heliographic longitude
				    R[1,*,*,*] : heliographic latitude
				    R[2,*,*,*] : heliocentric distance (AU)
	F	    array[N,L,M,3]  magnetic field vector, multiplied by the
				    density, in RTN coordinates
	w3darg			    w3darg[0]: los step size (AU)
				    w3darg[1]: wavelength (m)
				    w3darg[2]: density normalization (default: 2)
				    w3darg[3]: Br normalization (default: 2)
				    w3darg[4]: Bt normalization (default: 1)
				    w3darg[5]: Bn (default: 1)
 OPTIONAL INPUT PARAMETERS:
	/degrees		    if set all input angles are in degrees
	pa_earth    array[N,L,M]    position angle from ecliptic north
	elo_earth   array[N,L,M]    angle Sun-Earth-LOS segment (i.e. conventional
				    elongation angle)
	elo_sun     array[N,L,M]    angle Earth-Sun-LOS segment
	/get_blos   if set, then the F-component along the line of sight is
		    returned. Note that this can be used to get the magnetic
		    field component along the line of sight by setting F to the
		    magnetic field (omitting multiplication with density), and
		    setting w3dard[2]=0.
 OUTPUTS:
	R	    array[N,L,M]    rotation measure in degrees/m^2; see PROCEDURE
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	CV_COORD, CvSky, CvSky_RTN, EulerRotate, InitVar, SubArray, ToRadians, scalarproduct
 CALLED BY:
	vu_lineofsight
 PROCEDURE:
	RM = e^3/(2*pi*m^2*c^4) Integral( n_e * H.dl )	radians cm^-2
	In Gaussian units:
	    e = 4.8 x 10^-10 esu
	    m = 9.1 x 10^-28 gr
	    c = 3.0 x 10^-10 cm/s
	    n_e in cm^-3; H in Gauss; dl in cm

	RM = 2.6311927 x 10^-17 Integral( n_e x H.dl ) radians cm^-2

	The tomography magnetic files contain magnetic field in nT = 10^-5 Gauss
	The distance scale for the integration is AU = 1.5 x 10^13 cm
	The wavelengths are in the meter range, so we change
	to radians m^-2. Multiplying with the resulting

	10^-5 x 1.5 x 10^13 x 10^4 = 1.5 x 10^12:

	RM = 3.9362082 x 10^-5 Integral( n_e[cm^-3] x H[nT].dl[AU] ) radians m^-2

	The integrand is returned here in degrees m^-2:

	RM = 3.9362082 x 10^-5 n_e[cm^-3] x H[nT].dl[AU]	    radians m^-2

	RM = 3.9362082 x 10^-5 n_e[cm^-3] x H[nT].dl[AU] x (180/pi) degrees m^-2
	   = 2.2552811 x 10^-3 n_e[cm^-3] x H[nT].dl[AU]	    degrees m^-2

	The constant 3.9362082 x 10^-05 is calculated from fields in the
	!sun and !physics structures:
	    3.9362082 x 10^-05 = !sun.au*0.01d0*!physics.chargeofelectron^3/	$
		(2*!dpi*!physics.massofelectron^2*!physics.speedoflight^4)

	The integration step size dl[AU] is stored in w3darg[0]
	If w3darg[1] exists it should contain the wavelength in meters.
	In this case RM*w3darg[1]^2 is returned, i.e. the Faraday rotation
	in degrees.

	A typical integration will extend over 2 AU from Earth. So in order of
	magnitude the integrated RM will be:

	RM = 0.045 n_e[cm^-3] x H[nT] degrees m^-2

	Typical background values are n_e ~ 10-20 cm^-3 and H ~ 1-2 nT, so typical
	background RM values will be in the range 0.5 to 2 degrees m^-2

 MODIFICATION HISTORY:
	OCT-2006, Paul Hick (UCSD/CASS)
	JUN-2007, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Bug identified by Liz Jensen. The integration step size needs to
	    be absorbed in the return value.
	    Changed sign on return value (effectively this changes the direction
	    of the integration, which now runs in the direction of the wave vector
	    of the incoming radio waves (toward Earth).


run_forecast_insitu $SMEI/user/sunspot/idl/run_forecast_insitu.pro
[Previous] [Next]
 NAME:
	run_forecast_insitu
 PURPOSE:
	IDL main program. Run on Linux as a cron job.
 CATEGORY:
 CALLING SEQUENCE:
	idl run_forecast_insitu
 INPUTS:
	(through environment variables)
 OUTPUTS:
	(none)
 CALLS:
	Instrument, TimeSet, TimeUnit, compareinsitu
 RESTRICTIONS:
	Environment variables:
	ea_dir	    directory where ea*.* are located
	dt_offset   for-/aftcast offset specified in days
	instrument  in situ data
 PROCEDURE:
	After completion IDL exits again.
 MODIFICATION HISTORY:
	MAR-2000, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	DEC-2000, B. Jackson (UCSD/CASS; bvjackson@ucsd.edu)


run_help $SMEI/pro/main/run_help.pro
[Previous] [Next]
 NAME:
	run_help
 PURPOSE:
	IDL main program to update the software help files. Run on Linux as a cron job.
 CATEGORY:
	WWW
 CALLING SEQUENCE:
	idl run_help
 INPUTS:
	(none)
 OUTPUTS:
	(none)
 CALLS:
	www_help_smei, www_help_sync.py
 PROCEDURE:
	After executing the startup files, www_help_smei is run and IDL exits again.
 MODIFICATION HISTORY:
	AUG-2000, Paul Hick (UCSD/CASS)
	FEB-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added call to www_help_rsync.py


run_map $SMEI/pro/main/run_map.pro
[Previous] [Next]
 NAME:
	run_map
 PURPOSE:
	IDL main program to update the IPS forecast Web pages.
	Run on Linux as a cron job.
 CATEGORY:
	WWW
 CALLING SEQUENCE:
	idl run_map
 INPUTS:
	(none)
 OUTPUTS:
	(none)
 CALLS:
	IsType, TimeOp, TimeSystem, TimeUnit, destroyvar, forecast, forecast_env, is_running
	vu_prefix
 RESTRICTIONS:
	Can onLy be run on Linux
	idl_startup.pro needs to be run. This requires that the environment
	variable IDL_STARTUP is set.
 PROCEDURE:
	After completion IDL exits again.
 MODIFICATION HISTORY:
	MAR-2000, Paul Hick (UCSD/CASS)
	SEP-2002, Paul Hick (UCSD/CASS)
	    Added processing of magnetic field for corotating tomography
	JUL-2003, Paul Hick (UCSD/CASS)
	    Write file $TUB/run_map.txt to indicate that a copy of run_map
	    is already running. The file is deleted on completion.
	    This prevents multiple copies of run_map to run when the hourly
	    forecasts take more than an hour to complete.
	JUL-2004, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Introduced function vu_prefix and forecast_env for better
	    external control of input files.


run_marker $SMEI/pro/main/run_marker.pro
[Previous] [Next]
 NAME:
	run_marker
 PURPOSE:
	IDL main program to update final (averaged) files for the
	time-dependent tomography.
 CATEGORY:
	pro/tool
 CALLING SEQUENCE:
	idl $pro/run_marker
 INPUTS:
	(none)
 OUTPUTS:
	(none)
 CALLED_BY:
	sync_daily_ips
 CALLS:
	forecast_ice, vu_prefix, vu_update_marker
 RESTRICTIONS:
	Can onLy be run on Linux
	idl_startup.pro needs to be run. This requires that the environment
	variable IDL_STARTUP is set.
 PROCEDURE:
	This is run as part of the cron job sync_daily_ips after new
	time-dependent tomography files have been created.

	vu_update_marker picks up all files with the highest marker value
	(these should be the files created by the last tomography run).
	All times in this list are combined with all other files for the
	same time (but with lower marker values) into a new 'best' tomography
	files for these times.
 MODIFICATION HISTORY:
	APR-2000, Paul Hick (UCSD/CASS)
	SEP-2002, Paul Hick (UCSD/CASS)
	    Added call to forecast_ice to move older files out of the way.
	    Added processing of magnetic bb3d files.
	JUN-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    bb3d files are now called wson files.


run_mean $SMEI/pro/main/run_mean.pro
[Previous] [Next]
 NAME:
	run_mean
 PURPOSE:
	IDL main program to update final (average) files for
	corotating tomography.
 CATEGORY:
	WWW
 CALLING SEQUENCE:
	idl $pro/run_mean
 INPUTS:
	(none)
 OUTPUTS:
	(none)
 CALLED_BY:
	sync_daily_ips
 CALLS:
	forecast_env, forecast_ice, vu_prefix, vu_update_hours
 RESTRICTIONS:
	Can only be run on Linux.
	idl_startup.pro needs to be run. This requires that the environment
	variable IDL_STARTUP is set.
 PROCEDURE:
	This is run as part of the cron job sync_daily_ips after new
	tomography files have been created.

	First all hourly tomography files that are affected by the
	new tomography file are updated (by overwriting them).
	Then a number of new hourly files are created by extending
	the range of hourly to at most 3 days beyond the time of
	the new tomography file.
 MODIFICATION HISTORY:
	APR-2000, Paul Hick (UCSD/CASS)
	SEP-2002, Paul Hick (UCSD/CASS)
	    Added processing of 'bb3d' files
	    Added call to forecast_ice to move older files out of the way.
	JUN-2003, Paul Hick (UCSD/CASS)
	    bb3d files are now called wson files.
	JUL-2004, Paul Hick (UCSD/CASS)
	    Modified to process more than one type of magnetic field data.


run_movie $SMEI/pro/main/run_movie.pro
[Previous] [Next]
 NAME:
	run_movie
 PURPOSE:
	IDL main program to create gif animations. Run on Linux as a cron job.
 CATEGORY:
	pro/tool
 CALLING SEQUENCE:
	idl $pro/run_movie
 INPUTS:
	(none)
 OUTPUTS:
	(none)
 CALLS:
	forecast_env, forecast_movie, jpl_body, vu_prefix
 RESTRICTIONS:
	Can only be run on Linux
	idl_startup.pro needs to be run. This requires that the environment
	variable IDL_STARTUP is set.
 PROCEDURE:
	This is run as part of the cron job bash=sync_daily_ips= after new
	hourly-averaged tomography files have been created.
 MODIFICATION HISTORY:
	APR-2000, Paul Hick (UCSD/CASS)
	SEP-2002, Paul Hick (UCSD/CASS)
	    Added magnetic field movies for corotating tomography
	    Added magnetic field movies for time-dependent tomography
	JUL-2004, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Introduced functions vu_prefix and forecast_env for better
	    external control of input files.


run_ssw $SMEI/ucsd/gen/idl/util/run_ssw.pro
[Previous] [Next]
 NAME:
	run_ssw
 PURPOSE:
	IDL main program to update the SSW help files.
 CATEGORY:
	www_help
 CALLING SEQUENCE:
	idl $pro/run_ssw
 INPUTS:
	(none)
 OUTPUTS:
	(html files)
 CALLS:
	www_help_sync.py, www_help_tree
 PROCEDURE:
	After completion IDL exits again.
 MODIFICATION HISTORY:
	JAN-2002, Paul Hick (UCSD/CASS)
	FEB-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added www_help_sync.py call


run_ssw_smei $SMEI/ucsd/gen/idl/util/run_ssw_smei.pro
[Previous] [Next]
 NAME:
	run_ssw_smei
 PURPOSE:
	IDL main program to update the SSW help files.
 CATEGORY:
	www_help
 CALLING SEQUENCE:
	idl run_ssw_smei
 INPUTS:
	(none)
 OUTPUTS:
	(html files)
 CALLS:
	do_file, www_help_tree
 PROCEDURE:
	After completion IDL exits again.
 MODIFICATION HISTORY:
	JAN-2002, Paul Hick (UCSD/CASS)
	FEB-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added www_help_sync.py call