VTK-m  2.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
vtkm::filter::resampling::HistSampling Class Reference

Adaptively sample points to preserve tail features. More...

#include <HistSampling.h>

Inheritance diagram for vtkm::filter::resampling::HistSampling:
vtkm::filter::Filter

Public Member Functions

void SetNumberOfBins (vtkm::Id numberOfBins)
 Specify the number of bins used when computing the histogram. More...
 
vtkm::Id GetNumberOfBins ()
 Specify the number of bins used when computing the histogram. More...
 
void SetSampleFraction (vtkm::FloatDefault fraction)
 Specify the fraction of points to create in the sampled data. More...
 
vtkm::FloatDefault GetSampleFraction () const
 Specify the fraction of points to create in the sampled data. More...
 
void SetSamplePercent (vtkm::FloatDefault samplePercent)
 
vtkm::FloatDefault GetSamplePercent () const
 
void SetSeed (vtkm::UInt32 seed)
 Specify the seed used for random number generation. More...
 
vtkm::UInt32 GetSeed ()
 Specify the seed used for random number generation. More...
 
- Public Member Functions inherited from vtkm::filter::Filter
 Filter ()
 
virtual ~Filter ()
 
vtkm::cont::DataSet Execute (const vtkm::cont::DataSet &input)
 Executes the filter on the input and produces a result dataset. More...
 
vtkm::cont::PartitionedDataSet Execute (const vtkm::cont::PartitionedDataSet &input)
 Executes the filter on the input PartitionedDataSet and produces a result PartitionedDataSet. More...
 
void SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (vtkm::filter::FieldSelection &&fieldsToPass)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (const vtkm::filter::FieldSelection &fieldsToPass, vtkm::filter::FieldSelection::Mode mode)
 
void SetFieldsToPass (std::initializer_list< std::string > fields, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (std::initializer_list< std::pair< std::string, vtkm::cont::Field::Association >> fields, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (const std::string &fieldname, vtkm::cont::Field::Association association, vtkm::filter::FieldSelection::Mode mode=vtkm::filter::FieldSelection::Mode::Select)
 Specify which fields get passed from input to output. More...
 
void SetFieldsToPass (const std::string &fieldname, vtkm::filter::FieldSelection::Mode mode)
 Specify which fields get passed from input to output. More...
 
const vtkm::filter::FieldSelectionGetFieldsToPass () const
 Specify which fields get passed from input to output. More...
 
vtkm::filter::FieldSelectionGetFieldsToPass ()
 Specify which fields get passed from input to output. More...
 
void SetPassCoordinateSystems (bool flag)
 Specify whether to always pass coordinate systems. More...
 
bool GetPassCoordinateSystems () const
 Specify whether to always pass coordinate systems. More...
 
void SetOutputFieldName (const std::string &name)
 Specifies the name of the output field generated. More...
 
const std::string & GetOutputFieldName () const
 Specifies the name of the output field generated. More...
 
void SetActiveField (const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any)
 Specifies a field to operate on. More...
 
void SetActiveField (vtkm::IdComponent index, const std::string &name, vtkm::cont::Field::Association association=vtkm::cont::Field::Association::Any)
 Specifies a field to operate on. More...
 
const std::string & GetActiveFieldName (vtkm::IdComponent index=0) const
 Specifies a field to operate on. More...
 
vtkm::cont::Field::Association GetActiveFieldAssociation (vtkm::IdComponent index=0) const
 Specifies a field to operate on. More...
 
void SetActiveCoordinateSystem (vtkm::Id coord_idx)
 Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet. More...
 
void SetActiveCoordinateSystem (vtkm::IdComponent index, vtkm::Id coord_idx)
 Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet. More...
 
vtkm::Id GetActiveCoordinateSystemIndex (vtkm::IdComponent index=0) const
 Specifies the coordinate system index to make active to use when processing the input vtkm::cont::DataSet. More...
 
void SetUseCoordinateSystemAsField (bool val)
 Specifies whether to use point coordinates as the input field. More...
 
void SetUseCoordinateSystemAsField (vtkm::IdComponent index, bool val)
 Specifies whether to use point coordinates as the input field. More...
 
bool GetUseCoordinateSystemAsField (vtkm::IdComponent index=0) const
 Specifies whether to use point coordinates as the input field. More...
 
vtkm::IdComponent GetNumberOfActiveFields () const
 Return the number of active fields currently set. More...
 
virtual bool CanThread () const
 Returns whether the filter can execute on partitions in concurrent threads. More...
 
void SetThreadsPerCPU (vtkm::Id numThreads)
 
void SetThreadsPerGPU (vtkm::Id numThreads)
 
vtkm::Id GetThreadsPerCPU () const
 
vtkm::Id GetThreadsPerGPU () const
 
bool GetRunMultiThreadedFilter () const
 
void SetRunMultiThreadedFilter (bool val)
 
void SetInvoker (vtkm::cont::Invoker inv)
 Specify the vtkm::cont::Invoker to be used to execute worklets by this filter instance. More...
 

Private Member Functions

vtkm::cont::DataSet DoExecute (const vtkm::cont::DataSet &input) override
 

Private Attributes

vtkm::Id NumberOfBins = 10
 
vtkm::FloatDefault SampleFraction = 0.1f
 
vtkm::UInt32 Seed = 0
 

Additional Inherited Members

- Protected Member Functions inherited from vtkm::filter::Filter
vtkm::cont::DataSet CreateResult (const vtkm::cont::DataSet &inDataSet) const
 Create the output data set for DoExecute. More...
 
vtkm::cont::DataSet CreateResultField (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::Field &resultField) const
 Create the output data set for DoExecute More...
 
vtkm::cont::DataSet CreateResultField (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, vtkm::cont::Field::Association resultFieldAssociation, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const
 Create the output data set for DoExecute More...
 
vtkm::cont::DataSet CreateResultFieldPoint (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const
 Create the output data set for DoExecute More...
 
vtkm::cont::DataSet CreateResultFieldCell (const vtkm::cont::DataSet &inDataSet, const std::string &resultFieldName, const vtkm::cont::UnknownArrayHandle &resultFieldArray) const
 Create the output data set for DoExecute More...
 
vtkm::cont::PartitionedDataSet CreateResult (const vtkm::cont::PartitionedDataSet &input, const vtkm::cont::PartitionedDataSet &resultPartitions) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
vtkm::cont::PartitionedDataSet CreateResult (const vtkm::cont::PartitionedDataSet &input, const vtkm::cont::PartitionedDataSet &resultPartitions, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
vtkm::cont::DataSet CreateResult (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
vtkm::cont::DataSet CreateResultCoordinateSystem (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, const vtkm::cont::CoordinateSystem &resultCoordSystem, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
template<typename FieldMapper >
vtkm::cont::DataSet CreateResultCoordinateSystem (const vtkm::cont::DataSet &inDataSet, const vtkm::cont::UnknownCellSet &resultCellSet, const std::string &coordsName, const vtkm::cont::UnknownArrayHandle &coordsData, FieldMapper &&fieldMapper) const
 Create the output data set for DoExecute. More...
 
const vtkm::cont::FieldGetFieldFromDataSet (const vtkm::cont::DataSet &input) const
 Retrieve an input field from a vtkm::cont::DataSet object. More...
 
const vtkm::cont::FieldGetFieldFromDataSet (vtkm::IdComponent index, const vtkm::cont::DataSet &input) const
 Retrieve an input field from a vtkm::cont::DataSet object. More...
 
virtual vtkm::cont::PartitionedDataSet DoExecutePartitions (const vtkm::cont::PartitionedDataSet &inData)
 
template<typename Functor , typename... Args>
void CastAndCallScalarField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input scalar field. More...
 
template<typename Functor , typename... Args>
void CastAndCallScalarField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input scalar field. More...
 
template<vtkm::IdComponent VecSize, typename Functor , typename... Args>
void CastAndCallVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input vector field. More...
 
template<vtkm::IdComponent VecSize, typename Functor , typename... Args>
void CastAndCallVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 Convenience method to get the array from a filter's input vector field. More...
 
template<typename Functor , typename... Args>
void CastAndCallVariableVecField (const vtkm::cont::UnknownArrayHandle &fieldArray, Functor &&functor, Args &&... args) const
 This method is like CastAndCallVecField except that it can be used for a field of unknown vector size (or scalars). More...
 
template<typename Functor , typename... Args>
void CastAndCallVariableVecField (const vtkm::cont::Field &field, Functor &&functor, Args &&... args) const
 This method is like CastAndCallVecField except that it can be used for a field of unknown vector size (or scalars). More...
 
- Protected Attributes inherited from vtkm::filter::Filter
vtkm::cont::Invoker Invoke
 

Detailed Description

Adaptively sample points to preserve tail features.

This filter randomly samples the points of a vtkm::cont::DataSet and generates a new vtkm::cont::DataSet with a subsampling of the points. The sampling is adaptively selected to preserve tail and outlying features of the active field. That is, the more rare a field value is, the more likely the point will be selected in the sampling. This is done by creating a histogram of the field and using that to derive the importance level of each field value. Details of the algorithm can be found in the paper "In Situ Data-Driven Adaptive Sampling for Large-scale Simulation Data Summarization" by Biswas, Dutta, Pulido, and Ahrens as published in In Situ Infrastructures for Enabling Extreme-scale Analysis and Visualization (ISAV 2018).

The cell set of the input data is removed and replaced with a set with a vertex cell for each point. This effectively converts the data to a point cloud.

Member Function Documentation

◆ DoExecute()

vtkm::cont::DataSet vtkm::filter::resampling::HistSampling::DoExecute ( const vtkm::cont::DataSet input)
overrideprivatevirtual

Implements vtkm::filter::Filter.

◆ GetNumberOfBins()

vtkm::Id vtkm::filter::resampling::HistSampling::GetNumberOfBins ( )
inline

Specify the number of bins used when computing the histogram.

The histogram is used to select the importance of each field value. More rare field values are more likely to be selected.

◆ GetSampleFraction()

vtkm::FloatDefault vtkm::filter::resampling::HistSampling::GetSampleFraction ( ) const
inline

Specify the fraction of points to create in the sampled data.

A fraction of 1 means that all the points will be sampled and be in the output. A fraction of 0 means that none of the points will be sampled. A fraction of 0.5 means that half the points will be selected to be in the output.

◆ GetSamplePercent()

vtkm::FloatDefault vtkm::filter::resampling::HistSampling::GetSamplePercent ( ) const
inline

◆ GetSeed()

vtkm::UInt32 vtkm::filter::resampling::HistSampling::GetSeed ( )
inline

Specify the seed used for random number generation.

The random numbers are used to select which points to pull from the input. If the same seed is used for multiple invocations, the results will be the same.

◆ SetNumberOfBins()

void vtkm::filter::resampling::HistSampling::SetNumberOfBins ( vtkm::Id  numberOfBins)
inline

Specify the number of bins used when computing the histogram.

The histogram is used to select the importance of each field value. More rare field values are more likely to be selected.

◆ SetSampleFraction()

void vtkm::filter::resampling::HistSampling::SetSampleFraction ( vtkm::FloatDefault  fraction)
inline

Specify the fraction of points to create in the sampled data.

A fraction of 1 means that all the points will be sampled and be in the output. A fraction of 0 means that none of the points will be sampled. A fraction of 0.5 means that half the points will be selected to be in the output.

◆ SetSamplePercent()

void vtkm::filter::resampling::HistSampling::SetSamplePercent ( vtkm::FloatDefault  samplePercent)
inline

◆ SetSeed()

void vtkm::filter::resampling::HistSampling::SetSeed ( vtkm::UInt32  seed)
inline

Specify the seed used for random number generation.

The random numbers are used to select which points to pull from the input. If the same seed is used for multiple invocations, the results will be the same.

Member Data Documentation

◆ NumberOfBins

vtkm::Id vtkm::filter::resampling::HistSampling::NumberOfBins = 10
private

◆ SampleFraction

vtkm::FloatDefault vtkm::filter::resampling::HistSampling::SampleFraction = 0.1f
private

◆ Seed

vtkm::UInt32 vtkm::filter::resampling::HistSampling::Seed = 0
private

The documentation for this class was generated from the following file: