[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
[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
[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)