Subsetting

Extract Topography

class PVGeo.grids.subset.ExtractTopography(op='underneath', tolerance=0.001, offset=0.0, invert=False, remove=False)[source]

Bases: PVGeo.base.FilterBase

This filter takes two inputs: any mesh dataset and a set of points for a topography source. This will add a boolean data array to the cell data of the input grid on whether that cell should be active (under topographic layer). A user can also choose to directly extract the data rather than appending a boolean scalar array via the remove argument.

Parameters:
  • op (str, int, or callable) – The operation as a string key, int index, or callable method
  • tolerance (float) – buffer around the topography surface to include as part of the decision boundary
  • offset (float) – static value to shift the reference topography surface
  • ivert (bool) – optional to invert the extraction.
  • remove (bool) – Optional parameter to apply a thresholding filter and return a vtkUnstructuredGrid object with only the extracted cells. The remove option is only available in Python environments (not available in ParaView). The remove flag must be set at the time of instantiation of this algorithm. This does not actually update the algorithm’s output data object but applies a vtki threshold filter to pass a new data object after calling Apply.

Note

This currenlty ignores time varying inputs. We can implement time variance but need to think about how we would like to do that. Should the topography surface be static and the volumetric data have time variance?

Apply(data, points)[source]

Update the algorithm and get the output data object

FillInputPortInformation(port, info)[source]

This simply makes sure the user selects the correct inputs

static GetOperation(idx)[source]

Gets a extraction operation based on an index in the keys

Returns:the operation method
Return type:callable
static GetOperationNames()[source]

Gets a list of the extraction operation keys

Returns:the keys for getting the operations
Return type:list(str)
static GetOperations()[source]

Returns the extraction operation methods as callable objects in a dictionary

GetTolerance()[source]
RequestData(request, inInfo, outInfo)[source]

Used by pipeline to generate output

RequestDataObject(request, inInfo, outInfo)[source]

Constructs the output data object based on the input data object

SetInvert(flag)[source]

Sets the boolean flag on whether to invert the extraction.

SetOffset(offset)[source]

Sets how far off (in Z dir) to slice the data

SetOperation(op)[source]

Set the type of extraction to perform.

Parameters:op (str, int, or callable) – The operation as a string key, int index, or callable method

Note

This can accept a callable method to set a custom operation as long as its signature is <callable>(self, topoPts, dataPts) and it strictly produces an integer array of zeros and ones.

SetTolerance(tol)[source]
static _intersection(topoPts, dataPts, tolerance)[source]
static _query(topoPts, dataPts)[source]
static _underneath(topoPts, dataPts, tolerance)[source]