ScalarField and MeshScalarField (sf) Resources
- sfCopyData (MeshScalarField)
- The boolean resource sfCopyData allows you to control whether the MeshScalarField object always copies its array resources into a private memory area. If you set sfCopyData False, MeshScalarField will try to avoid making copies of the following resources: You will then be responsible for managing the contents of the variables used to set these resources for the lifetime of the MeshScalarField. In return, you will save some dynamic memory space, which may be important if you have very large datasets. Note that a number of circumstances require MeshScalarField to copy the data regardless. These include supplying data of any type other than NhlTInteger for sfElementNodes or NhlTFloat for any of the other resources.
- sfCopyData (ScalarField)
-
The boolean resource sfCopyData allows you to control whether
the ScalarField object always copies the elements of
the sfDataArray into a private memory area. If you set
sfCopyData False, ScalarField will not copy
the sfXArray or the sfYArray data and will try to
avoid making a copy of the sfDataArray data. You are then
responsible for ensuring that the data memory locations for these
arrays are preserved intact for the lifetime of the
ScalarField. In return, you save some dynamic memory
space. Note that a number of circumstances require
ScalarField 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
- sfDataArray (MeshScalarField)
-
For the MeshScalarField, this resource specifies
a one-dimensional array containing the data value at each node of a
set of points used to define a two-dimensional scalar field
mesh. There is no default for this resource, and along with the node
location resources sfXArray and
sfYArray, it must be specified in order to create a
MeshScalarField object successfully.
There are three ways a triangular mesh can be created from the data nodes, depending on the resources you provide to the MeshScalarField:
- You may set the sfElementNodes resource to specify explicitly a set of triangles.
- You may set sfXCellBounds and sfYCellBounds to specify the vertices of cells surrounding the data locations. The triangles defining the mesh will be deduced by sorting and matching vertices from adjacent cell boundaries.
- You may specify no additional information, in which case a Delauney triangulation of the points will be calculated in the projection plane, using Jonathan Shewchuk's Triangle package. This option has the following caveat: MeshScalarField currently has no way of communicating the mesh boundaries to the Triangle package. In practice, this means that concave boundary areas of the mesh will be poorly represented.
Although the MeshScalarField object always converts the data into type NhlTFloat before passing it along to MeshScalarField receiver objects, it accepts data arrays containing data of any of the following types:
- NhlTByte
- NhlTCharacter
- NhlTShort
- NhlTInteger
- NhlTLong
- NhlTFloat
- NhlTDouble
- sfDataArray (ScalarField)
-
This resource specifies a two-dimensional array containing the data
comprising a scalar field. There is no default for this resource, and
it must be specified in order to create a ScalarField
object successfully. The faster varying dimension (second dimension
in C or NCL, first dimension in Fortran) is assumed to align with the X or
horizontal axis of the grid coordinate system. However, you may
exchange the dimensions of the array by appropriately setting the
resource, sfExchangeDimensions. Although the
ScalarField object always converts the data into type
NhlTFloat before passing it along to ScalarField
receiver objects, it accepts data arrays containing data of any of the
following types:
- NhlTByte
- NhlTCharacter
- NhlTShort
- NhlTInteger
- NhlTLong
- NhlTFloat
- NhlTDouble
Default: NULL
- sfDataMaxV (MeshScalarField)
- By default the MeshScalarField object sets sfDataMaxV to the largest value in the data array. However, if you set the value of this resource, MeshScalarField 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 sfDataMaxV using any of the data types MeshScalarField accepts for the sfDataArray resource.
- sfDataMaxV (ScalarField)
-
By default the ScalarField object sets
sfDataMaxV to the largest value in the data array. However,
if you set the value of this resource, ScalarField
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
sfDataMaxV using any of the data types
ScalarField accepts for the sfDataArray
resource.
Default: <dynamic>
- sfDataMinV (MeshScalarField)
- By default the MeshScalarField object sets sfDataMinV to the smallest value in the data array. However, if you set the value of this resource, MeshScalarField 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 sfDataMinV using any of the data types MeshScalarField accepts for the sfDataArray resource.
- sfDataMinV (ScalarField)
- By default the ScalarField object sets sfDataMinV to the smallest value in the data array. However, if you set the value of this resource, ScalarField 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 sfDataMinV using any of the data types ScalarField accepts for the sfDataArray resource.
- sfElementNodes (MeshScalarField)
-
If you have a pre-defined triangular mesh, you can specify how the
nodes are connected to form triangles by setting the
sfElementNodes resource with a two-dimensional
array. This array has an element along the first dimension for each
triangle in the mesh. The second dimension has 3 elements, one for
each vertex of the triangle. The value of each element is the index of
an element of the sfDataArray, sfXArray,
and sfYArray resources. Taken together these
resources specify a location and data value for each vertex of the
triangle.
You can specify the starting index used to number the vertex nodes with the sfFirstNodeIndex resource.
- sfExchangeDimensions (ScalarField)
-
When this boolean resource is set True, ScalarField
exchanges the dimensions of the data array on delivery to any
receiving object. Resouces associated with the X-Axis (the
fast-varying dimension) are applied to the Y-Axis (the slow-varying
dimension) of the output data and vice-versa.
Whenever sfExchangeDimensions is True, ScalarField must copy the data array, regardless of the setting of the sfCopyData resource.
- sfFirstNodeIndex (MeshScalarField)
-
If sfElementNodes is set, this resource specifies the
value used to indicate the first node index, normally 0 for NCL or C
style array indexing, or 1 for Fortran style array indexing.
Default: 0
- sfMissingValueV (MeshScalarField)
- If you set sfMissingValueV to a non-NULL value, MeshScalarField treats occurrences of its value in the data array as representing an undefined value. If left unset, MeshScalarField assumes that all values in the data array are valid. You may set sfMissingValueV using any of the data types MeshScalarField accepts for the sfDataArray resource.
- sfMissingValueV (ScalarField)
-
If you set sfMissingValueV to a non-NULL value,
ScalarField treats occurrences of its value in the
data array as representing an undefined value. If left unset,
ScalarField assumes that all values in the data array
are valid. You may set sfMissingValueV using any of the data
types ScalarField accepts for the
sfDataArray resource.
Default: NULL
- sfXArray (MeshScalarField)
-
For a MeshScalarField,
sfXArray is a required resource and must be a
one-dimensional array containing the same number of elements as
sfDataArray. Each element of sfXArray
specifies the location along the X Axis of the corresponding element
of sfDataArray.
You can specify sfXArray using an array of any of the types allowed for sfDataArray.
- sfXArray (ScalarField)
-
If sfXArray is NULL, the coordinates of the X
(faster-varying) axis of the data grid are assumed to be regularly
spaced, and the endpoints are determined by the values of
sfXCStartV and sfXCEndV.
If sfXArray is set using a 1D array, its values represent sequential coordinate locations along the X-Axis (the faster-varying dimension) of the data grid. If the array contains the same number of elements as the data array dimension, its elements specify data grid cell centers. If it contains one more element, its elements specify data grid cell boundaries. ScalarField requires the coordinate array values to increase or decrease monotonically. If the coordinate array input does not have the right number of elements or is non-monotonic, ScalarField issues a warning restores sfXArray to its previous, possibly
NULL
, value. If the input array is valid, ScalarField replaces the current value of sfXCStartV with the value of the first element of sfXArray, and the current value of sfXCEndV with the value of the last element.If sfXArray is set using a 2D array, it must have the same dimension sizes as sfYArray. Each element specifies the location along the X-Axis of a single data grid cell center or boundary. If sfXArray has the same dimension sizes as the data grid, the elements specify the grid cell centers for corresponding elements of the data grid. If both dimension sizes are one greater than the corresponding dimensions of the data grid, the elements specify the locations of the corners of the cell boundaries. Using NCL notation, for a data grid cell element (i,j): coordinate array element (i,j) locates the bottom-left corner, (i+1,j) locates the top-left corner, (i,j+1) locates the bottom-right corner, and (i+1,j+1) locates the top-right corner. For 2D coordinates, there is no requirement that the coordinates be monotonic. However, if the coordinates provided are not well-ordered as expected by the 2D-coordinate transformation routines, errors will occur when the Draw method is called. If the array does not contain valid dimension sizes, ScalarField issues a warning and restores sfXArray to its previous, possibly
NULL
, value.You can specify sfXArray using a one or two dimensional array of any of the types allowed for sfDataArray.
Default: NULL
- sfXCActualEndF (MeshScalarField)
-
This is a get-only resource that is set to the maximum value of sfXArray.
- sfXCActualEndF (ScalarField)
-
When an ending location for a subset of the data is specified using
sfXCEndSubsetV, this location might well fall between two
data points. ScalarField 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. In this case, the read-only resource
sfXCActualEndF is set to the value of the actual ending
location of the data subset along the X Axis.
When subsets are not specified, or are specified using the array indexing resources, sfXCActualEndF has the same value as sfXCEndSubsetV.
Default: <dynamic>
- sfXCActualStartF (MeshScalarField)
-
This is a get-only resource that is set to the minimum value of sfXArray.
- sfXCActualStartF (ScalarField)
-
When a starting location for a subset of the data is specified using
sfXCStartSubsetV, this location might well fall between two
data points. In this case, ScalarField 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 read-only resource
sfXCActualStartF is set to the value of the actual starting
location of the data subset along the X Axis.
When subsets are not specified, or are specified using the array indexing resources, sfXCActualStartF has the same value as sfXCStartSubsetV.
- sfXCEndIndex (ScalarField)
-
This resource specifies the larger of two indexes along the X-Axis
data dimension. Valid values range from one greater than the value of
sfXCStartIndex to one less than the size of the dimension. It
is one of four resources used to specify a rectangular subset of the
data using array indexes. This is the only form of subsetting
ScalarField supports when sfXArray and
sfYArray are set using 2D coordinate arrays,
Unless sfXArray is set with a 2D array, explicitly setting sfXCEndSubsetV overrides any value set for sfXCEndIndex and causes it to be set to the smallest array index value such that the requested data coordinate location is included within the subset. Otherwise, if you set sfXCEndIndex, sfXCEndSubsetV will be set based on its value.
sfXCEndIndex retains its value when the data array changes, unless the X-Axis dimension size also changes. In this case, assuming neither sfXCEndSubsetV nor sfXCEndIndex is explicitly set at the same time, sfXCEndIndex is set to the size of the X-Axis dimension minus one.
- sfXCEndSubsetV (ScalarField)
-
sfXCEndSubsetV specifies the ending location along the X Axis
of a rectangular sub-array of the data array. It should be set to a
value within the data coordinate extent as established by the values
of sfXCStartV and sfXCEndV. If it is outside the
coordinate extent, ScalarField issues a warning and
sets it to the value of sfXCEndV. If the values of
sfXCStartSubsetV and sfXCEndSubsetV are oppositely
directed from the direction established by sfXCStartV and
sfXCEndV, ScalarField issues a warning and
exchanges their values. When you do not explicitly set a value for
sfXCEndSubsetV:
- at initialization or when the X-Axis dimension size changes, if sfXCEndIndex is not set, sfXCEndSubsetV takes the value of sfXCEndV;
- else if sfXCEndIndex is set, or there is a change to sfXCStartV, sfXCEndV or sfXArray, sfXCEndSubsetV takes the data coordinate value indexed by the value of sfXCEndIndex;
- else sfXCEndSubsetV retains its current value.
Since the data array grid consists of data located at discrete points, the location specified by sfXCEndSubsetV might well fall between two data points. In this case, ScalarField 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 read-only resource sfXCActualEndF in order to find the exact end of the subset along the X Axis. You may set sfXCEndSubsetV using any of the data types that ScalarField accepts for the sfDataArray resource.
If sfXArray is set with a valid 2D coordinate array, ScalarField ignores any value set for sfXCEndSubsetV. If a subset has been set using the indexing resources, sfXCEndSubsetV is set to the maximum value found within the specified subset of sfXArray. Otherwise sfXCEndSubsetV is set to the same value as sfXCEndV.
- sfXCEndV (ScalarField)
-
Ordinarily, this resource specifies the location along the X Axis of
the last element of the fast-varying dimension of the data.If the
array resource sfXArray is NULL, you can set
sfXCEndV to any value (presumably meaningful in the context
of the your data). If sfXCStartV is greater than
sfXCEndV, the direction of the data locations along the X
Axis is opposite the direction of the positive X Axis. If
sfXArray is NULL and sfXCEndV is not specified,
ScalarField sets sfXCEndV to the size of the
fast-varying data dimension minus one. You may set sfXCEndV
using any of the data types ScalarField accepts for
the sfDataArray resource.
If you set sfXArray with a valid 1D or 2D array, ScalarField ignores any value set for sfXCEndV. If sfXArray is one-dimensional, sfXCEndV is set to the value of its last element. If sfXArray is two-dimensional, sfXCStartV is set to the maximum value found in all elements of the array. In this case, it could correspond to any element of the data array.
- sfXCStartIndex (ScalarField)
-
This resource specifies the smaller of two indexes along the X-Axis
dimension. Valid values range from 0 to one less than the value of
sfXCEndIndex. It is one of four resources used to specify a
rectangular subset of the data using array indexes. This is the only
form of subsetting ScalarField supports when
sfXArray and sfYArray are set using 2D coordinate
arrays,
Unless sfXArray is set with a 2D array, explicitly setting sfXCStartSubsetV overrides any value set for sfXCStartIndex and causes it to be set to the largest array index value such that the requested data coordinate location is included within the subset. Otherwise, if you set sfXCStartIndex, sfXCStartSubsetV will be set based on its value.
sfXCStartIndex retains its value when the data array changes, unless the X-Axis dimension size also changes. In this case, assuming neither sfXCStartSubsetV nor sfXCStartIndex is explicitly set at the same time, sfXCStartIndex is set to 0.
- sfXCStartSubsetV (ScalarField)
-
sfXCStartSubsetV specifies the starting location along the
X Axis of a rectangular sub-array of the data array. It should be set
to a value within the data coordinate extent as established by the
values of sfXCStartV and sfXCEndV. If it is outside
the coordinate extent, ScalarField issues a warning
and sets it to the value of sfXCStartV. If the values of
sfXCStartSubsetV and sfXCEndSubsetV are oppositely
directed from the direction established by sfXCStartV and
sfXCEndV, ScalarField issues a warning and
exchanges their values. When you do not explicitly set a value for
sfXCStartSubsetV:
- at initialization or when the X-Axis dimension size changes, if sfXCStartIndex is not set, sfXCStartSubsetV takes the value of sfXCStartV;
- else if sfXCStartIndex is set, or there is a change to sfXCStartV, sfXCEndV or sfXArray, sfXCStartSubsetV takes the data coordinate value indexed by the value of sfXCStartIndex;
- else sfXCStartSubsetV retains its current value.
Since the data array grid consists of data located at discrete points, the location specified by sfXCStartSubsetV might well fall between two data points. In this case, ScalarField 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 read-only resource sfXCActualStartF in order to find the exact start of the subset along the X Axis. You may set sfXCStartSubsetV using any of the data types that ScalarField accepts for the sfDataArray resource.
If sfXArray is set with a valid 2D coordinate array, ScalarField ignores any value set for sfXCStartSubsetV. If a subset has been set using the indexing resources, sfXCStartSubsetV is set to the minimum value found within the specified subset of sfXArray. Otherwise sfXCStartSubsetV is set to the same value as sfXCStartV.
- sfXCStartV (ScalarField)
-
Ordinarily, this resource specifies the location along the X Axis of
the first element of the fast-varying dimension of the data. If the
array resource sfXArray is NULL, you can set
sfXCStartV to any value (presumably meaningful in the context
of the your data). If sfXCStartV is greater than
sfXCEndV, the direction of the data locations along the X
Axis is opposite the direction of the positive X Axis. If
sfXArray is NULL and sfXCStartV is not specified,
ScalarField sets sfXCStartV to the value
0. You may set sfXCStartV using any of the data types
ScalarField accepts for the sfDataArray
resource.
If you set sfXArray with a valid 1D or 2D array, ScalarField ignores any value set for sfXCStartV. If sfXArray is one-dimensional, sfXCStartV is set to the value of its first element. If sfXArray is two-dimensional, sfXCStartV is set to the minimum value found in all elements of the array. In this case, it could correspond to any element of the data array.
- sfXCStride (ScalarField)
-
When sfXCStride has a value greater than one, the
ScalarField object creates a new array containing
only columns indexed along the X dimension by successive multiples
(starting with 0) of the sfXCStride 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 sfXCStride value, then the data coordinate range may be reduced slightly.
The sfXCStride resource is currently ignored if sfXArray and sfYArray contain 2D coordinate arrays.
- sfXCellBounds (MeshScalarField)
-
Set this resource and sfYCellBounds with two
dimensional arrays to specify the boundaries of the cells surrounding
each data node. The first dimension must have the same number of
elements as sfDataArray. The second dimension should
be large enough to contain all the vertices of the polygons that
define the cell boundaries. This resource specifies the locations
along the X Axis of the vertices of the bounding cells. If all the cells
do not have the same number of vertices, the value of the last valid
vertex should be repeated for the extra elements of cells with fewer vertices.
Given the
resources sfXCellBounds and
sfYCellBounds, the triangles defining the mesh will
be deduced by sorting and matching the vertices from adjoining cell
boundaries.
Default: NULL
- sfYArray (MeshScalarField)
-
For a MeshScalarField,
sfYArray is a required resource and must be a
one-dimensional array containing the same number of elements as
sfDataArray. Each element of sfYArray
specifies the location along the Y Axis of the corresponding element
of sfDataArray.
You can specify sfYArray using an array of any of the types allowed for sfDataArray.
- sfYArray (ScalarField)
-
If sfYArray is NULL, the coordinates of the Y
(slower-varying) axis of the data grid are assumed to be regularly
spaced, and the endpoints are determined by the values of
sfYCStartV and sfYCEndV.
If sfYArray is set using a 1D array, its values represent sequential coordinate locations along the Y-Axis (the slower-varying dimension) of the data grid. If the array contains the same number of elements as the data array dimension, its elements specify data grid cell centers. If it contains one more element, its elements specify data grid cell boundaries. ScalarField requires the coordinate array values to increase or decrease monotonically. If the coordinate array input does not have the right number of elements or is non-monotonic, ScalarField issues a warning and restores sfYArray to its previous, possibly
NULL
, value. If the input array is valid, ScalarField replaces the current value of sfYCStartV with the value of the first element of sfYArray, and the current value of sfYCEndV with the value of the last element.If sfYArray is set using a 2D array it must have the same dimension sizes as sfXArray. Each element specifies the location along the Y-Axis of a single data grid cell center or boundary. If sfYArray has the same dimension sizes as the data grid, the elements specify the grid cell centers for corresponding elements of the data grid. If both dimension sizes are one greater than the corresponding dimensions of the data grid, the elements specify the locations of the corners of the cell boundaries. Using NCL notation, for a data grid cell element (i,j): coordinate array element (i,j) locates the bottom-left corner, (i+1,j) locates the top-left corner, (i,j+1) locates the bottom-right corner, and (i+1,j+1) locates the top-right corner. For 2D coordinates, there is no requirement that the coordinates be monotonic. However, if the coordinates provided are not well-ordered as expected by the 2D-coordinate transformation routines, errors will occur when the Draw method is called. If the array does not contain valid dimension sizes, ScalarField issues a warning and restores sfYArray to its previous, possibly
NULL
, value.You can specify sfYArray using a one or two dimensional array of any of the types allowed for sfDataArray.
Default: NULL
- sfYCActualEndF (MeshScalarField)
-
This is a get-only resource that is set to the maximum value of sfYArray.
- sfYCActualEndF (ScalarField)
-
When an ending location for a subset of the data is specified using
sfYCEndSubsetV, this location might well fall between two
data points. In this case, ScalarField 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 read-only resource
sfYCActualEndF is set to the value of the actual ending
location of the data subset along the Y Axis.
When subsets are not specified, or are specified using the array indexing resources, sfYCActualEndF has the same value as sfYCEndSubsetV.
Default: <dynamic>
- sfYCActualStartF (MeshScalarField)
-
This is a get-only resource that is set to the minimum value of sfYArray.
- sfYCActualStartF (ScalarField)
-
When a starting location for a subset of the data is specified using
sfYCStartSubsetV, this location might well fall between two
data points. In this case, ScalarField 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 read-only resource
sfYCActualStartF is set to the value of the actual starting
location of the data subset along the Y Axis.
When subsets are not specified, or are specified using the array indexing resources, sfYCActualStartF has the same value as sfYCStartSubsetV.
- sfYCEndIndex (ScalarField)
-
This resource specifies the larger of two indexes along the Y-Axis
data dimension. Valid values range from one greater than the value of
sfYCStartIndex to one less than the size of the dimension. It
is one of four resources used to specify a rectangular subset of the
data using array indexes. This is the only form of subsetting
ScalarField supports when sfXArray and
sfYArray are set using 2D coordinate arrays,
Unless sfYArray is set with a 2D array, explicitly setting sfYCEndSubsetV overrides any value set for sfYCEndIndex and causes it to be set to the smallest array index value such that the requested data coordinate location is included within the subset. Otherwise, if you set sfYCEndIndex, sfYCEndSubsetV will be set based on its value.
sfYCEndIndex retains its value when the data array changes, unless the Y-Axis dimension size also changes. In this case, assuming neither sfYCEndSubsetV nor sfYCEndIndex is explicitly set at the same time, sfYCEndIndex is set to the size of the Y-Axis dimension minus one.
- sfYCEndSubsetV (ScalarField)
-
sfYCEndSubsetV specifies the ending location along the Y Axis
of a rectangular sub-array of the data array. It should be set to a
value within the data coordinate extent as established by the values
of sfYCStartV and sfYCEndV. If it is outside the
coordinate extent, ScalarField issues a warning and
sets it to the value of sfYCEndV. If the values of
sfYCStartSubsetV and sfYCEndSubsetV are oppositely
directed from the direction established by sfYCStartV and
sfYCEndV, ScalarField issues a warning and
exchanges their values. When you do not explicitly set a value for
sfYCEndSubsetV:
- at initialization or when the Y-Axis dimension size changes, if sfYCEndIndex is not set, sfYCEndSubsetV takes the value of sfYCEndV;
- else if sfYCEndIndex is set, or there is a change to sfYCStartV, sfYCEndV or sfYArray, sfYCEndSubsetV takes the data coordinate value indexed by the value of sfYCEndIndex;
- else sfYCEndSubsetV retains its current value.
Since the data array grid consists of data located at discrete points, the location specified by sfYCEndSubsetV might well fall between two data points. In this case, ScalarField 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 read-only resource sfYCActualEndF in order to find the exact end of the subset along the Y Axis. You may set sfYCEndSubsetV using any of the data types that ScalarField accepts for the sfDataArray resource.
If sfYArray is set with a valid 2D coordinate array, ScalarField ignores any value set for sfYCEndSubsetV. If a subset has been set using the indexing resources, sfYCEndSubsetV is set to the maximum value found within the specified subset of sfYArray. Otherwise sfYCEndSubsetV is set to the same value as sfYCEndV.
- sfYCEndV (ScalarField)
-
Ordinarily, this resource specifies the location along the Y Axis of
the last element along the slower-varying dimension of the data. If
the array resource sfYArray is set and found to be valid,
ScalarField overwrites the current value of
sfYCStartV, replacing it with the value of the last element
of sfYArray. Otherwise, you can set sfYCStartV to
any value (presumably meaningful in the context of the your data). If
sfYCStartV is greater than sfYCEndV, the direction
of the data locations along the Y Axis is opposite the direction of
the positive Y Axis. If sfYArray is NULL or invalid and
sfYCEndV is not specified, ScalarField sets
sfYCEndV to the size of the slower-varying data dimension
minus one. You may set sfYCEndV using any of the data types
ScalarField accepts for the sfDataArray
resource.
If you set sfXArray with a valid 1D or 2D array, ScalarField ignores any value set for sfXCEndV. If sfXArray is one-dimensional, sfXCEndV is set to the value of its last element. If sfXArray is two-dimensional, sfXCStartV is set to the maximum value found in all elements of the array. In this case, it could correspond to any element of the data array.
- sfYCStartIndex (ScalarField)
-
This resource specifies the smaller of two indexes along the Y-Axis
dimension. Valid values range from 0 to one less than the value of
sfYCEndIndex. It is one of four resources used to specify a
rectangular subset of the data using array indexes. This is the only
form of subsetting ScalarField supports when
sfXArray and sfYArray are set using 2D coordinate
arrays,
Unless sfYArray is set with a 2D array, explicitly setting sfYCStartSubsetV overrides any value set for sfYCStartIndex and causes it to be set to the largest array index value such that the requested data coordinate location is included within the subset. Otherwise, if you set sfYCStartIndex, sfYCStartSubsetV will be set based on its value.
sfYCStartIndex retains its value when the data array changes, unless the Y-Axis dimension size also changes. In this case, assuming neither sfYCStartSubsetV nor sfYCStartIndex is explicitly set at the same time, sfYCStartIndex is set to 0.
- sfYCStartSubsetV (ScalarField)
-
sfYCStartSubsetV specifies the starting location along the
Y Axis of a rectangular sub-array of the data array. It should be set
to a value within the data coordinate extent as established by the
values of sfYCStartV and sfYCEndV. If it is outside
the coordinate extent, ScalarField issues a warning
and sets it to the value of sfYCStartV. If the values of
sfYCStartSubsetV and sfYCEndSubsetV are oppositely
directed from the direction established by sfYCStartV and
sfYCEndV, ScalarField issues a warning and
exchanges their values. When you do not explicitly set a value for
sfYCStartSubsetV:
- at initialization or when the Y-Axis dimension size changes, if sfYCStartIndex is also set, sfYCStartSubsetV takes the value of sfYCStartV;
- else if sfYCStartIndex is set, or there is a change to sfYCStartV, sfYCEndV or sfYArray, sfYCStartSubsetV takes the data coordinate value indexed by the value of sfYCStartIndex;
- else sfYCStartSubsetV retains its current value.
Since the data array grid consists of data located at discrete points, the location specified by sfYCStartSubsetV might well fall between two data points. In this case, ScalarField 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 read-only resource sfYCActualStartF in order to find the exact start of the subset along the Y Axis. You may set sfYCStartSubsetV using any of the data types that ScalarField accepts for the sfDataArray resource.
If sfYArray is set with a valid 2D coordinate array, ScalarField ignores any value set for sfYCStartSubsetV. If a subset has been set using the indexing resources, sfYCStartSubsetV is set to the mimimum value found within the specified subset of sfYArray. Otherwise sfYCStartSubsetV is set to the same value as sfYCStartV.
- sfYCStartV (ScalarField)
-
Ordinarily, this resource specifies the location along the Y Axis of
the first element of the slow-varying dimension of the data. If the
array resource sfYArray is NULL, you can set
sfYCStartV to any value (presumably meaningful in the context
of the your data). If sfYCStartV is greater than
sfYCEndV, the direction of the data locations along the Y
Axis is opposite the direction of the positive Y Axis. If
sfYArray is NULL and sfYCStartV is not specified,
ScalarField sets sfYCStartV to the value
0. You may set sfYCStartV using any of the data types
ScalarField accepts for the sfDataArray
resource.
If you set sfYArray with a valid 1D or 2D array, ScalarField ignores any value set for sfYCStartV. If sfYArray is one-dimensional, sfYCStartV is set to the value of its first element. If sfYArray is two-dimensional, sfYCStartV is set to the minimum value found in all elements of the array. In this case, it could correspond to any element of the data array.
- sfYCStride (ScalarField)
-
When sfYCStride has a value greater than one, the
ScalarField object creates a new array containing
only rows indexed along the Y dimension by successive multiples
(starting with 0) of the sfYCStride 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 sfYCStride value, then the data coordinate range may be reduced slightly.
The sfYCStride resource is currently ignored if sfXArray and sfYArray contain 2D coordinate arrays.
- sfYCellBounds (MeshScalarField)
-
Set this resource and sfXCellBounds with two
dimensional arrays to specify the boundaries of the cells surrounding
each data node. The first dimension must have the same number of
elements as sfDataArray. The second dimension should
be large enough to contain all the vertices of the polygons that
define the cell boundaries. This resource specifies the locations
along the Y Axis of the vertices of the bounding cells. If all the cells
do not have the same number of vertices, the value of the last valid
vertex should be repeated for the extra elements of cells with fewer vertices.
Given the
resources sfXCellBounds and
sfYCellBounds, the triangles defining the mesh will
be deduced by sorting and matching the vertices from adjoining cell
boundaries.
Default: NULL