NCL Website header
NCL Home > Documentation > Graphics > Resources

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.

Default: True

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

Default: None (must be specified)

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: NULL

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.

Default: False

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.

Default: NULL

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.

Default: None (must be specified)

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.

V4.1 Status Note 1

Default: NULL

sfXCActualEndF (MeshScalarField)

This is a get-only resource that is set to the maximum value of sfXArray.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: <dynamic>

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:

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: 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:

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: 1

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.

Default: None (must be specified)

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.

V4.1 Status Note 1

Default: NULL

sfYCActualEndF (MeshScalarField)

This is a get-only resource that is set to the maximum value of sfYArray.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: <dynamic>

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:

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: 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:

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.

Default: <dynamic>

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.

Default: <dynamic>

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.

Default: 1

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