VTK
vtkNetCDFReader.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 /*=========================================================================
3 
4  Program: Visualization Toolkit
5  Module: vtkNetCDFReader.h
6 
7  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
16 
17 /*-------------------------------------------------------------------------
18  Copyright 2008 Sandia Corporation.
19  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
20  the U.S. Government retains certain rights in this software.
21 -------------------------------------------------------------------------*/
22 
33 #ifndef vtkNetCDFReader_h
34 #define vtkNetCDFReader_h
35 
36 #include "vtkIONetCDFModule.h" // For export macro
37 #include "vtkDataObjectAlgorithm.h"
38 
39 #include "vtkSmartPointer.h" // For ivars
40 #include <string> //For std::string
41 
43 class vtkDataSet;
44 class vtkDoubleArray;
45 class vtkIntArray;
46 class vtkStdString;
47 class vtkStringArray;
48 class vtkNetCDFReaderPrivate;
49 
51 {
52 public:
54  static vtkNetCDFReader *New();
55  virtual void PrintSelf(ostream &os, vtkIndent indent);
56 
57  virtual void SetFileName(const char *filename);
58  vtkGetStringMacro(FileName);
59 
63 
64 // // Description:
65 // // Get the data array selection tables used to configure which variables to
66 // // load.
67 // vtkGetObjectMacro(VariableArraySelection, vtkDataArraySelection);
68 
70 
72  virtual const char *GetVariableArrayName(int idx);
73  virtual int GetVariableArrayStatus(const char *name);
74  virtual void SetVariableArrayStatus(const char *name, int status);
76 
82 
84 
89  vtkGetObjectMacro(VariableDimensions, vtkStringArray);
91 
98  virtual void SetDimensions(const char *dimensions);
99 
101 
108 
110 
118  vtkGetMacro(ReplaceFillValueWithNan, int);
119  vtkSetMacro(ReplaceFillValueWithNan, int);
120  vtkBooleanMacro(ReplaceFillValueWithNan, int);
122 
124 
127  vtkGetStringMacro(TimeUnits);
128  vtkGetStringMacro(Calendar);
130 
132  std::string QueryArrayUnits(const char *ArrayName);
133 
134 protected:
137 
138  char *FileName;
141 
142 //BTX
145 
147 
149 
152 
154 
156 //ETX
158 
160 
161  int WholeExtent[6];
162 
163  virtual int RequestDataObject(vtkInformation *request,
164  vtkInformationVector **inputVector,
165  vtkInformationVector *outputVector);
166 
167  virtual int RequestInformation(vtkInformation *request,
168  vtkInformationVector **inputVector,
169  vtkInformationVector *outputVector);
170 
171  virtual int RequestData(vtkInformation *request,
172  vtkInformationVector **inputVector,
173  vtkInformationVector *outputVector);
174 
176 
177  static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid,
178  void *clientdata, void *calldata);
180 
183  vtkStdString DescribeDimensions(int ncFD, const int *dimIds, int numDims);
184 
187  virtual int ReadMetaData(int ncFD);
188 
190  virtual int FillVariableDimensions(int ncFD);
191 
197  virtual int IsTimeDimension(int ncFD, int dimId);
198 
199 //BTX
201 
207  virtual vtkSmartPointer<vtkDoubleArray> GetTimeValues(int ncFD, int dimId);
208 //ETX
210 
212 
217  virtual bool DimensionsAreForPointData(vtkIntArray *vtkNotUsed(dimensions)) {
218  return true;
219  }
221 
226  virtual void GetUpdateExtentForOutput(vtkDataSet *output, int extent[6]);
227 
229 
231  virtual int LoadVariable(int ncFD, const char *varName, double time,
232  vtkDataSet *output);
234 
235 private:
236  vtkNetCDFReader(const vtkNetCDFReader &); // Not implemented
237  void operator=(const vtkNetCDFReader &); // Not implemented
238 
239  int UpdateExtent[6];
240  char *TimeUnits;
241  char *Calendar;
242  vtkNetCDFReaderPrivate *Private;
243 };
244 
245 #endif //vtkNetCDFReader_h
vtkNetCDFReader::GetVariableArrayName
virtual const char * GetVariableArrayName(int idx)
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkNetCDFReader::LoadingDimensions
vtkSmartPointer< vtkIntArray > LoadingDimensions
Definition: vtkNetCDFReader.h:144
vtkNetCDFReader::LoadVariable
virtual int LoadVariable(int ncFD, const char *varName, double time, vtkDataSet *output)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkNetCDFReader
Definition: vtkNetCDFReader.h:51
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkDataObjectAlgorithm
Superclass for algorithms that produce only data object as output.
Definition: vtkDataObjectAlgorithm.h:43
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkNetCDFReader::FileName
char * FileName
Definition: vtkNetCDFReader.h:138
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkSmartPointer< vtkIntArray >
vtkNetCDFReader::GetVariableArrayStatus
virtual int GetVariableArrayStatus(const char *name)
vtkNetCDFReader::AllVariableArrayNames
vtkSmartPointer< vtkStringArray > AllVariableArrayNames
Definition: vtkNetCDFReader.h:148
vtkNetCDFReader::GetNumberOfVariableArrays
virtual int GetNumberOfVariableArrays()
vtkX3D::time
@ time
Definition: vtkX3D.h:497
vtkNetCDFReader::New
static vtkNetCDFReader * New()
vtkNetCDFReader::SelectionModifiedCallback
static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid, void *clientdata, void *calldata)
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:34
vtkNetCDFReader::DescribeDimensions
vtkStdString DescribeDimensions(int ncFD, const int *dimIds, int numDims)
vtkNetCDFReader::FileNameMTime
vtkTimeStamp FileNameMTime
Definition: vtkNetCDFReader.h:139
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkNetCDFReader::~vtkNetCDFReader
~vtkNetCDFReader()
vtkNotUsed
#define vtkNotUsed(x)
Definition: vtkSetGet.h:557
vtkNetCDFReader::ReplaceFillValueWithNan
int ReplaceFillValueWithNan
Definition: vtkNetCDFReader.h:159
vtkNetCDFReader::GetAllVariableArrayNames
virtual vtkStringArray * GetAllVariableArrayNames()
vtkNetCDFReader::SetFileName
virtual void SetFileName(const char *filename)
vtkNetCDFReader::SetDimensions
virtual void SetDimensions(const char *dimensions)
vtkNetCDFReader::RequestDataObject
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkNetCDFReader::vtkNetCDFReader
vtkNetCDFReader()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:53
vtkNetCDFReader::GetTimeValues
virtual vtkSmartPointer< vtkDoubleArray > GetTimeValues(int ncFD, int dimId)
vtkSmartPointer.h
vtkNetCDFReader::VariableArraySelection
vtkSmartPointer< vtkDataArraySelection > VariableArraySelection
Definition: vtkNetCDFReader.h:146
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkNetCDFReader::IsTimeDimension
virtual int IsTimeDimension(int ncFD, int dimId)
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkNetCDFReader::MetaDataMTime
vtkTimeStamp MetaDataMTime
Definition: vtkNetCDFReader.h:140
vtkNetCDFReader::AllDimensions
vtkStringArray * AllDimensions
Definition: vtkNetCDFReader.h:155
vtkNetCDFReader::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
VTKIONETCDF_EXPORT
#define VTKIONETCDF_EXPORT
Definition: vtkIONetCDFModule.h:15
vtkNetCDFReader::GetUpdateExtentForOutput
virtual void GetUpdateExtentForOutput(vtkDataSet *output, int extent[6])
vtkNetCDFReader::VariableDimensions
vtkStringArray * VariableDimensions
Definition: vtkNetCDFReader.h:151
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:45
vtkNetCDFReader::ReadMetaData
virtual int ReadMetaData(int ncFD)
vtkNetCDFReader::DimensionsAreForPointData
virtual bool DimensionsAreForPointData(vtkIntArray *vtkNotUsed(dimensions))
Definition: vtkNetCDFReader.h:217
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkX3D::extent
@ extent
Definition: vtkX3D.h:345
vtkDataObjectAlgorithm.h
vtkIONetCDFModule.h
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:48
vtkNetCDFReader::QueryArrayUnits
std::string QueryArrayUnits(const char *ArrayName)
vtkNetCDFReader::RequestInformation
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkNetCDFReader::FillVariableDimensions
virtual int FillVariableDimensions(int ncFD)
vtkgl::string
GLsizei const GLchar ** string
Definition: vtkgl.h:12011
vtkNetCDFReader::SetVariableArrayStatus
virtual void SetVariableArrayStatus(const char *name, int status)
vtkNetCDFReader::UpdateMetaData
int UpdateMetaData()
vtkNetCDFReader::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)