AlignHeliosphere $SSW_SMEI_UCSD/sat/idl/util/alignheliosphere.pro
[Next]
 NAME:
	AlignHeliosphere
 PURPOSE:
	For a given set of 3D heliospheric matrices covering different ranges of
	heliographic longitudes (or, equivalently, Carrington variables) 'align'
	all matrices so they start and end at the same heliographic longitude,
	interpolating linearly where necessary.
 CATEGORY:
	sat/idl/util
 CALLING SEQUENCE:
	result = AlignHeliosphere(ff, dOff)
 INPUTS:
	ff	    array[n,l,m,k] or array[n,l,m,d,k]; type: float
			3D heliospheric matrix specified on a heliographic grid
			n: # heliographic longitudes (can cover more than one rotation)
			l: # latitudes
			m: # heliocentric distances
			d: (optional) # data types (e.g. k=2 if velocity and density
			    are stored in one array)
			k: # matrices to be aligned (usually this represents time)

	dOff	    array[k]; type: float
			offset between k matrices in grid spacings
 OPTIONAL INPUT PARAMETERS:
	aligneps=aligneps
		    scalar; type: float
			if dOff is less than eps from an integer number of grid spacings
			than it is rounded to the nearest integer. This reduces the
			alignment to a cyclic shift (bypassing the call to the IDL
			interpolate function). This should be faster.
	/nowrap     by default the alignment is done by applying a mod 360 operation.
			If /nowrap is set this is suppressed and the missing part of a
			map after alignment is set to BadValue(0.0)
 OUTPUTS:
	result	    same as input 'ff', but now aligned
 INCLUDE:
	@compile_opt.pro	    ; On error, return to caller
 CALLS: ***
	BadValue, InitVar, destroyvar
 CALLED BY:
	RemoteView_Init_FOV, vu_mean
 PROCEDURE:
	This procedure was written to deal with (a sequence of) 3D matrices (longitude, latitude,
	radial distance). For a matrix with only longitude, or only longitude and latitude, this
	procedure can be used after inserting a dummy dimension of 1 for the missing coordinate(s).
 MODIFICATION HISTORY:
	APR-2001, Paul Hick (UCSD/CASS)
	JUL-2002, Paul Hick (UCSD/CASS)
	    Allowed for special case of 3D array ff[n,l,m] (i.e. k=1 but without degenerate dimension)
	NOV-2002, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added /nowrap keyword


anicenum $SSW_SMEI_UCSD/sat/idl/toolbox/tricks/anicenum.pro
[Previous] [Next]
 NAME:
	anicenum
 PURPOSE:
	Returns a 'nice' round number close to the input value
 CATEGORY:
	Tricks
 CALLING SEQUENCE:
	R = anicenum(x [,/upper])
 INPUTS:
	x	    scalar; type: float
			input floating value
 OPTIONAL INPUT PARAMETERS:
	/upper	    if set the input value is rounded up
 OUTPUTS:
	R	    scalar; type: float
			'nice' value
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	InitVar, IsType
 CALLED BY:
	GetColors, PlotCoronagraph, PlotEarthSkymap, PlotEloTimeMap, PlotPolarSkymap
	vu_insitucurve
 PROCEDURE:
	Trivial
 MODIFICATION HISTORY:
	JUL-2001, Paul Hick (UCSD/CASS)
	AUG-2003, Paul Hick (UCSD/CASS; pphick@ucsd.edu)
	    Added digits and astring keyword


arrow3d $SSW_SMEI_UCSD/sat/idl/toolbox/tricks/arrow3d.pro
[Previous] [Next]
 NAME:
	arrow3d
 PURPOSE:
	Rudimentary way of plotting a 3D arrow
 CATEGORY:
	Tricks
 CALLING SEQUENCE:
	arrow3d, tail, tip, tiplen=tiplen, tipwid=tipwid
 INPUTS:
	tail	array[3], type: any
		    x,y,z coordinates for end of arrow
	tip	array[3], type: any
		    x,y,z coordinates for tip of arrow
 OPTIONAL INPUT PARAMETERS:
	tiplen=tiplen	scalar, type: float, default: 0.1*(arrow length)
			length of the arrow tip
	tipwid=tipwid	scalar, type: float, default: 0.1*(arrow length)
			thickness of the arrow tip
	color=color	scalar, type: integer
			color used to fill 'inside' of array tip
	_extra=_extra	extra keywords passed to IDL plots and xyouts command
			(linestyle, thick, charsize, etc.)

	labeltext=labeltext
		    scalar; type: string
			label to plotted near axis (usually near the end r1)

	There are two keywords to determine label placement:

	labeldist=labeldist
		    scalar; type: int or float
			labeldist is a distance (in data coordinates) along the line from r0 to r1 where the label
			is placed. Since this placement sometime looks messy when a strange 3D transformation
			is in effect, labeloffset
	labeloffset=labeloffset
		    array[2]; type: int or float
			adjustment to the position of labeltext in x and y data coordinates
			This is usually used to manually tweak the position determined with labeldist
			(depending on the !p.t matrix the computed position can be awkward).

 OUTPUTS:
	(none)
 INCLUDE:
	@compile_opt.pro	; On error, return to caller
 CALLS: ***
	IsType, coord3to2, unitvectors
 CALLED BY:
	plot3darc, plot3dline
 RESTRICTIONS:
	A valid !p.t matrix must be defined
 PROCEDURE:
	Calls to plots and polyfill
 MODIFICATION HISTORY:
	AUG-1999, Paul Hick (UCSD/CASS; pphick@ucsd.edu)