TTK
|
TTK VTK-filter that takes an input time-varying data set (represented by a list of scalar fields) and which computes a tracking mesh. More...
#include <ttkTrackingFromFields.h>
Public Types | |
typedef ttkAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
virtual void | SetDistanceAlgorithm (const std::string &) |
virtual std::string | GetDistanceAlgorithm () |
virtual void | SetSampling (int) |
Temporal sampling (take every N timestep). | |
virtual int | GetSampling () |
virtual void | SetStartTimestep (int) |
First timestep. | |
virtual int | GetStartTimestep () |
virtual void | SetEndTimestep (int) |
Last timestep (-1 to use the last timestep available). | |
virtual int | GetEndTimestep () |
virtual void | SetTolerance (double) |
Discard pairs below this threshold (percentage of the function span). | |
virtual double | GetTolerance () |
virtual void | SetPX (double) |
Importance weight for the X component of the extremum. | |
virtual double | GetPX () |
virtual void | SetPY (double) |
Importance weight for the Y component of the extremum. | |
virtual double | GetPY () |
virtual void | SetPZ (double) |
Importance weight for the Z component of the extremum. | |
virtual double | GetPZ () |
virtual void | SetPE (double) |
Importance weight for extrema. | |
virtual double | GetPE () |
virtual void | SetPS (double) |
Importance weight for saddles. | |
virtual double | GetPS () |
virtual void | SetWassersteinMetric (const std::string &) |
Value of the parameter p for the Wp (p-th Wasserstein) distance computation (type "inf" for the Bottleneck distance). | |
virtual std::string | GetWassersteinMetric () |
virtual void | SetPVAlgorithm (int) |
Method for computing matchings. | |
virtual int | GetPVAlgorithm () |
virtual void | SetUseGeometricSpacing (bool) |
For the translation of the second set of critical points even the persistence diagrams are embedded in the original domain. This is useful to visualize the matching between the diagrams of two 2D scalar fields. | |
virtual bool | GetUseGeometricSpacing () |
virtual void | SetSpacing (double) |
Translation on the Z axis between the output representations of the persistence diagrams. | |
virtual double | GetSpacing () |
virtual void | SetDoPostProc (bool) |
Do post-processing. | |
virtual bool | GetDoPostProc () |
virtual void | SetPostProcThresh (double) |
Threshold for merging/splitting trajectories in connected components array. | |
virtual double | GetPostProcThresh () |
![]() | |
void | UpdateThreadNumber () |
void | SetThreadNumber (int threadNumber) |
void | SetUseAllCores (bool useAllCores) |
void | SetDebugLevel (int debugLevel) |
void | SetCompactTriangulationCacheSize (float cacheSize) |
vtkDataArray * | GetOptionalArray (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, const int &inputPort=0) |
vtkDataArray * | GetOrderArray (vtkDataSet *const inputData, const int scalarArrayIdx, ttk::Triangulation *triangulation, const bool getGlobalOrder=false, const int orderArrayIdx=0, const bool enforceOrderArrayIdx=false) |
vtkDataArray * | checkForGlobalAndComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *orderArray, ttk::Triangulation *triangulation, const bool enforceOrderArrayIdx) |
vtkDataArray * | ComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *oldOrderArray, ttk::Triangulation *triangulation) |
ttk::SimplexId * | GetIdentifierArrayPtr (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, std::vector< ttk::SimplexId > &spareStorage, const int inputPort=0, const bool printErr=true) |
ttk::Triangulation * | GetTriangulation (vtkDataSet *dataSet) |
int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) override |
vtkDataSet * | GetOutput () |
vtkDataSet * | GetOutput (int) |
void | SetInputData (vtkDataSet *) |
void | SetInputData (int, vtkDataSet *) |
void | AddInputData (vtkDataSet *) |
void | AddInputData (int, vtkDataSet *) |
template<typename inputType > | |
int | checkEmptyMPIInput (inputType *input) |
This method tests whether the input is a nullptr. If the computation is being done on multiple processes, it is possible that the domain of one process or more is empty, but not others, therefore in that particular case the rest of the filter will not be computed but an error message will not be sent. | |
![]() | |
Debug () | |
~Debug () override | |
virtual int | setDebugLevel (const int &debugLevel) |
int | setWrapper (const Wrapper *wrapper) override |
int | printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
void | setDebugMsgPrefix (const std::string &prefix) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Static Public Member Functions | |
static ttkTrackingFromFields * | New () |
static int | IsTypeOf (const char *type) |
static ttkTrackingFromFields * | SafeDownCast (vtkObject *o) |
![]() | |
static ttkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static ttkAlgorithm * | SafeDownCast (vtkObject *o) |
static std::string | GetOrderArrayName (vtkDataArray *const array) |
static vtkInformationIntegerKey * | SAME_DATA_TYPE_AS_INPUT_PORT () |
Protected Member Functions | |
ttkTrackingFromFields () | |
int | FillInputPortInformation (int port, vtkInformation *info) override |
int | FillOutputPortInformation (int port, vtkInformation *info) override |
int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override |
![]() | |
ttkAlgorithm () | |
~ttkAlgorithm () override | |
void | MPIGhostPipelinePreconditioning (vtkDataSet *input) |
void | MPIPipelinePreconditioning (vtkDataSet *input, std::vector< int > &neighbors, std::map< int, int > &neighToId, ttk::Triangulation *triangulation=nullptr) |
bool | checkGlobalIdValidity (ttk::LongSimplexId *globalIds, ttk::SimplexId simplexNumber, unsigned char *ghost, int *rankArray) |
int | GenerateGlobalIds (vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId) |
void | MPITriangulationPreconditioning (ttk::Triangulation *triangulation, vtkDataSet *input) |
virtual int | RequestDataObject (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) |
virtual int | RequestInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTime (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTimeDependentInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateExtent (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestDataNotGenerated (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestData (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
int | FillInputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
int | FillOutputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
![]() | |
int | printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const |
int | welcomeMsg (std::ostream &stream) |
![]() | |
TrackingFromFields () | |
template<typename dataType , typename triangulationType = ttk::AbstractTriangulation> | |
int | performDiagramComputation (int fieldNumber, std::vector< ttk::DiagramType > &persistenceDiagrams, const triangulationType *triangulation) |
int | setInputDataPointer (int idx, void *data) |
int | setNumberOfInputs (int numberOfInputs) |
void | preconditionTriangulation (AbstractTriangulation *triangulation) |
void | setInputScalars (std::vector< void * > &is) |
void | setInputOffsets (std::vector< SimplexId * > &io) |
Additional Inherited Members | |
![]() | |
float | CompactTriangulationCacheSize {0.2f} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
![]() | |
int | numberOfInputs_ {0} |
std::vector< void * > | inputData_ {} |
std::vector< SimplexId * > | inputOffsets_ {} |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK VTK-filter that takes an input time-varying data set (represented by a list of scalar fields) and which computes a tracking mesh.
Input | Input time-dependent scalar field, either 2D or 3D, regular grid or triangulation (vtkDataSet); time steps are obtained by GetPointData()->GetArray(i) in increasing time order. |
Output | Output persistence diagram (vtkUnstructuredGrid) |
This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutput()).
See the related ParaView example state files for usage examples within a VTK pipeline.
Related publication
"Lifted Wasserstein Matcher for Fast and Robust Topology Tracking"
Maxime Soler, Melanie Plainchault, Bruno Conche, Julien Tierny
Proc. of IEEE Symposium on Large Data Analysis and Visualization, 2018
Online examples:
Definition at line 44 of file ttkTrackingFromFields.h.
Definition at line 51 of file ttkTrackingFromFields.h.
|
protected |
Definition at line 12 of file ttkTrackingFromFields.cpp.
|
overrideprotected |
Definition at line 25 of file ttkTrackingFromFields.cpp.
|
overrideprotected |
Definition at line 17 of file ttkTrackingFromFields.cpp.
|
virtual |
Reimplemented from ttkAlgorithm.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Reimplemented from ttkAlgorithm.
|
static |
|
static |
|
overrideprotected |
Definition at line 110 of file ttkTrackingFromFields.cpp.
|
static |
|
virtual |
|
virtual |
Do post-processing.
|
virtual |
Last timestep (-1 to use the last timestep available).
|
virtual |
Importance weight for extrema.
|
virtual |
Threshold for merging/splitting trajectories in connected components array.
|
virtual |
Importance weight for saddles.
|
virtual |
Method for computing matchings.
0: sparse Munkres (Wasserstein), Gabow-Tarjan (Bottleneck)
|
virtual |
Importance weight for the X component of the extremum.
|
virtual |
Importance weight for the Y component of the extremum.
|
virtual |
Importance weight for the Z component of the extremum.
|
virtual |
Temporal sampling (take every N timestep).
|
virtual |
Translation on the Z axis between the output representations of the persistence diagrams.
|
virtual |
First timestep.
|
virtual |
Discard pairs below this threshold (percentage of the function span).
|
virtual |
For the translation of the second set of critical points even the persistence diagrams are embedded in the original domain. This is useful to visualize the matching between the diagrams of two 2D scalar fields.
|
virtual |
Value of the parameter p for the Wp (p-th Wasserstein) distance computation (type "inf" for the Bottleneck distance).