36 #ifndef vtkNetCDFCFReader_h
37 #define vtkNetCDFCFReader_h
39 #include "vtkIONetCDFModule.h"
63 vtkGetMacro(SphericalCoordinates,
int);
80 vtkGetMacro(VerticalScale,
double);
82 vtkGetMacro(VerticalBias,
double);
94 vtkGetMacro(OutputType,
int);
146 const char *
GetName()
const {
return this->Name.c_str(); }
161 return this->SpecialVariables;
174 class vtkDimensionInfoVector;
175 friend class vtkDimensionInfoVector;
187 return this->GridDimensions;
190 return this->LongitudeCoordinates;
193 return this->LatitudeCoordinates;
196 return this->SpecialVariables;
213 class vtkDependentDimensionInfoVector;
214 friend class vtkDependentDimensionInfoVector;
240 COORDS_SPHERICAL_PSIDED_CELLS
abstract class to specify dataset behavior
dynamic, self-adjusting array of double
topologically and geometrically regular array of data
a simple class to control print indentation
dynamic, self-adjusting array of int
vtkSmartPointer< vtkDoubleArray > GetLatitudeCoordinates() const
vtkDependentDimensionInfo()
bool GetCellsUnstructured() const
vtkSmartPointer< vtkStringArray > GetSpecialVariables() const
vtkSmartPointer< vtkIntArray > GridDimensions
int LoadUnstructuredBoundsVariable(int ncFD, int varId, vtkDoubleArray *coords)
vtkSmartPointer< vtkDoubleArray > LongitudeCoordinates
vtkDependentDimensionInfo(int ncFD, int varId, vtkNetCDFCFReader *parent)
vtkSmartPointer< vtkStringArray > SpecialVariables
bool GetHasBounds() const
int LoadMetaData(int ncFD, int varId, vtkNetCDFCFReader *parent)
vtkSmartPointer< vtkDoubleArray > LatitudeCoordinates
vtkSmartPointer< vtkDoubleArray > GetLongitudeCoordinates() const
int LoadCoordinateVariable(int ncFD, int varId, vtkDoubleArray *coords)
int LoadBoundsVariable(int ncFD, int varId, vtkDoubleArray *coords)
vtkSmartPointer< vtkIntArray > GetGridDimensions() const
vtkDimensionInfo(int ncFD, int id)
double GetSpacing() const
vtkSmartPointer< vtkDoubleArray > Bounds
const char * GetName() const
vtkSmartPointer< vtkStringArray > SpecialVariables
UnitsEnum GetUnits() const
vtkSmartPointer< vtkDoubleArray > Coordinates
vtkSmartPointer< vtkDoubleArray > GetCoordinates()
vtkSmartPointer< vtkDoubleArray > GetBounds()
int LoadMetaData(int ncFD)
vtkSmartPointer< vtkStringArray > GetSpecialVariables() const
bool GetHasRegularSpacing() const
Reads netCDF files that follow the CF convention.
void Add1DSphericalCoordinates(vtkPoints *points, const int extent[6])
Internal methods for setting spherical coordinates.
void SetOutputTypeToUnstructured()
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
virtual void SetOutputType(int type)
vtkDimensionInfoVector * DimensionInfo
void SetOutputTypeToImage()
void AddUnstructuredSphericalCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
void FakeStructuredCoordinates(vtkStructuredGrid *structuredOutput)
static vtkNetCDFCFReader * New()
void Add2DSphericalCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
void Add1DSphericalCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
static int CanReadFile(const char *filename)
Returns true if the given file can be read.
void Add2DSphericalCoordinates(vtkStructuredGrid *structuredOutput)
void Add1DRectilinearCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
void SetOutputTypeToRectilinear()
virtual int IsTimeDimension(int ncFD, int dimId)
Determines whether the given variable is a time dimension.
CoordinateTypesEnum CoordinateType(vtkIntArray *dimensions)
Based on the given dimensions and the current state of the reader, returns how the coordinates should...
void AddRectilinearCoordinates(vtkImageData *imageOutput)
Internal methods for setting rectilinear coordinates.
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...
vtkDependentDimensionInfo * FindDependentDimensionInfo(vtkIntArray *dims)
void Add1DRectilinearCoordinates(vtkStructuredGrid *structuredOutput)
void SetOutputTypeToStructured()
virtual bool DimensionsAreForPointData(vtkIntArray *dimensions)
Returns false for spherical dimensions, which should use cell data.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void Add1DSphericalCoordinates(vtkStructuredGrid *structuredOutput)
void SetOutputTypeToAutomatic()
void Add2DRectilinearCoordinates(vtkStructuredGrid *structuredOutput)
void Add2DSphericalCoordinates(vtkPoints *points, const int extent[6])
void AddRectilinearCoordinates(vtkRectilinearGrid *rectilinearOutput)
void Add2DRectilinearCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
virtual void GetUpdateExtentForOutput(vtkDataSet *output, int extent[6])
Overridden to retrieve stored extent for unstructured data.
void FakeRectilinearCoordinates(vtkRectilinearGrid *rectilinearOutput)
void Add2DRectilinearCoordinates(vtkPoints *points, const int extent[6])
void ExtentForDimensionsAndPiece(int pieceNumber, int numberOfPieces, int ghostLevels, int extent[6])
Convenience function that takes piece information and then returns a set of extents to load based on ...
void Add1DRectilinearCoordinates(vtkPoints *points, const int extent[6])
@ COORDS_EUCLIDEAN_4SIDED_CELLS
@ COORDS_REGULAR_SPHERICAL
@ COORDS_SPHERICAL_4SIDED_CELLS
@ COORDS_NONUNIFORM_RECTILINEAR
@ COORDS_EUCLIDEAN_PSIDED_CELLS
@ COORDS_UNIFORM_RECTILINEAR
void AddStructuredCells(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal method for building unstructred cells that match structured cells.
vtkDimensionInfo * GetDimensionInfo(int dimension)
virtual int ReadMetaData(int ncFD)
Interprets the special conventions of COARDS.
void AddUnstructuredRectilinearCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for creating unstructured cells.
vtkDependentDimensionInfoVector * DependentDimensionInfo
virtual void IdentifySphericalCoordinates(vtkIntArray *dimensions, int &longitudeDim, int &latitudeDim, int &verticalDim)
Given the list of dimensions, identify the longitude, latitude, and vertical dimensions.
A superclass for reading netCDF files.
represent and manipulate 3D points
a dataset that is topologically regular with variable spacing in the three coordinate directions
Wrapper around std::string to keep symbols short.
topologically regular array of data
dataset represents arbitrary combinations of all possible cell types
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
#define VTK_RECTILINEAR_GRID
#define VTK_UNSTRUCTURED_GRID
#define VTK_STRUCTURED_GRID