18 #ifndef vtkNetCDFCFReader_h
19 #define vtkNetCDFCFReader_h
21 #include "vtkIONetCDFModule.h"
26 VTK_ABI_NAMESPACE_BEGIN
63 vtkGetMacro(VerticalScale,
double);
64 vtkSetMacro(VerticalScale,
double);
65 vtkGetMacro(VerticalBias,
double);
66 vtkSetMacro(VerticalBias,
double);
77 vtkGetMacro(OutputType,
int);
78 virtual void SetOutputType(
int type);
89 static int CanReadFile(
VTK_FILEPATH const char* filename);
96 void SetTimeDimensionName(
const char*
name);
97 void SetLatitudeDimensionName(
const char*
name);
98 void SetLongitudeDimensionName(
const char*
name);
99 void SetVerticalDimensionName(
const char*
name);
107 const char* GetTimeDimensionName();
108 const char* GetLatitudeDimensionName();
109 const char* GetLongitudeDimensionName();
110 const char* GetVerticalDimensionName();
147 const std::vector<std::string>& dimensionNames);
149 const char*
GetName()
const {
return this->Name.c_str(); }
166 void SetUnitsIfSpecialDimensionOverriden(UnitsEnum unit,
const char*
name);
179 int LoadMetaData(
int ncFD);
183 this->SpecialDimensionOverrideNames[dim] =
name;
185 const char* GetSpecialDimensionName(vtkDimensionInfo::UnitsEnum dim);
187 class vtkDimensionInfoVector;
188 friend class vtkDimensionInfoVector;
208 return this->LongitudeCoordinates;
212 return this->LatitudeCoordinates;
226 int LoadCoordinateVariable(
int ncFD,
int varId,
vtkDoubleArray* coords);
227 int LoadBoundsVariable(
int ncFD,
int varId,
vtkDoubleArray* coords);
228 int LoadUnstructuredBoundsVariable(
int ncFD,
int varId,
vtkDoubleArray* coords);
231 class vtkDependentDimensionInfoVector;
232 friend class vtkDependentDimensionInfoVector;
244 virtual void IdentifySphericalCoordinates(
245 vtkIntArray* dimensions,
int& longitudeDim,
int& latitudeDim,
int& verticalDim);
257 COORDS_SPHERICAL_PSIDED_CELLS
265 CoordinateTypesEnum CoordinateType(
vtkIntArray* dimensions);
277 void ExtentForDimensionsAndPiece(
278 int pieceNumber,
int numberOfPieces,
int ghostLevels,
int extent[6]);
289 void AddRectilinearCoordinates(
vtkImageData* imageOutput);
322 void AddUnstructuredRectilinearCoordinates(
324 void AddUnstructuredSphericalCoordinates(
335 VTK_ABI_NAMESPACE_END
336 #endif // vtkNetCDFCFReader_h
std::vector< std::string > SpecialDimensionOverrideNames
Wrapper around std::string to keep symbols short.
vtkSmartPointer< vtkDoubleArray > Coordinates
vtkSmartPointer< vtkDoubleArray > GetCoordinates()
a dataset that is topologically regular with variable spacing in the three coordinate directions ...
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
vtkSmartPointer< vtkDoubleArray > LatitudeCoordinates
void SetOutputTypeToStructured()
Set/get the data type of the output.
vtkNetCDFAccessor * Accessor
Reads netCDF files that follow the CF convention.
abstract class to specify dataset behavior
std::vector< std::string > SpecialDimensionOverrideNames
vtkDimensionInfoVector * DimensionInfo
vtkSmartPointer< vtkStringArray > SpecialVariables
void SetOutputTypeToUnstructured()
Set/get the data type of the output.
bool GetCellsUnstructured() const
UnitsEnum GetUnits() const
void SetOutputTypeToImage()
Set/get the data type of the output.
virtual int ReadMetaData(int ncFD)
Reads meta data and populates ivars.
A superclass for reading netCDF files.
dynamic, self-adjusting array of double
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
dynamic, self-adjusting array of int
void SetOutputTypeToAutomatic()
Set/get the data type of the output.
static vtkNetCDFReader * New()
virtual void GetUpdateExtentForOutput(vtkDataSet *output, int extent[6])
Retrieves the update extent for the output object.
a simple class to control print indentation
double GetSpacing() const
vtkSmartPointer< vtkDoubleArray > GetLatitudeCoordinates() const
topologically and geometrically regular array of data
dataset represents arbitrary combinations of all possible cell types
vtkSmartPointer< vtkStringArray > GetSpecialVariables() const
virtual int IsTimeDimension(int ncFD, int dimId)
Determines whether the given variable is a time dimension.
vtkSmartPointer< vtkStringArray > SpecialVariables
vtkTypeBool SphericalCoordinates
vtkSmartPointer< vtkDoubleArray > GetBounds()
virtual vtkSmartPointer< vtkDoubleArray > GetTimeValues(int ncFD, int dimId)
Given a dimension already determined to be a time dimension (via a call to IsTimeDimension) returns a...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool GetHasBounds() const
bool GetHasRegularSpacing() const
vtkSmartPointer< vtkDoubleArray > LongitudeCoordinates
vtkDependentDimensionInfo(vtkNetCDFAccessor *accessor)
vtkDependentDimensionInfoVector * DependentDimensionInfo
topologically regular array of data
void SetSpecialDimensionOverrideName(vtkDimensionInfo::UnitsEnum dim, const char *name)
void SetOutputTypeToRectilinear()
Set/get the data type of the output.
vtkSmartPointer< vtkDoubleArray > GetLongitudeCoordinates() const
const char * GetName() const
vtkSmartPointer< vtkDoubleArray > Bounds
vtkSmartPointer< vtkIntArray > GridDimensions
represent and manipulate 3D points
virtual bool DimensionsAreForPointData(vtkIntArray *dimensions)
Called internally to determine whether a variable with the given set of dimensions should be loaded a...
vtkSmartPointer< vtkStringArray > GetSpecialVariables() const
vtkSmartPointer< vtkIntArray > GetGridDimensions() const