[Previous]
[Next]
NAME:
EFONT
PURPOSE:
This widget provides a vector font editor and display.
CATEGORY:
Fonts.
CALLING SEQUENCE:
EFONT, Init_font
INPUTS:
Init_font: The initial font index, from 3 to 29. Default = 3.
KEYWORD PARAMETERS:
GROUP: The widget group, if part of a hierarchy.
FILE: alternate font file name/path. Use this if you don't want
to modify the standard font file.
BLOCK: Set this keyword to have XMANAGER block when this
application is registered. By default the Xmanager
keyword NO_BLOCK is set to 1 to provide access to the
command line if active command line processing is available.
Note that setting BLOCK for this application will cause
all widget applications to block, not only this
application. For more information see the NO_BLOCK keyword
to XMANAGER.
OUTPUTS:
No explicit outputs.
CALLS: ***
EFONT_ADD_VECTOR, EFONT_CLOAD_PROC, EFONT_CMODE_EVENT, EFONT_DRAW_CHAR
EFONT_DRAW_FONT, EFONT_DRAW_GRID, EFONT_EVENT, EFONT_ORDER_VECTORS
EFONT_PNT_LINE, EFONT_READ_FONT, EFONT_REDRAW, EFONT_REMOVE_VECTOR
EFONT_RW_FONT_CHAR, EFONT_SAVE_CHAR, EFONT_SAVE_FONT, EFONT_STR_TO_CCODE
EFONT_TRANSLATE_VECTS, EFONT_VIEW_EVENT, FILEPATH, REVERSE, TEK_COLOR
XDISPLAYFILE, XMANAGER, XREGISTERED
COMMON BLOCKS:
efont_com.
SIDE EFFECTS:
Reads and modifies the vector font file, which is normally
hersh1.chr in the IDL resource/fonts directory.
RESTRICTIONS:
A basic editor.
PROCEDURE:
Call EFONT and press the HELP button for instructions.
MODIFICATION HISTORY:
DMS Nov, 1992.
WSO, 1/95, Updated for new directory structure
DMS, May, 1996. Removed device dependencies, updated to newer widgets.
[Previous]
[Next]
NAME:
EIGENQL
PURPOSE:
This function computes the eigenvalues and eigenvectors of an
N by N real, symmetric array using Householder reductions and
the QL method with implicit shifts. The result is a vector
containing the eigenvalues. The eigenvectors are returned
in a separate keyword parameter.
CATEGORY:
Linear Algebra / Eigensystems
CALLING SEQUENCE:
Eigenvalues = Eigenql(A)
INPUTS:
A: An N by N symmetric array of type float or double.
OUTPUTS:
Function value = Eigenvalues = the computed eigenvalues, ordered
as specified, stored in an N element vector.
KEYWORD PARAMETERS:
ABSOLUTE: If set, order eigenvalues by their absolute value (magnitude),
otherwise sort by signed value.
ASCENDING: If set to a non-zero value, eigenvalues are returned in
ascending order (smallest to largest). If not
set or set to zero, eigenvalues are returned in descending
order (largest to smallest). The eigenvectors are
correspondingly reordered.
DOUBLE: If set to a non-zero value, computations are done in
double precision arithmetic.
EIGENVECTORS: The computed eigenvectors, an N x N array. The ith
row, (*,i), corresponds to the ith eigenvalue. If this named
variable is not supplied, eigenvectors are not computed.
OVERWRITE: If set to a non-zero value, the input array is used for
internal storage and its previous contents are overwritten,
saving memory if the original array values are no longer
required.
RESIDUAL: Use this keyword to specify a named variable which returns
the residuals for each eigenvalue/eigenvector(lambda/x) pair.
The residual is based on the definition Ax - (lambda)x = 0
and is an array of the same size as A and the same type as
RESULT. The rows of this array correspond to the residuals
for each eigenvalue/eigenvector pair.
NOTE: If the OVERWRITE keyword is set to a non-zero value,
this keyword has no effect.
CALLED BY:
PCOMP
EXAMPLE:
Define an N by N real, symmetric array.
a = [[ 5.0, 4.0, 0.0, -3.0], $
[ 4.0, 5.0, 0.0, -3.0], $
[ 0.0, 0.0, 5.0, -3.0], $
[-3.0, -3.0, -3.0, 5.0]]
Compute the eigenvalue/eigenvector pairs.
The resulting array has 5 columns and 4 rows.
Eigenvalues = EIGENQL(a, EIGENVECTORS=evecs, RESIDUAL = residual)
PRINT, Eigenvalues
12.0915 6.18661 1.0000 0.721870
PRINT, evecs
-0.554531 -0.554531 -0.241745 0.571446
0.342981 0.342981 -0.813186 0.321646
0.707107 -0.707107 -2.58096e-08 0.00000
0.273605 0.273605 0.529422 0.754979
The accuracy of each eigenvalue/eigenvector (lamda/x) pair may be
checked by printing the residual array. This array is the same size
as A and the same type as RESULT. All residual values should be
floating-point zeros.
print, residual
MODIFICATION HISTORY:
Written by: GGS, RSI, January 1996
Modified: DMS, RSI, August 1996
Added ABSOLUTE, and reorganized calling sequence.
[Previous]
[Next]
NAME:
EIGENVEC
PURPOSE:
This function computes the eigenvectors of an N by N real, non-
symmetric array using inverse subspace iteration. The result is
a complex array with a column dimension equal to N and a row
dimension equal to the number of eigenvalues.
CATEGORY:
Linear Algebra / Eigensystems
CALLING SEQUENCE:
Result = Eigenvec(A, Eval)
INPUTS:
A: An N by N nonsymmetric array of type float or double.
EVAL: An N-element complex vector of eigenvalues.
KEYWORD PARAMETERS:
DOUBLE: If set to a non-zero value, computations are done in
double precision arithmetic.
ITMAX: The number of iterations performed in the computation
of each eigenvector. The default value is 4.
RESIDUAL: Use this keyword to specify a named variable which returns
the residuals for each eigenvalue/eigenvector(lambda/x) pair.
The residual is based on the definition Ax - (lambda)x = 0
and is an array of the same size and type as RESULT. The rows
this array correspond to the residuals for each eigenvalue/
eigenvector pair.
EXAMPLE:
Define an N by N real, nonsymmetric array.
a = [[1.0, -2.0, -4.0, 1.0], $
[0.0, -2.0, 3.0, 4.0], $
[2.0, -6.0, -1.0, 4.0], $
[3.0, -3.0, 1.0, -2.0]]
Compute the eigenvalues of A using double-precision complex arithmetic.
eval = HQR(ELMHES(a), /double)
Print the eigenvalues. The correct solution should be:
(0.26366259, -6.1925899), (0.26366259, 6.1925899), $
(-4.9384492, 0.0000000), (0.41112397, 0.0000000)
print, eval
Compute the eigenvectors of A. The eigenvectors are returned in the
rows of EVEC.
result = EIGENVEC(a, eval, residual = residual)
Print the eigenvectors.
print, evec(*,0), evec(*,1), evec(*,2), evec(*,3)
The accuracy of each eigenvalue/eigenvector (lamda/x)
pair may be checked by printing the residual array. This array is the
same size and type as RESULT and returns the residuals as its rows.
The residual is based on the mathematical definition of an eigenvector,
Ax - (lambda)x = 0.
PROCEDURE:
EIGENVEC computes the set of eigenvectors that correspond to a given
set of eigenvalues using Inverse Subspace Iteration. The eigenvectors
are computed up to a scale factor and are of Euclidean length. The
existence and uniqueness of eigenvectors are not guaranteed.
MODIFICATION HISTORY:
Written by: GGS, RSI, December 1994
Modified: GGS, RSI, April 1996
Modified keyword checking and use of double precision.
[Previous]
[Next]
NAME:
EOS_EXISTS
PURPOSE:
Test for the existence of the HDF EOS library
CATEGORY:
File Formats
CALLING SEQUENCE:
Result = EOS_EXISTS()
INPUTS:
None.
KEYWORD PARAMETERS:
None.
OUTPUTS:
Returns TRUE (1) if the HDF EOS data format library is
supported. Returns FALSE(0) if it is not.
EXAMPLE:
IF eos_exists() EQ 0 THEN Fail,"HDF not supported on this machine"
MODIFICATION HISTORY
Written by: Scott Lasica, 10/30/98
[Previous]
[Next]
NAME:
EOS_GD_QUERY
PURPOSE:
Read the grid header of an HDF file and report on the EOS grid
extensions.
CATEGORY:
Input/Output.
CALLING SEQUENCE:
Result = EOS_GD_QUERY(Filename, GridName [, Info])
INPUTS:
Filename: The filename of the HDF-EOS file.
GridName: The EOS Grid Name.
Keyword Inputs:
None.
OUTPUTS:
Result is a long with the value of 1 if the file contains grid extentions,
0 otherwise.
Info: (optional) An anonymous structure containing information about
the file. This structure is valid only when the return value of
the function is 1. The Info structure has the following fields:
Field IDL data type Description
----- ------------- -----------
ATTRIBUTES String array Array of attribute names
DIMENSION_NAMES String array Names of dimensions
DIMENSION_SIZES Long array Sizes of dimensions
FIELD_NAMES String array Names of fields
FIELD_RANKS Long array Ranks (dimensions) of fields
FIELD_TYPES Long array IDL types of fields
GCTP_PROJECTION Long GCTP projection code
GCTP_PROJECTION_PARM Double array GCTP projection parameters
GCTP_SPHEROID Long GCTP spheroid code
GCTP_ZONE Long GCTP zone code (for UTM projection)
GRID_INDEX Long Grid index for which this structure is valid
GRID_NAME String Name of grid
IMAGE_LOWRIGHT Double[2] Location of lower right corner (meters)
IMAGE_UPLEFT Double[2] Location of upper left corner (meters)
IMAGE_X_DIM Long Number of columns in grid image
IMAGE_Y_DIM Long Number of rows in grid image
NUM_ATTRIBUTES Long Number of attributes
NUM_DIMS Long Number of dimensions
NUM_IDX_MAPS Long Number of indexed dimension mapping entries
NUM_MAPS Long Number of dimension mapping entries
NUM_FIELDS Long Number of fields
NUM_GEO_FIELDS Long Number of geolocation field entries
ORIGIN_CODE Long Origin code
PIX_REG_CODE Long Pixel registration code
CALLS: ***
EOS_QUERY
RESTRICTIONS:
None.
EXAMPLE:
To retrieve information from the HDF-EOS grid name myGrid enter:
result = EOS_GD_QUERY("foo.hdf", 'myGrid', info)
IF (result GT 0) THEN BEGIN
HELP, /STRUCT, info
ENDIF ELSE BEGIN
PRINT, 'HDF file not found or file does not contain EOS GD extensions.'
ENDELSE
MODIFICATION HISTORY:
Written December 1998, Scott J. Lasica
[Previous]
[Next]
NAME:
EOS_PT_QUERY
PURPOSE:
Read the point header of an HDF file and report on the EOS point
extensions.
CATEGORY:
Input/Output.
CALLING SEQUENCE:
Result = EOS_PT_QUERY(Filename, PointName [, Info])
INPUTS:
Filename: The filename of the HDF-EOS file.
PointName: The EOS Point Name.
Keyword Inputs:
None.
OUTPUTS:
Result is a long with the value of 1 if the file contains point extentions,
0 otherwise.
Info: (optional) An anonymous structure containing information about
the file. This structure is valid only when the return value of
the function is 1. The Info structure has the following fields:
Field IDL data type Description
----- ------------- -----------
ATTRIBUTES String Array Array of attribute names
NUM_ATTRIBUTES Long Number of attributes
NUM_LEVELS Long Number of levels
CALLS: ***
EOS_QUERY
RESTRICTIONS:
None.
EXAMPLE:
To retrieve information from the HDF-EOS point name myPoint enter:
result = EOS_PT_QUERY("foo.hdf", 'myPoint', info)
IF (result GT 0) THEN BEGIN
HELP, /STRUCT, info
ENDIF ELSE BEGIN
PRINT, 'HDF file not found or file does not contain EOS PT extensions.'
ENDELSE
MODIFICATION HISTORY:
Written December 1998, Scott J. Lasica
[Previous]
[Next]
NAME:
EOS_SW_QUERY
PURPOSE:
Read the header of an HDF file and report on the EOS swath
extensions.
CATEGORY:
Input/Output.
CALLING SEQUENCE:
Result = EOS_SW_QUERY(Filename, SwathName [, Info])
INPUTS:
Filename: The filename of the HDF-EOS file.
SwathName: The EOS Swath Name.
Keyword Inputs:
None.
OUTPUTS:
Result is a long with the value of 1 if the file contains swath extentions,
0 otherwise.
Info: (optional) An anonymous structure containing information about
the file. This structure is valid only when the return value of
the function is 1. The Info structure has the following fields:
Field IDL data type Description
----- ------------- -----------
ATTRIBUTES String array Array of attribute names
DIMENSION_NAMES String array Names of dimensions
DIMENSION_SIZES Long array Sizes of dimensions
FIELD_NAMES String array Names of fields
FIELD_RANKS Long array Ranks (dimensions) of fields
FIELD_TYPES Long array IDL types of fields
GEO_FIELD_NAMES String array Names of geolocation fields
GEO_FIELD_RANKS Long array Ranks (dimensions) of geolocation fields
GEO_FIELD_TYPES Long array IDL types of geolocation fields
IDX_MAP_NAMES String array Names of index maps
IDX_MAP_SIZES Long array Sizes of index map arrays
NUM_ATTRIBUTES Long Number of attributes
NUM_DIMS Long Number of dimensions
NUM_FIELDS Long Number of fields
NUM_GEO_FIELDS Long Number of geolocation fields
NUM_IDX_MAPS Long Number of indexed dimension mapping entries
NUM_MAPS Long Number of mapping entries
MAP_INCREMENTS Long array Increment of each geolocation relation
MAP_NAMES String array Names of maps
MAP_OFFSETS Long array Offset of each geolocation relation
MAP_SIZES Long array Sizes of index map arrays
CALLS: ***
EOS_QUERY
RESTRICTIONS:
None.
EXAMPLE:
To retrieve information from the HDF-EOS swath name mySwath enter:
result = EOS_SW_QUERY("foo.hdf", 'mySwath', info)
IF (result GT 0) THEN BEGIN
HELP, /STRUCT, info
ENDIF ELSE BEGIN
PRINT, 'HDF file not found or file does not contain EOS SW extensions.'
ENDELSE
MODIFICATION HISTORY:
Written February 1999, Scott J. Lasica
[Previous]
[Next]
NAME:
ERRPLOT
PURPOSE:
Plot error bars over a previously drawn plot.
CATEGORY:
J6 - plotting, graphics, one dimensional.
CALLING SEQUENCE:
ERRPLOT, Low, High ;X axis = point number.
ERRPLOT, X, Low, High ;To explicitly specify abscissae.
INPUTS:
Low: A vector of lower estimates, equal to data - error.
High: A vector of upper estimates, equal to data + error.
OPTIONAL INPUT PARAMETERS:
X: A vector containing the abscissae.
KEYWORD Parameters:
WIDTH: The width of the error bars, in units of the width of
the plot area. The default is 1% of plot width.
All keywords to PLOTS are also accepted.
OUTPUTS:
None.
COMMON BLOCKS:
None.
SIDE EFFECTS:
An overplot is produced.
RESTRICTIONS:
Logarithmic restriction removed.
PROCEDURE:
Error bars are drawn for each element.
EXAMPLES:
To plot symmetrical error bars where Y = data values and
ERR = symmetrical error estimates, enter:
PLOT, Y ;Plot data
ERRPLOT, Y-ERR, Y+ERR ;Overplot error bars.
If error estimates are non-symetrical, enter:
PLOT,Y
ERRPLOT, Upper, Lower ;Where Upper & Lower are bounds.
To plot versus a vector of abscissae:
PLOT, X, Y ;Plot data (X versus Y).
ERRPLOT, X, Y-ERR, Y+ERR ;Overplot error estimates.
MODIFICATION HISTORY:
DMS, RSI, June, 1983.
Joe Zawodney, LASP, Univ of Colo., March, 1986. Removed logarithmic
restriction.
DMS, March, 1989. Modified for Unix IDL.
KDB, March, 1997. Modified to used !p.noclip
RJF, Nov, 1997. Removed unnecessary print statement
Disable and re-enable the symbols for the bars
DMS, Dec, 1998. Use device coordinates. Cleaned up logic.
CT, RSI, Jan 2001: Add _REF_EXTRA to pass keywords to PLOTS.
CT, RSI, Oct 2004: Add compile_opt idl2 to allow > 32767 error bars.
CT, RSI, Oct 2005: Force PSYM=0 in PLOTS, so we ignore !p.psym.
[Previous]
[Next]
NAME:
EXPAND
PURPOSE:
Array magnification (CONGRIDI like except that this really works!)
CATEGORY:
Z4 - IMAGE PROCESSING
CALLING SEQUENCE:
EXPAND,A,NX,NY,RESULT [,MAXVAL=MAXVAL,FILLVAL=FILLVAL]
INPUTS:
A Array to be magnified
NX Desired size of X Dimension
NY Desired size of Y Dimension
Keywords:
MAXVAL Largest good value. Elements greater than this are ignored
FILLVAL Value to use when elements larger than MAXVAL are encountered.
Defaults to -1.
OUTPUTS:
RESULT Magnified Floating point image of A array (NX by NY)
COMMON BLOCKS:
NONE
SIDE EFFECTS:
NONE
RESTRICTIONS:
A must be two Dimensional
PROCEDURE:
Bilinear interpolation.
Not really fast if you have to swap memory (eg. NX*NY is a big number).
OK Postscript users don't forget that postscript pixels are scaleable!
MODIFICATION HISTORY:
Aug 15, 1989 J. M. Zawodny, NASA/LaRC, MS 475, Hampton VA, 23665.
Aug 26, 1992 JMZ, Added maxval and fillval keywords.
Sep 30, 1992 DMS, RSI, Rewrote to use INTERPOLATE function.
Please send suggestions and bugreports to zawodny@arbd0.larc.nasa.gov
[Previous]
[Next]
NAME:
EXTRAC
PURPOSE:
The EXTRAC function returns as its result any rectangular sub-matrix
or portion of the parameter array. When parts of the specified
subsection lie outside the bounds of the array, zeros are
entered into these outlying elements.
EXTRAC was originally a built-in system procedure in the PDP-11
version of IDL, and was retained in that form in the original VAX/VMS
IDL for compatibility. Most applications of the EXTRAC function
are more concisely written using subscript ranges (e.g., X(10:15)). In
the current release of IDL, EXTRAC has been rewritten as a User Library
function that provides the same interface as the previous versions.
CATEGORY:
Array Manipulation.
CALLING SEQUENCE:
Result = EXTRAC(Array, C1, C2, ..., Cn, S1, S2, ..., Sn)
INPUTS:
Array: The array from which the subarray will be copied.
Ci: The starting subscript in Array for the subarray. There
should be one Ci for each dimension of Array.
Si: The size of each dimension. The result will have dimensions
of (S1, S2, ..., Sn). There should be one Si for each
dimension of Array.
OUTPUTS:
This function returns a two-dimensional, floating-point,
interpolated array.
RESTRICTIONS:
In order to make the most typical cases run quickly, little error
checking is done on the input. In particular, the Ci and Si arguments
must all be scalar integers, and the Si must be non-negative.
If you know that the subarray will never lie beyond the edges of
the array, it is more efficient to use array subscript ranges
to extract the data instead of EXTRAC.
PROCEDURE:
If the subarray lies entirely inside the Array argument, the
standard array subscript-range mechanism is used to do the work.
Otherwise, a zeroed array of the correct type and size is
created, and the overlapping subarray is copied into it.
EXAMPLES:
EXAMPLE 1:
Define a 1000 point vector with each element initialized to
its subscript. Extract a 300 pt. vector, starting at A(200) and
going to A(499). B(0) will be equal to A(200), B(299) will be
equal to A(499). Enter:
A = FINDGEN(1000)
B = EXTRAC(A, 200, 300)
EXAMPLE 2:
Here, the first 49 points extracted (B(0) to B(49)) lie outside
the bounds of the vector and are set to 0. B(50) is set to A(0),
B(51) is set to A(1) which is 1, ... Enter:
A = FINDGEN(1000)
B = EXTRAC(A, -50, 100)
EXAMPLE 3:
The following commands illustrate the use of EXTRAC with multi-
dimensional arrays. Enter:
A = INTARR(64,64) ;Make a 64X64 matrix to play with
Take out a 32X32 portion starting at A(20,30) by entering:
B = EXTRAC(A, 20, 30, 32, 32)
A better way to perform the same operation as the previous line is:
B = A(20:51, 30:61)
Extract the 20th column and 32nd row of A:
B = EXTRAC(A, 19, 0, 1, 64) ; Extract 20th column of A
B = EXTRAC(A, 0, 31, 64, 1) ; Extract 32nd row of A
Take a 32X32 matrix from A starting at A(40,50).
B = EXTRAC(A, 40, 50, 32, 32)
NOTE: Those points beyond the boundaries of A are set to 0.
REVISION HISTORY:
July 18, 1989 Written AB, RSI
October 15, 1997, AB, RSI, Made correction provided by Eric Deutsch
(deutsch@dione.astro.washington.edu)in clipping size of
subarray so results that overlap on all sides can be
properly handled. Added tests for the completely overlapping
case.
[Previous]
[Next]
NAME:
EXTRACT_SLICE
PURPOSE:
This function returns a 2-D planar slice extracted from
3-D volumetric data. The slicing plane may be oriented at
any angle, and may pass through any desired location in the
volume.
CATEGORY:
Volume Rendering.
CALLING SEQUENCE:
Slice = EXTRACT_SLICE(Vol, X_size, Y_size, X_center, Y_center, $
Z_center, X_rot, Y_rot, Z_rot)
OR
Slice = EXTRACT_SLICE(Vol, X_size, Y_size, X_center, Y_center, $
Z_center, Plane_Normal, Xvec
INPUTS:
Vol: The three dimensional volume of data to slice.
Data type : Any 3-D array except string or structure.
X_size: The size of the returned slice in X (The returned
slice will have the dimensions X_size by Y_size).
Data type : Long.
Y_size: The size of the returned slice in Y. To preserve
the correct aspect ratio of the data, Y_size should
equal X_size. For optimal results, set X_size and
Y_size to be greater than or equal to the largest of
the three dimensions of Vol.
Data type : Long.
X_center: The X coordinate (index) within the volume that the
slicing plane passes through. The center of the
slicing plane passes through Vol at the coordinate
(X_center, Y_Center, Z_center).
Data type : Any scalar numeric value (usually Long).
Y_center: The Y coordinate (index) within the volume that the
slicing plane passes through.
Data type : Any scalar numeric value (usually Long).
Z_center: The Z coordinate (index) within the volume that the
slicing plane passes through.
Data type : Any scalar numeric value (usually Long).
X_rot: The orientation (X rotation) of the slicing plane.
Before transformation, the slicing plane is parallel
to the X-Y plane. The slicing plane transformations
are performed in the following order :
1. Rotate Z_rot degrees about the Z axis.
2. Rotate Y_rot degrees about the Y axis.
3. Rotate X_rot degrees about the X axis.
4. Translate the center of the plane to
X_center, Y_center, Z_center.
Data type : Float.
Y_rot: The orientation (Y rotation) of the slicing plane.
Data type : Float.
Z_rot: The orientation (Z rotation) of the slicing plane.
Data type : Float.
Plane_Normal: 3D normal vector of slicing plane
Data type : Float[3].
Xvec: 3D vector representing X direction for slicing plane.
This vector will be projected onto slicing plane before
use.
Data type : Float[3].
KEYWORD PARAMETERS:
OUT_VAL: If OUT_VAL is set, then the portions of the returned
slice that lie outside the original volume are set to
the value passed to OUT_VAL.
Data type : Any scalar numeric value (usually the same
type as Vol).
RADIANS: Set this keyword to a non-zero value to indicate that
X_rot, Y_rot, and Z_rot are in radians. The default
is degrees. Ignored for Plane_Normal,Xvec usage.
Data type : Int.
SAMPLE: If SAMPLE is set to a non-zero value then nearest
neighbor sampling is used to compute the slice.
Otherwise, tri-linear (or cubic) interpolation is used.
A small reduction in execution time will result if
SAMPLE mode is set and the OUT_VAL keyword is NOT
used.
ANISOTROPY: Set this input keyword to a three element array. This
array specifies the spacing between the planes of the
input volume in grid units of the (isotropic) output image.
VERTICES: Set this output keyword to a named variable in which to
return a [3,Xsize,Ysize] floating point array. This is an
array of the x,y,z sample locations for each pixel in the
normal output.
OUTPUTS:
This function returns the planar slice as a two dimensional
array with the same data type as Vol. The dimensions of the
returned array are X_size by Y_size.
CALLS: ***
CROSSP, NORM, T3D
CALLED BY:
idlitvisimageplane__define [10], idlitvisimageplane__define [11]
idlitvisimageplane__define [1], idlitvisimageplane__define [2]
idlitvisimageplane__define [3], idlitvisimageplane__define [4]
idlitvisimageplane__define [5], idlitvisimageplane__define [6]
idlitvisimageplane__define [7], idlitvisimageplane__define [8]
idlitvisimageplane__define [9]
EXAMPLE:
Display an oblique slice through volumetric data.
; Create some data.
vol = RANDOMU(s, 40, 40, 40)
FOR i=0, 10 DO vol = SMOOTH(vol, 3)
vol = BYTSCL(vol(3:37, 3:37, 3:37))
; Extract and display a slice using angles to specify slice.
slice = EXTRACT_SLICE(vol, 40, 40, 17, 17, 17, 0, 0, 45, $
OUT_VAL=0B)
TVSCL, REBIN(slice, 400, 400)
; Extract and display same slice using vector form.
slice = EXTRACT_SLICE(vol, 40,40, 17, 17, 17, $
[0,0,1],[1,1,0],OUT_VAL=0B,ANISOTROPY=[2,1,1])
MODIFICATION HISTORY:
Written by: Daniel Carr. Wed Sep 2 14:47:07 MDT 1992
Modified by:
Daniel Carr. Mon Nov 21 14:59:45 MST 1994
Improved speed and added the CUBIC keyword.
Karthik B. March 1999
Added vector form of plane specification, ANISOTROPY,
and VERTICES keywords.
CT, RSI, July 2002
Corrected the scaling/rotation transform order.
Allow ANISOTROPY to work with X_rot, Y_rot, Z_rot args.
Removed CUBIC keyword since INTERPOLATE cannot do 3D cubic.