
vfDataArray

This resource specifies a 3dimensional array containing the data
comprising a vector field. You must specify either
vfDataArray or the two resources vfUDataArray
and vfVDataArray in order to create a
VectorField object. The slowest varying
dimension (first dimension in C, third dimension in Fortran) must
contain two elements, representing the two components of the
field. The first element represents the U data and the second the
V data (before the effect of vfExchangeUVData is taken
into account). The fastest varying dimension represents the
X Axis of the data coordinate system; vfXC...
VectorField resources always relate to this
dimension. The middle dimension represents the data coordinate
Y Axis; vfYC... resources always relate to this
dimension.
Although the VectorField object always
converts the data into type NhlTFloat before passing them along to
recipient objects, it accepts data arrays containing data of any
of the following types:
 NhlTByte
 NhlTCharacter
 NhlTShort
 NhlTInteger
 NhlTLong
 NhlTFloat
 NhlTDouble
Default: NULL

vfUDataArray

If vfDataArray is not set, then this resource and
vfVDataArray must both be specified in order to create a
VectorField object. Together, these resources
specify the data defining a vector field using two arrays
specifying the vector components. The fastest varying dimension
(second dimension in C, first dimension in Fortran) represents the
X Axis of the data coordinate system; vfXC...
VectorField resources always relate to this
dimension. The other dimension represents the data coordinate
Y Axis; vfYC... resources always relate to this
dimension.
You may set vfUDataArray using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: NULL

vfVDataArray

If vfDataArray is not set, then this resource and
vfUDataArray must both be specified in order to create a
VectorField object. Together, these resources
specify the data defining a vector field using two arrays
specifying the vector components. The fastest varying dimension
(second dimension in C, first dimension in Fortran) represents the
X Axis of the data coordinate system; vfXC...
VectorField resources always relate to this
dimension. The other dimension represents the data coordinate
Y Axis; vfYC... resources always relate to this
dimension.
You may set vfVDataArray using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: NULL

vfXArray

The values of the vfXArray resource sequentially represent
the XAxis coordinate of each successive element along the
fastestvarying dimension of the data. If vfXArray is
set to a non
NULL
value, VectorField
checks to ensure first that it has the same number of elements as the
Xaxis dimension of the data and second that it is monotonically
increasing or descreasing. If the input array fails either of these
tests, vfXArray is reset to its default value of
NULL
, and the data are treated as if each array element
were equally spaced along the X Axis between the values of
vfXCStartV and vfXCEndV. If the input array
is valid, VectorField replaces the current value of
vfXCStartV with the value of the first element of
vfXArray, and vfXCEndV with the value of the last
element. You can specify vfXArray using a singledimensioned
array of any of the types allowed for vfDataArray.
V4.1 Status Note 1
Default: NULL

vfYArray

The values of the vfYArray resource sequentially represent
the YAxis coordinate of each successive element along the middle or
slowestvarying dimension of the data. If vfYArray
is set to a non
NULL
value, VectorField
checks to ensure first that it has the same number of elements as the
Yaxis dimension of the data and second that it is monotonically
increasing or descreasing. If the input array fails either of these
tests, vfYArray is reset to its default value of
NULL
, and the data are treated as if each array element
were equally spaced along the Y Axis between the values of
vfYCStartV and vfYCEndV. If the input array
is valid, VectorField replaces the current value of
vfYCStartV with the value of the first element of
vfYArray, and vfYCEndV with the value of the last
element. You can specify vfYArray using a singledimensioned
array of any of the types allowed for vfDataArray.
V4.1 Status Note 1
Default: NULL

vfPolarData

If this resource is set True, the arrays passed into
VectorField are assumed to represent the vector field
in terms of magnitude and angular direction rather than by orthogonal
vector components. By default the U array is interpreted as the magnitude and
the V array as direction. However, if the resource
vfExchangeUVData is set True, the V array will be assumed to
contain the magnitude and the U array the direction.
Default: False

vfCopyData

The boolean resource vfCopyData allows you to control whether
the VectorField object always copies the elements of
the vfDataArray into a private memory area. If you set
vfCopyData False, VectorField will not copy
the vfXArray or the vfYArray data and will try to
avoid making a copy of the vfDataArray data. You are then
responsible for ensuring that the data memory locations for these
arrays are preserved intact for the lifetime of the
VectorField. In return, you may save dynamic memory
space. Note that a number of circumstances require
VectorField to copy the data regardless. These
include supplying data of any type other than NhlTFloat, requesting
that the data dimensions be exchanged, or setting a stride value greater
than 1 in either the X or the Y dimension. Also, if you
specify a data array subset and one or both of the coordinate array
resources (sfXArray and/or sfYArray) is
non
NULL
, copies are made of the subsetted part of the
coordinate array.
Default: True

vfExchangeDimensions

When this boolean resource is set True, VectorField
exchanges the X and Y dimensions of the data before passing them
to the recipient object. This will have the effect of turning the plot
on its side when rendered by a plot object. Note that since the U and V
components implicitly exist in the coordinate system that is exchanged,
these arrays must be exchanged at the same time in order maintain an
equivalent relationship between the elements of the field. You can do this
by inverting the value of the resource vfExchangeUVData.
Whenever vfExchangeDimensions is True,
VectorField must copy the data, regardless of the
setting of the vfCopyData resource.
Default: False

vfExchangeUVData

When this boolean resource is set True, VectorField
exchanges the roles of the U and V arrays. If you supply the data
using the single array resource vfDataArray, the two elements
of the slowest varying dimension are traded. If
vfExchangeDimensions is set True, you must invert the current
value of vfExchangeUVData in order to preserve the current
relationship of the elements of the vector field. If vfPolarData
is set True, then this resource controls which array is used for the
magnitude and which for the angular direction.
Default: False

vfSingleMissingValue

When this boolean resource is set True, VectorField
assumes that any missing values in both the U and V arrays are
represented by the same sentinel value. In this case, you need set
only one of the resources vfMissingUValueV and
vfMissingVValueV to indicate the sentinel missing value. If
both are set, then the value given by vfMissingVValueV is
ignored. When vfSingleMissingValue is set False, then the
U and V array are examined separately for their individual missing values,
as specified by the resources vfMissingUValueV and
vfMissingVValueV.
Default: False

vfMissingUValueV

If vfSingleMissingValue is False and
you set vfMissingUValueV to a nonNULL value,
VectorField treats occurrences of its value in the
U data array as representing an undefined data point. If left unset,
VectorField assumes that all values in the U data array
are valid.
If vfSingleMissingValue is True and you set
vfMissingUValueV to a nonNULL value,
VectorField treats occurrences of its value in either
the U or V data arrays as representing an undefined data point. If
vfMissingUValueV is not set, but vfMissingVValueV is
set, then occurrences of the value of vfMissingVValueV in either
array causes the data point to be treated as undefined. If neither
vfMissingUValueV nor vfMissingVValueV is set, then
VectorField assumes that all values in the U data array
are valid.
You may set vfMissingVValueV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: NULL

vfMissingVValueV

If vfSingleMissingValue is False and
you set vfMissingVValueV to a nonNULL value,
VectorField treats occurrences of its value in the
V data array as representing an undefined value. If left unset,
VectorField assumes that all values in the V data array
are valid.
If vfSingleMissingValue is True and you set
vfMissingVValueV to a nonNULL value, its value is ignored
unless vfMissingUValueV is not set. If
vfMissingUValueV is not set, VectorField
treats occurrences of the value of vfMissingVValueV in either
the U or V data arrays as representing an undefined data point. If
neither vfMissingUValueV nor vfMissingVValueV is set,
then VectorField assumes that all values in the U
data array are valid.
You may set vfMissingVValueV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: NULL

vfMagMinV

By default the VectorField object sets
vfMagMinV to the smallest vector magnitude computed from the
individual vector components in the data arrays. However, if you
set the value of this resource, VectorField
assumes that the set value is, in fact, the minimum magnitude. You may set
vfMagMinV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfMagMaxV

By default the VectorField object sets
vfMagMaxV to the largest vector magnitude computed from the
individual vector components in the data arrays. However, if you
set the value of this resource, VectorField
assumes that the set value is, in fact, the maximum magnitude. You may set
vfMagMaxV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfUMinV

By default the VectorField object sets
vfUMinV to the smallest value in the U data array. However,
if you set the value of this resource, VectorField
does not process the array to find the minimum value. Instead it
assumes that the set value is, in fact, the minimum value. You may set
vfUMaxV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfUMaxV

By default the VectorField object sets
vfUMaxV to the largest value in the U data array. However,
if you set the value of this resource, VectorField
does not process the array to find the maximum value. Instead it
assumes that the set value is, in fact, the maximum value. You may set
vfUMaxV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfVMinV

By default the VectorField object sets
vfVMinV to the smallest value in the V data array. However,
if you set the value of this resource, VectorField
does not process the array to find the minimum value. Instead it
assumes that the set value is, in fact, the minimum value. You may set
vfVMaxV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfVMaxV

By default the VectorField object sets
vfVMaxV to the largest value in the V data array. However,
if you set the value of this resource, VectorField
does not process the array to find the maximum value. Instead it
assumes that the set value is, in fact, the maximum value. You may set
vfVMaxV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfXCStartV

This resource specifies the location along the X Axis of the first
element of the fastestvarying dimension of the data. If the array
resource vfXArray is set and found to be valid,
VectorField overwrites the current value of
vfXCStartV, replacing it with the value of the first element
of vfXArray. Otherwise, you can set vfXCStartV to
any value (presumably meaningful in the context of the your data). If
vfXCStartV is greater than vfXCEndV, the direction
of the data locations along the X Axis is opposite the direction of
the positive X Axis. If vfXArray is
NULL
or
invalid and vfXCStartV is not specified,
VectorField sets vfXCStartV to the value
0. You may set vfXCStartV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfXCEndV

This resource specifies the location along the X Axis of the last
element of the fastestvarying dimension of the data. If the array
resource vfXArray is set and found to be valid,
VectorField overwrites the current value of
vfXCEndV, replacing it with the value of the last element of
vfXArray. Otherwise, you can set vfXCEndV to any
value (presumably meaningful in the context of the your data). If
vfXCStartV is greater than vfXCEndV, the direction
of the data locations along the X Axis is opposite the direction of
the positive X Axis. If vfXArray is
NULL
or
invalid and vfXCEndV is not specified,
VectorField sets vfXCEndV to the size of the
fastervarying data dimension minus one. You may set vfXCEndV
using any of the data types VectorField accepts for
the vfDataArray resource.
Default: <dynamic>

vfYCStartV

This resource specifies the location along the Y Axis of the first
element of the middle or slowestvarying dimension of the data. If the array
resource vfYArray is set and found to be valid,
VectorField overwrites the current value of
vfYCStartV, replacing it with the value of the first element
of vfYArray. Otherwise, you can set vfYCStartV to
any value (presumably meaningful in the context of the your data). If
vfYCStartV is greater than vfYCEndV, the direction
of the data locations along the Y Axis is opposite the direction of
the positive Y Axis. If vfYArray is
NULL
or
invalid and vfYCStartV is not specified,
VectorField sets vfYCStartV to the value
0. You may set vfYCStartV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfYCEndV

This resource specifies the location along the Y Axis of the last
element along the middle or slowestvarying dimension of the data. If
the array resource vfYArray is set and found to be valid,
VectorField overwrites the current value of
vfYCStartV, replacing it with the value of the last element
of vfYArray. Otherwise, you can set vfYCStartV to
any value (presumably meaningful in the context of the your data). If
vfYCStartV is greater than vfYCEndV, the direction
of the data locations along the Y Axis is opposite the direction of
the positive Y Axis. If vfYArray is
NULL
or
invalid and vfYCEndV is not specified,
VectorField sets vfYCEndV to the size of the
slowervarying data dimension minus one. You may set
vfYCEndV using any of the data types
VectorField accepts for the vfDataArray
resource.
Default: <dynamic>

vfXCStartSubsetV

vfXCStartSubsetV specifies the starting location along the
X Axis of a rectangular subarray of the data.
vfXCStartSubsetV should be set to a value within the data
coordinate extent as established by the values of vfXCStartV
and vfXCEndV. If vfXCStartSubsetV is outside the
coordinate extent, VectorField issues a warning and
sets it to the value of vfXCStartV. If the values of
vfXCStartSubsetV and vfXCEndSubsetV are oppositely
directed from the direction established by vfXCStartV and
vfXCEndV, VectorField issues a warning and
exchanges their values. When you do not explicitly set a value for
vfXCStartSubsetV:
 at initialization or when the XAxis dimension size changes,
if vfXCStartIndex is also not set,
vfXCStartSubsetV takes the value of vfXCStartV;
 else if vfXCStartIndex is set, or there is a change to
vfXCStartV, vfXCEndV, or vfXArray,
vfXCStartSubsetV takes the data coordinate value indexed by the
value of the vfXCStartIndex resource;
 else vfXCStartSubsetV retains its current value.
Since the data grid consists of data located at discrete
points, the location specified by vfXCStartSubsetV might well
fall between two data points. In this case,
VectorField selects a beginning index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. Get the value of the readonly resource
vfXCActualStartF in order to find the exact start of the subset
along the X Axis. You may set vfXCSubsetStartV using any of the
data types that VectorField accepts for the
vfDataArray resource.
Default: <dynamic>

vfXCEndSubsetV

vfXCEndSubsetV specifies the ending location along the
X Axis of a rectangular subarray of the data.
It should be set to a value within the data
coordinate extent as established by the values of vfXCStartV and
vfXCEndV. If it is outside the coordinate
extent, VectorField issues a warning and sets it to
the value of vfXCEndV. If the values of
vfXCStartSubsetV and vfXCEndSubsetV are oppositely
directed from the direction established by vfXCStartV and
vfXCEndV, VectorField issues a warning and
exchanges their values. When you do not explicitly set a value for
vfXCEndSubsetV:
 at initialization or when the XAxis dimension size changes,
if vfXCEndIndex is not set,
vfXCEndSubsetV takes the value of vfXCEndV;
 else if vfXCEndIndex is set, or there is a change to
vfXCStartV, vfXCEndV, or vfXArray,
vfXCEndSubsetV takes the data coordinate value indexed by the
value of vfXCEndIndex;
 else vfXCEndSubsetV retains its current value.
Since the data grid consists of data located at discrete
points, the location specified by vfXCEndSubsetV might well
fall between two data points. In this case,
VectorField selects an ending index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. Get the value of the readonly resource
vfXCActualEndF in order to find the exact end of the subset
along the X Axis. You may set vfXCSubsetEndV using any of the data
types that VectorField accepts for the
vfDataArray resource.
Default: <dynamic>

vfYCStartSubsetV

vfYCStartSubsetV specifies the starting location along the
Y Axis of a rectangular subarray of the data. It should be set to a
value within the data coordinate extent as established by the values
of vfYCStartV and vfYCEndV. If it is outside the
coordinate extent, VectorField issues a warning and
sets it to the value of vfYCStartV. If the values of
vfYCStartSubsetV and vfYCEndSubsetV are oppositely
directed from the direction established by vfYCStartV and
vfYCEndV, VectorField issues a warning and
exchanges their values. When you do not explicitly set a value for
vfYCStartSubsetV:
 at initialization or when the YAxis dimension size changes,
if vfYCStartIndex is not set,
vfYCStartSubsetV takes the value of vfYCStartV;
 else if vfYCStartIndex is set, or there is a change to
vfYCStartV, vfYCEndV, or vfYArray,
vfYCStartSubsetV takes the data coordinate value indexed by the
value of vfYCStartIndex;
 else vfYCStartSubsetV retains its current value.
Since the data grid consists of data located at discrete
points, the location specified by vfYCStartSubsetV might well
fall between two data points. In this case,
VectorField selects a beginning index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. Get the value of the readonly resource
vfYCActualStartF in order to find the exact start of the subset
along the Y Axis. You may set vfYCSubsetStartV using any of the
data types that VectorField accepts for the
vfDataArray resource.
Default: <dynamic>

vfYCEndSubsetV

vfYCEndSubsetV specifies the ending location along the Y Axis
of a rectangular subarray of the data. It should be set to a value
within the data coordinate extent as established by the values of
vfYCStartV and vfYCEndV. If it is outside the coordinate
extent, VectorField issues a warning and sets it to
the value of vfYCEndV. If the values of
vfYCStartSubsetV and vfYCEndSubsetV are oppositely
directed from the direction established by vfYCStartV and
vfYCEndV, VectorField issues a warning and
exchanges their values. When you do not explicitly set a value for
vfYCEndSubsetV:
 at initialization or when the YAxis dimension size changes,
if vfYCEndIndex is not set,
vfYCEndSubsetV takes the value of vfYCEndV;
 else if vfYCEndIndex is set, or there is a change to
vfYCStartV, vfYCEndV, or vfYArray,
vfYCEndSubsetV takes the data coordinate value indexed by the
value of vfYCEndIndex;
 else vfYCEndSubsetV retains its current value.
Since the data grid consists of data located at discrete
points, the location specified by vfYCEndSubsetV might well
fall between two data points. In this case,
VectorField selects an ending index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. Get the value of the readonly resource
vfYCActualEndF in order to find the exact end of the subset
along the Y Axis. You may set vfYCSubsetEndV using any of the data
types that VectorField accepts for the
vfDataArray resource.
Default: <dynamic>

vfXCStartIndex

This resource specifies the smaller of two indexes along the XAxis
dimension bounding a rectangular subarray of the data.
Explicitly setting vfXCStartSubsetV overrides any value set
for vfXCStartIndex, and causes it to be set to the array
index value associated with the closest data point such that the
requested data coordinate location is included within the
subset. Otherwise, when you set vfXCStartIndex, the data
coordinate value indexed by its value is placed into
vfXCStartSubsetV. vfXCStartIndex retains its value
when the data change, unless the XAxis dimension size also
changes. In this case, assuming neither vfXCStartSubsetV nor
vfXCStartIndex is explicitly set at the same time,
vfXCStartIndex is set to 0.
Default: <dynamic>

vfXCEndIndex

This resource specifies the larger of two indexes along the XAxis
dimension bounding a rectangular subarray of the data.
Explicitly setting vfXCEndSubsetV overrides any value set
for vfXCEndIndex, and causes it to be set to the array
index value associated with the closest data point such that the
requested data coordinate location is included within the
subset. Otherwise, when you set vfXCEndIndex, the data
coordinate value indexed by its value is placed into
vfXCEndSubsetV. vfXCEndIndex retains its value
when the data change, unless the XAxis dimension size also
changes. In this case, assuming neither vfXCEndSubsetV nor
vfXCEndIndex is explicitly set at the same time,
vfXCEndIndex is set to the size of the XAxis dimension minus one.
Default: <dynamic>

vfYCStartIndex

This resource specifies the smaller of two indexes along the YAxis
dimension bounding a rectangular subarray of the data.
Explicitly setting vfYCStartSubsetV overrides any value set
for vfYCStartIndex, and causes it to be set to the array
index value associated with the closest data point such that the
requested data coordinate location is included within the
subset. Otherwise, when you set vfYCStartIndex, the data
coordinate value indexed by its value is placed into
vfYCStartSubsetV. vfYCStartIndex retains its value
when the data change, unless the YAxis dimension size also
changes. In this case, assuming neither vfYCStartSubsetV nor
vfYCStartIndex is explicitly set at the same time,
vfYCStartIndex is set to 0.
Default: <dynamic>

vfYCEndIndex

This resource specifies the larger of two indexes along the YAxis
dimension bounding a rectangular subarray of the data.
Explicitly setting vfYCEndSubsetV overrides any value set
for vfYCEndIndex, and causes it to be set to the array
index value associated with the closest data point such that the
requested data coordinate location is included within the
subset. Otherwise, when you set vfYCEndIndex, the data
coordinate value indexed by its value is placed into
vfYCEndSubsetV. vfYCEndIndex retains its value
when the data change, unless the YAxis dimension size also
changes. In this case, assuming neither vfYCEndSubsetV nor
vfYCEndIndex is explicitly set at the same time,
vfYCEndIndex is set to the size of the YAxis dimension minus one.
Default: <dynamic>

vfXCActualStartF

When a subset of the data is specified by location in data
coordinate space using vfXCEndSubsetV, this location might
well fall between two data points. In this case,
VectorField selects an ending index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. The readonly resource vfXCActualEndF always
contains the actual ending location of the data subset along the
X Axis.
Default: <dynamic>

vfXCActualEndF

When a subset of the data is specified by location in data
coordinate space using vfYCStartSubsetV, this location might
well fall between two data points. In this case,
VectorField selects a beginning index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. The readonly resource vfYCActualStartF always
contains the actual starting location of the data subset along the
Y Axis.
Default: <dynamic>

vfYCActualStartF

When a subset of the data is specified by location in data
coordinate space using vfYCStartSubsetV, this location might
well fall between two data points. In this case,
VectorField selects a beginning index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. The readonly resource vfYCActualStartF always
contains the actual starting location of the data subset along the
Y Axis.
Default: <dynamic>

vfYCActualEndF

When a subset of the data is specified by location in data
coordinate space using vfYCEndSubsetV, this location might
well fall between two data points. In this case,
VectorField selects an ending index for the array
subset such that the requested location is included within the
subset. Thus the subset array, as delivered to the receiving object,
may represent a slightly larger area of the data coordinate space than
requested. The readonly resource vfYCActualEndF always
contains the actual ending location of the data subset along the
Y Axis.
Default: <dynamic>

vfXCStride

When vfXCStride has a value greater than one, the
VectorField object creates a new array containing
only columns indexed along the X dimension by successive multiples
(starting with 0) of the vfXCStride value added to the
starting index. The starting index is based on the current state of
the applicable subsetting resources; it is 0 if no array subsetting is
in effect. The resulting array is passed to the receiving plot object.
Note that if ending index minus starting index is not an exact multiple
of the vfXCStride value, then the data coordinate range may be
reduced slightly.
Default: 1

vfYCStride

When vfYCStride has a value greater than one, the
VectorField object creates a new array containing
only rows indexed along the Y dimension by successive multiples
(starting with 0) of the vfYCStride value added to the
starting index. The starting index is based on the current state of
the applicable subsetting resources; it is 0 if no array subsetting in
effect. The resulting array is passed to the receiving plot object.
Note that if ending index minus starting index is not an exact multiple
of the vfYCStride value, then the data coordinate range may be
reduced slightly.
Default: 1