18#ifndef vtkNetCDFCFReader_h 
   19#define vtkNetCDFCFReader_h 
   21#include "vtkIONetCDFModule.h"  
   26VTK_ABI_NAMESPACE_BEGIN
 
   63  vtkGetMacro(VerticalScale, 
double);
 
   64  vtkSetMacro(VerticalScale, 
double);
 
   65  vtkGetMacro(VerticalBias, 
double);
 
   66  vtkSetMacro(VerticalBias, 
double);
 
   77  vtkGetMacro(OutputType, 
int);
 
  147      const std::vector<std::string>& dimensionNames);
 
  149    const char* 
GetName()
 const { 
return this->Name.c_str(); }
 
  183    this->SpecialDimensionOverrideNames[dim] = name;
 
  187  class vtkDimensionInfoVector;
 
  188  friend class vtkDimensionInfoVector;
 
  208      return this->LongitudeCoordinates;
 
  212      return this->LatitudeCoordinates;
 
  231  class vtkDependentDimensionInfoVector;
 
  232  friend class vtkDependentDimensionInfoVector;
 
  245    vtkIntArray* dimensions, 
int& longitudeDim, 
int& latitudeDim, 
int& verticalDim);
 
  257    COORDS_SPHERICAL_PSIDED_CELLS
 
  278    int pieceNumber, 
int numberOfPieces, 
int ghostLevels, 
int extent[6]);
 
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
 
vtkNetCDFAccessor * Accessor
 
vtkSmartPointer< vtkDoubleArray > GetLatitudeCoordinates() const
 
bool GetCellsUnstructured() const
 
vtkSmartPointer< vtkIntArray > GridDimensions
 
int LoadUnstructuredBoundsVariable(int ncFD, int varId, vtkDoubleArray *coords)
 
vtkSmartPointer< vtkStringArray > GetSpecialVariables() const
 
vtkSmartPointer< vtkDoubleArray > LongitudeCoordinates
 
vtkDependentDimensionInfo(vtkNetCDFAccessor *accessor)
 
vtkSmartPointer< vtkStringArray > SpecialVariables
 
bool GetHasBounds() const
 
int LoadMetaData(int ncFD, int varId, vtkNetCDFCFReader *parent)
 
vtkSmartPointer< vtkDoubleArray > LatitudeCoordinates
 
int LoadCoordinateVariable(int ncFD, int varId, vtkDoubleArray *coords)
 
vtkSmartPointer< vtkDoubleArray > GetLongitudeCoordinates() const
 
vtkSmartPointer< vtkIntArray > GetGridDimensions() const
 
int LoadBoundsVariable(int ncFD, int varId, vtkDoubleArray *coords)
 
vtkDependentDimensionInfo(vtkNetCDFAccessor *accessor, int ncFD, int varId, vtkNetCDFCFReader *parent)
 
vtkDimensionInfo(vtkNetCDFAccessor *accessor, int ncFD, int id, const std::vector< std::string > &dimensionNames)
 
vtkSmartPointer< vtkDoubleArray > GetCoordinates()
 
std::vector< std::string > SpecialDimensionOverrideNames
 
double GetSpacing() const
 
vtkSmartPointer< vtkDoubleArray > Bounds
 
vtkSmartPointer< vtkDoubleArray > GetBounds()
 
vtkSmartPointer< vtkStringArray > SpecialVariables
 
UnitsEnum GetUnits() const
 
vtkDimensionInfo()=default
 
vtkSmartPointer< vtkDoubleArray > Coordinates
 
vtkSmartPointer< vtkStringArray > GetSpecialVariables() const
 
int LoadMetaData(int ncFD)
 
void SetUnitsIfSpecialDimensionOverriden(UnitsEnum unit, const char *name)
 
bool GetHasRegularSpacing() const
 
const char * GetName() const
 
Reads netCDF files that follow the CF convention.
 
const char * GetVerticalDimensionName()
Names for Time, Latitude, Longitude and Vertical.
 
void Add1DSphericalCoordinates(vtkPoints *points, const int extent[6])
Internal methods for setting spherical coordinates.
 
void SetOutputTypeToUnstructured()
Set/get the data type of the output.
 
vtkDependentDimensionInfo * FindDependentDimensionInfo(vtkIntArray *dims)
 
virtual void SetOutputType(int type)
Set/get the data type of the output.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
 
vtkDimensionInfoVector * DimensionInfo
 
void SetOutputTypeToImage()
Set/get the data type of the output.
 
const char * GetLatitudeDimensionName()
Names for Time, Latitude, Longitude and Vertical.
 
void SetLatitudeDimensionName(const char *name)
Names for Time, Latitude, Longitude and Vertical which can be set by the user for datasets that don't...
 
void AddUnstructuredSphericalCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for creating unstructured cells.
 
void FakeStructuredCoordinates(vtkStructuredGrid *structuredOutput)
Internal methods for setting rectilinear coordinates.
 
void Add2DSphericalCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for setting spherical coordinates.
 
void Add1DSphericalCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for setting spherical coordinates.
 
~vtkNetCDFCFReader() override
 
const char * GetSpecialDimensionName(vtkDimensionInfo::UnitsEnum dim)
 
static int CanReadFile(const char *filename)
Returns true if the given file can be read.
 
void Add2DSphericalCoordinates(vtkStructuredGrid *structuredOutput)
Internal methods for setting spherical coordinates.
 
void SetSpecialDimensionOverrideName(vtkDimensionInfo::UnitsEnum dim, const char *name)
 
const char * GetLongitudeDimensionName()
Names for Time, Latitude, Longitude and Vertical.
 
void Add1DRectilinearCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for setting rectilinear coordinates.
 
void SetOutputTypeToRectilinear()
Set/get the data type of the output.
 
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
 
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.
 
const char * GetTimeDimensionName()
Names for Time, Latitude, Longitude and Vertical.
 
void GetUpdateExtentForOutput(vtkDataSet *output, int extent[6]) override
Overridden to retrieve stored extent for unstructured data.
 
vtkDimensionInfo * GetDimensionInfo(int dimension)
 
vtkTypeBool SphericalCoordinates
 
int IsTimeDimension(int ncFD, int dimId) override
Interprets the special conventions of COARDS.
 
void Add1DRectilinearCoordinates(vtkStructuredGrid *structuredOutput)
Internal methods for setting rectilinear coordinates.
 
void SetVerticalDimensionName(const char *name)
Names for Time, Latitude, Longitude and Vertical which can be set by the user for datasets that don't...
 
void SetOutputTypeToStructured()
Set/get the data type of the output.
 
static vtkNetCDFCFReader * New()
 
bool DimensionsAreForPointData(vtkIntArray *dimensions) override
Returns false for spherical dimensions, which should use cell data.
 
void Add1DSphericalCoordinates(vtkStructuredGrid *structuredOutput)
Internal methods for setting spherical coordinates.
 
void SetOutputTypeToAutomatic()
Set/get the data type of the output.
 
void Add2DRectilinearCoordinates(vtkStructuredGrid *structuredOutput)
Internal methods for setting rectilinear coordinates.
 
void SetLongitudeDimensionName(const char *name)
Names for Time, Latitude, Longitude and Vertical which can be set by the user for datasets that don't...
 
void Add2DSphericalCoordinates(vtkPoints *points, const int extent[6])
Internal methods for setting spherical coordinates.
 
void SetTimeDimensionName(const char *name)
Names for Time, Latitude, Longitude and Vertical which can be set by the user for datasets that don't...
 
void AddRectilinearCoordinates(vtkRectilinearGrid *rectilinearOutput)
Internal methods for setting rectilinear coordinates.
 
void Add2DRectilinearCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for setting rectilinear coordinates.
 
void FakeRectilinearCoordinates(vtkRectilinearGrid *rectilinearOutput)
Internal methods for setting rectilinear coordinates.
 
void Add2DRectilinearCoordinates(vtkPoints *points, const int extent[6])
Internal methods for setting rectilinear coordinates.
 
vtkSmartPointer< vtkDoubleArray > GetTimeValues(int ncFD, int dimId) override
Interprets the special conventions of COARDS.
 
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])
Internal methods for setting rectilinear coordinates.
 
std::vector< std::string > SpecialDimensionOverrideNames
 
@ 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.
 
int ReadMetaData(int ncFD) override
Interprets the special conventions of COARDS.
 
void AddUnstructuredRectilinearCoordinates(vtkUnstructuredGrid *unstructuredOutput, const int extent[6])
Internal methods for creating unstructured cells.
 
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
 
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
 
Hold a reference to a vtkObjectBase instance.
 
Wrapper around std::string to keep symbols short.
 
topologically regular array of data
 
dataset represents arbitrary combinations of all possible cell types
 
@ Valid
Cell is in a good state.