VTK  9.1.0
vtkStatisticsAlgorithm.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkStatisticsAlgorithm.h
5 
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2011 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19  -------------------------------------------------------------------------*/
75 #ifndef vtkStatisticsAlgorithm_h
76 #define vtkStatisticsAlgorithm_h
77 
78 #include "vtkFiltersStatisticsModule.h" // For export macro
79 #include "vtkTableAlgorithm.h"
80 
83 class vtkStdString;
84 class vtkStringArray;
85 class vtkVariant;
86 class vtkVariantArray;
87 class vtkDoubleArray;
89 
90 class VTKFILTERSSTATISTICS_EXPORT vtkStatisticsAlgorithm : public vtkTableAlgorithm
91 {
92 public:
94  void PrintSelf(ostream& os, vtkIndent indent) override;
95 
100  {
101  INPUT_DATA = 0,
102  LEARN_PARAMETERS = 1,
103  INPUT_MODEL = 2
104  };
105 
110  {
111  OUTPUT_DATA = 0,
112  OUTPUT_MODEL = 1,
113  OUTPUT_TEST = 2
114  };
115 
121  {
123  }
124 
130  {
132  }
133 
139  {
141  }
142 
147  virtual void SetInputModel(vtkDataObject* model)
148  {
150  }
151 
153 
156  vtkSetMacro(LearnOption, bool);
157  vtkGetMacro(LearnOption, bool);
159 
161 
164  vtkSetMacro(DeriveOption, bool);
165  vtkGetMacro(DeriveOption, bool);
167 
169 
172  vtkSetMacro(AssessOption, bool);
173  vtkGetMacro(AssessOption, bool);
175 
177 
180  vtkSetMacro(TestOption, bool);
181  vtkGetMacro(TestOption, bool);
183 
185 
188  vtkSetMacro(NumberOfPrimaryTables, vtkIdType);
189  vtkGetMacro(NumberOfPrimaryTables, vtkIdType);
191 
193 
197  vtkGetObjectMacro(AssessNames, vtkStringArray);
199 
201 
205  {
206  public:
207  virtual void operator()(vtkDoubleArray*, vtkIdType) = 0;
208  virtual ~AssessFunctor() = default;
209  };
211 
225  virtual void SetColumnStatus(const char* namCol, int status);
226 
230  virtual void ResetAllColumnStates();
231 
236  virtual int RequestSelectedColumns();
237 
241  virtual void ResetRequests();
242 
251 
256 
270  virtual const char* GetColumnForRequest(vtkIdType r, vtkIdType c);
271 
272  virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString& columnName);
273 
281  void AddColumn(const char* namCol);
282 
293  void AddColumnPair(const char* namColX, const char* namColY);
294 
302  virtual bool SetParameter(const char* parameter, int index, vtkVariant value);
303 
308 
309 protected:
312 
315 
317 
321  virtual void Learn(vtkTable*, vtkTable*, vtkMultiBlockDataSet*) = 0;
322 
326  virtual void Derive(vtkMultiBlockDataSet*) = 0;
327 
332 
337 
341  virtual void Test(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
342 
346  virtual void SelectAssessFunctor(
347  vtkTable* outData, vtkDataObject* inMeta, vtkStringArray* rowNames, AssessFunctor*& dfunc) = 0;
348 
356 
357 private:
359  void operator=(const vtkStatisticsAlgorithm&) = delete;
360 };
361 
362 #endif
vtkStatisticsAlgorithm::SetInputModel
virtual void SetInputModel(vtkDataObject *model)
A convenience method for setting the input model (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:147
vtkStatisticsAlgorithm::SetLearnOptionParameters
virtual void SetLearnOptionParameters(vtkDataObject *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:129
vtkX3D::value
@ value
Definition: vtkX3D.h:226
vtkStatisticsAlgorithmPrivate
Definition: vtkStatisticsAlgorithmPrivate.h:44
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkDataObjectCollection
maintain an unordered list of data objects
Definition: vtkDataObjectCollection.h:32
vtkStatisticsAlgorithm::vtkStatisticsAlgorithm
vtkStatisticsAlgorithm()
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:145
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:172
vtkStatisticsAlgorithm::AssessFunctor::operator()
virtual void operator()(vtkDoubleArray *, vtkIdType)=0
vtkStatisticsAlgorithm::TestOption
bool TestOption
Definition: vtkStatisticsAlgorithm.h:353
vtkStatisticsAlgorithm::ResetRequests
virtual void ResetRequests()
Empty the list of current requests.
vtkVariantArray
An array holding vtkVariants.
Definition: vtkVariantArray.h:119
vtkStatisticsAlgorithm::SetInputModelConnection
virtual void SetInputModelConnection(vtkAlgorithmOutput *model)
A convenience method for setting the input model connection (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:138
vtkStatisticsAlgorithm::RequestSelectedColumns
virtual int RequestSelectedColumns()
Use the current column status values to produce a new request for statistics to be produced when Requ...
vtkStatisticsAlgorithm::AssessFunctor
A base class for a functor that assesses data.
Definition: vtkStatisticsAlgorithm.h:205
vtkMultiBlockDataSet
Composite dataset that organizes datasets into blocks.
Definition: vtkMultiBlockDataSet.h:155
vtkStatisticsAlgorithm::GetColumnForRequest
virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString &columnName)
vtkStatisticsAlgorithm::LEARN_PARAMETERS
@ LEARN_PARAMETERS
Port 1 is for learn parameters (initial guesses, etc.)
Definition: vtkStatisticsAlgorithm.h:102
vtkStatisticsAlgorithm::LearnOption
bool LearnOption
Definition: vtkStatisticsAlgorithm.h:350
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkStatisticsAlgorithm::INPUT_MODEL
@ INPUT_MODEL
Port 2 is for a priori models.
Definition: vtkStatisticsAlgorithm.h:103
vtkTableAlgorithm
Superclass for algorithms that produce only vtkTables as output.
Definition: vtkTableAlgorithm.h:49
vtkStatisticsAlgorithm::AssessOption
bool AssessOption
Definition: vtkStatisticsAlgorithm.h:352
vtkStatisticsAlgorithm::FillOutputPortInformation
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
vtkStatisticsAlgorithm::AssessFunctor::~AssessFunctor
virtual ~AssessFunctor()=default
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkStatisticsAlgorithm::AddColumnPair
void AddColumnPair(const char *namColX, const char *namColY)
Convenience method to create a request with a single column name pair (namColX, namColY) in a single ...
vtkVariant
A atomic type representing the union of many types.
Definition: vtkVariant.h:155
vtkTableAlgorithm::SetInputData
void SetInputData(vtkDataObject *obj)
Assign a data object as input.
Definition: vtkTableAlgorithm.h:72
vtkStatisticsAlgorithm::Learn
virtual void Learn(vtkTable *, vtkTable *, vtkMultiBlockDataSet *)=0
Execute the calculations required by the Learn option, given some input Data.
vtkStatisticsAlgorithm::GetColumnForRequest
virtual const char * GetColumnForRequest(vtkIdType r, vtkIdType c)
Provide the name of the c-th column for the r-th request.
vtkStatisticsAlgorithm::ResetAllColumnStates
virtual void ResetAllColumnStates()
Set the status of each and every column in the current request to OFF (0).
vtkStatisticsAlgorithm::AssessNames
vtkStringArray * AssessNames
Definition: vtkStatisticsAlgorithm.h:354
vtkStatisticsAlgorithm::Aggregate
virtual void Aggregate(vtkDataObjectCollection *, vtkMultiBlockDataSet *)=0
Given a collection of models, calculate aggregate model.
vtkStatisticsAlgorithm::AddColumn
void AddColumn(const char *namCol)
Convenience method to create a request with a single column name namCol in a single call; this is the...
vtkStatisticsAlgorithm::GetNumberOfColumnsForRequest
virtual vtkIdType GetNumberOfColumnsForRequest(vtkIdType request)
Return the number of columns for a given request.
vtkStatisticsAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkStatisticsAlgorithm::Assess
void Assess(vtkTable *, vtkMultiBlockDataSet *, vtkTable *, int)
A convenience implementation for generic assessment with variable number of variables.
vtkAlgorithm::SetInputConnection
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkStatisticsAlgorithm::SetParameter
virtual bool SetParameter(const char *parameter, int index, vtkVariant value)
A convenience method (in particular for access from other applications) to set parameter values of Le...
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkStatisticsAlgorithm::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkStatisticsAlgorithm::Internals
vtkStatisticsAlgorithmPrivate * Internals
Definition: vtkStatisticsAlgorithm.h:355
vtkStatisticsAlgorithm::Assess
virtual void Assess(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)=0
Execute the calculations required by the Assess option.
vtkStatisticsAlgorithm::SelectAssessFunctor
virtual void SelectAssessFunctor(vtkTable *outData, vtkDataObject *inMeta, vtkStringArray *rowNames, AssessFunctor *&dfunc)=0
A pure virtual method to select the appropriate assessment functor.
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:66
vtkStatisticsAlgorithm::Derive
virtual void Derive(vtkMultiBlockDataSet *)=0
Execute the calculations required by the Derive option.
vtkStatisticsAlgorithm::NumberOfPrimaryTables
vtkIdType NumberOfPrimaryTables
Definition: vtkStatisticsAlgorithm.h:349
vtkStatisticsAlgorithm::SetColumnStatus
virtual void SetColumnStatus(const char *namCol, int status)
Add or remove a column from the current analysis request.
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:146
vtkStatisticsAlgorithm::SetLearnOptionParameterConnection
virtual void SetLearnOptionParameterConnection(vtkAlgorithmOutput *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
Definition: vtkStatisticsAlgorithm.h:120
vtkTableAlgorithm.h
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:145
vtkStatisticsAlgorithm::InputPorts
InputPorts
enumeration values to specify input port types
Definition: vtkStatisticsAlgorithm.h:100
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:105
vtkStatisticsAlgorithm
Base class for statistics algorithms.
Definition: vtkStatisticsAlgorithm.h:91
vtkStatisticsAlgorithm::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkStatisticsAlgorithm::~vtkStatisticsAlgorithm
~vtkStatisticsAlgorithm() override
vtkX3D::parameter
@ parameter
Definition: vtkX3D.h:449
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:169
vtkStatisticsAlgorithm::Test
virtual void Test(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)=0
Execute the calculations required by the Test option.
vtkStatisticsAlgorithm::DeriveOption
bool DeriveOption
Definition: vtkStatisticsAlgorithm.h:351
vtkStatisticsAlgorithm::SetAssessNames
virtual void SetAssessNames(vtkStringArray *)
Set/get assessment names.
vtkX3D::index
@ index
Definition: vtkX3D.h:252
vtkStatisticsAlgorithm::OutputIndices
OutputIndices
enumeration values to specify output port types
Definition: vtkStatisticsAlgorithm.h:110
vtkStatisticsAlgorithm::GetNumberOfRequests
virtual vtkIdType GetNumberOfRequests()
Return the number of requests.