VTK  9.2.5
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  -------------------------------------------------------------------------*/
78 #ifndef vtkStatisticsAlgorithm_h
79 #define vtkStatisticsAlgorithm_h
80 
81 #include "vtkFiltersStatisticsModule.h" // For export macro
82 #include "vtkTableAlgorithm.h"
83 
86 class vtkStdString;
87 class vtkStringArray;
88 class vtkVariant;
89 class vtkVariantArray;
90 class vtkDoubleArray;
92 
93 class VTKFILTERSSTATISTICS_EXPORT vtkStatisticsAlgorithm : public vtkTableAlgorithm
94 {
95 public:
97  void PrintSelf(ostream& os, vtkIndent indent) override;
98 
103  {
104  INPUT_DATA = 0,
105  LEARN_PARAMETERS = 1,
106  INPUT_MODEL = 2
107  };
108 
113  {
114  OUTPUT_DATA = 0,
115  OUTPUT_MODEL = 1,
116  OUTPUT_TEST = 2
117  };
118 
124  {
126  }
127 
133  {
135  }
136 
142  {
144  }
145 
150  virtual void SetInputModel(vtkDataObject* model)
151  {
153  }
154 
156 
159  vtkSetMacro(LearnOption, bool);
160  vtkGetMacro(LearnOption, bool);
162 
164 
167  vtkSetMacro(DeriveOption, bool);
168  vtkGetMacro(DeriveOption, bool);
170 
172 
175  vtkSetMacro(AssessOption, bool);
176  vtkGetMacro(AssessOption, bool);
178 
180 
183  vtkSetMacro(TestOption, bool);
184  vtkGetMacro(TestOption, bool);
186 
188 
191  vtkSetMacro(NumberOfPrimaryTables, vtkIdType);
192  vtkGetMacro(NumberOfPrimaryTables, vtkIdType);
194 
196 
200  vtkGetObjectMacro(AssessNames, vtkStringArray);
202 
204 
208  {
209  public:
210  virtual void operator()(vtkDoubleArray*, vtkIdType) = 0;
211  virtual ~AssessFunctor() = default;
212  };
214 
228  virtual void SetColumnStatus(const char* namCol, int status);
229 
233  virtual void ResetAllColumnStates();
234 
239  virtual int RequestSelectedColumns();
240 
244  virtual void ResetRequests();
245 
254 
259 
273  virtual const char* GetColumnForRequest(vtkIdType r, vtkIdType c);
274 
275  virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString& columnName);
276 
284  void AddColumn(const char* namCol);
285 
296  void AddColumnPair(const char* namColX, const char* namColY);
297 
305  virtual bool SetParameter(const char* parameter, int index, vtkVariant value);
306 
311 
312 protected:
315 
318 
320 
324  virtual void Learn(vtkTable*, vtkTable*, vtkMultiBlockDataSet*) = 0;
325 
329  virtual void Derive(vtkMultiBlockDataSet*) = 0;
330 
335 
340 
344  virtual void Test(vtkTable*, vtkMultiBlockDataSet*, vtkTable*) = 0;
345 
349  virtual void SelectAssessFunctor(
350  vtkTable* outData, vtkDataObject* inMeta, vtkStringArray* rowNames, AssessFunctor*& dfunc) = 0;
351 
359 
360 private:
362  void operator=(const vtkStatisticsAlgorithm&) = delete;
363 };
364 
365 #endif
Proxy object to connect input/output ports.
virtual void SetInputConnection(int port, vtkAlgorithmOutput *input)
Set the connection for the given input port index.
maintain an unordered list of data objects
general representation of visualization data
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition: vtkIndent.h:119
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Composite dataset that organizes datasets into blocks.
A base class for a functor that assesses data.
virtual void operator()(vtkDoubleArray *, vtkIdType)=0
Base class for statistics algorithms.
virtual void Assess(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)=0
Execute the calculations required by the Assess option.
virtual void SetAssessNames(vtkStringArray *)
Set/get assessment names.
virtual void SetColumnStatus(const char *namCol, int status)
Add or remove a column from the current analysis request.
virtual int GetColumnForRequest(vtkIdType r, vtkIdType c, vtkStdString &columnName)
~vtkStatisticsAlgorithm() override
virtual void ResetAllColumnStates()
Set the status of each and every column in the current request to OFF (0).
virtual void SetInputModelConnection(vtkAlgorithmOutput *model)
A convenience method for setting the input model connection (if one is expected or allowed).
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
OutputIndices
enumeration values to specify output port types
virtual void ResetRequests()
Empty the list of current requests.
virtual void SelectAssessFunctor(vtkTable *outData, vtkDataObject *inMeta, vtkStringArray *rowNames, AssessFunctor *&dfunc)=0
A pure virtual method to select the appropriate assessment functor.
virtual vtkIdType GetNumberOfRequests()
Return the number of requests.
virtual void Aggregate(vtkDataObjectCollection *, vtkMultiBlockDataSet *)=0
Given a collection of models, calculate aggregate model.
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 ...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual const char * GetColumnForRequest(vtkIdType r, vtkIdType c)
Provide the name of the c-th column for the r-th request.
virtual void Derive(vtkMultiBlockDataSet *)=0
Execute the calculations required by the Derive option.
virtual void SetLearnOptionParameterConnection(vtkAlgorithmOutput *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
virtual void SetInputModel(vtkDataObject *model)
A convenience method for setting the input model (if one is expected or allowed).
vtkStatisticsAlgorithmPrivate * Internals
void AddColumn(const char *namCol)
Convenience method to create a request with a single column name namCol in a single call; this is the...
void Assess(vtkTable *, vtkMultiBlockDataSet *, vtkTable *, int)
A convenience implementation for generic assessment with variable number of variables.
virtual int RequestSelectedColumns()
Use the current column status values to produce a new request for statistics to be produced when Requ...
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
virtual vtkIdType GetNumberOfColumnsForRequest(vtkIdType request)
Return the number of columns for a given request.
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...
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
virtual void Learn(vtkTable *, vtkTable *, vtkMultiBlockDataSet *)=0
Execute the calculations required by the Learn option, given some input Data.
virtual void SetLearnOptionParameters(vtkDataObject *params)
A convenience method for setting learn input parameters (if one is expected or allowed).
InputPorts
enumeration values to specify input port types
@ LEARN_PARAMETERS
Port 1 is for learn parameters (initial guesses, etc.)
@ INPUT_MODEL
Port 2 is for a priori models.
virtual void Test(vtkTable *, vtkMultiBlockDataSet *, vtkTable *)=0
Execute the calculations required by the Test option.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:108
a vtkAbstractArray subclass for strings
Superclass for algorithms that produce only vtkTables as output.
void SetInputData(vtkDataObject *obj)
Assign a data object as input.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:183
An array holding vtkVariants.
A atomic type representing the union of many types.
Definition: vtkVariant.h:159
@ info
Definition: vtkX3D.h:382
@ value
Definition: vtkX3D.h:226
@ port
Definition: vtkX3D.h:453
@ parameter
Definition: vtkX3D.h:449
@ index
Definition: vtkX3D.h:252
int vtkIdType
Definition: vtkType.h:332