bes Updated for version 3.20.13
FONcGrid Class Referenceabstract

A DAP Grid with file out netcdf information included. More...

#include <FONcGrid.h>

Collaboration diagram for FONcGrid:
Collaboration graph

Public Member Functions

virtual void clear_embedded ()
 Clears the list of embedded variable names.
 
virtual void convert (std::vector< std::string > embed, bool is_dap4=false, bool is_dap4_group=false)
 
virtual void convert (vector< string > embed, bool _dap4, bool is_dap4_group) override
 convert the DAP Grid to a set of embedded variables
 
virtual void define (int ncid) override
 define the DAP Grid in the netcdf file
 
virtual void dump (ostream &strm) const override
 dumps information about this object for debugging purposes
 
virtual void dump (std::ostream &strm) const =0
 dump the contents of this object to the specified ostream
 
 FONcGrid (libdap::BaseType *b)
 Constructor for FONcGrid that takes a DAP Grid.
 
libdap::DDS * get_dds () const
 
libdap::ConstraintEvaluator * get_eval () const
 
virtual libdap::AttrType getAttrType (nc_type t)
 
virtual D4AttributeType getD4AttrType (nc_type t)
 
virtual bool isNetCDF4 ()
 Returns true if NetCDF4 features will be required.
 
virtual bool isNetCDF4_ENHANCED ()
 
string name () override
 returns the name of the DAP Grid
 
void set_dds (libdap::DDS *dds)
 
void set_eval (libdap::ConstraintEvaluator *eval)
 
virtual void set_is_dap4 (bool set_dap4)
 
virtual void setNC4DataModel (const string &nc4_datamodel)
 Identifies the netCDF4 data model (CLASSIC or ENHANCED)
 
virtual void setVersion (const std::string &version)
 Identifies variable with use of NetCDF4 features.
 
virtual nc_type type ()
 Returns the type of data of this variable.
 
virtual void updateAttrType (libdap::AttrTable &attrs, nc_type t)
 
virtual void updateD4AttrType (libdap::D4Attributes *d4_attrs, nc_type t)
 
virtual int varid () const
 
virtual void write (int ncid) override
 Write the maps and array for the grid.
 
virtual ~FONcGrid ()
 Destructor that cleans up the grid.
 

Static Public Member Functions

static FONcMapInMaps (libdap::Array *array)
 

Static Public Attributes

static bool InGrid = false
 tells whether we are converting or defining a grid.
 
static vector< FONcMap * > Maps
 global list of maps that could be shared amongst the different grids
 

Protected Attributes

bool _defined
 
std::vector< std::string > _embed
 
std::string _nc4_datamodel
 
std::string _ncVersion
 
std::string _orig_varname
 
int _varid
 
std::string _varname
 
libdap::DDS * d_dds
 
libdap::ConstraintEvaluator * d_eval
 
bool is_dap4
 
bool is_dap4_group
 

Detailed Description

A DAP Grid with file out netcdf information included.

This class represents a DAP Grid with additional information needed to write it out to a netcdf file and includes a reference to the actual DAP Grid being converted, the maps of the grid stored as FONcMap instances, and the array of the grid stored as a FONcArray.

NetCDF does not have a grid representation, per se. For this reason, we flatten the DAP grid into different arrays (maps) as well as the grid's actual array.

It is possible to share maps among grids, so a global map list is kept as well.

Definition at line 61 of file FONcGrid.h.

Constructor & Destructor Documentation

◆ FONcGrid()

FONcGrid::FONcGrid ( libdap::BaseType *  b)
explicit

Constructor for FONcGrid that takes a DAP Grid.

This constructor takes a DAP BaseType and makes sure that it is a DAP Grid instance. If not, it throws an exception

Parameters
bA DAP BaseType that should be a grid
Exceptions
BESInternalErrorif the BaseType is not a Grid

Definition at line 60 of file FONcGrid.cc.

◆ ~FONcGrid()

FONcGrid::~FONcGrid ( )
virtual

Destructor that cleans up the grid.

The DAP Grid instance does not belong to the FONcGrid instance, so it is not deleted.

Since maps can be shared by grids, FONcMap uses reference counting. So instead of deleting the FONcMap instance, its reference count is decremented.

Definition at line 78 of file FONcGrid.cc.

Member Function Documentation

◆ clear_embedded()

void FONcBaseType::clear_embedded ( )
virtualinherited

Clears the list of embedded variable names.

Definition at line 93 of file FONcBaseType.cc.

◆ convert() [1/2]

void FONcBaseType::convert ( std::vector< std::string >  embed,
bool  is_dap4 = false,
bool  is_dap4_group = false 
)
virtualinherited

Reimplemented in FONcArray.

Definition at line 42 of file FONcBaseType.cc.

◆ convert() [2/2]

void FONcGrid::convert ( vector< string >  embed,
bool  _dap4,
bool  is_dap4_group 
)
overridevirtual

convert the DAP Grid to a set of embedded variables

A DAP Grid contains one or more maps (arrays) and an array of values. The convert method creates a FONcMap for each of the grid's maps, and a FONcArray for the grid's array.

A map can be shared by other grids if the name of the map is the same, the size of the map is the same, the type of the map is the same, and the values of the map are the same. If they are the same, then it references that shared map instead of creating a new one.

Parameters
embedThe list of parent names for this grid
Exceptions
BESInternalErrorif there is a problem defining the Byte

Definition at line 138 of file FONcGrid.cc.

◆ define()

void FONcGrid::define ( int  ncid)
overridevirtual

define the DAP Grid in the netcdf file

Iterates through the maps for this grid and defines each of those, if they haven't already been defined by a grid that shares the map. Then it defines the grid's array in the netcdf file.

Any attributes for the grid will be written out for each of the maps and the array.

Parameters
ncidThe id of the NetCDF file
Exceptions
BESInternalErrorif there is a problem defining the Byte

Reimplemented from FONcBaseType.

Definition at line 104 of file FONcGrid.cc.

◆ dump() [1/2]

void FONcGrid::dump ( ostream &  strm) const
overridevirtual

dumps information about this object for debugging purposes

Displays the pointer value of this instance plus instance data. Included is each FONcMap instance as well as the FONcArray representing the grid's array.

Parameters
strmC++ i/o stream to dump the information to

Definition at line 255 of file FONcGrid.cc.

◆ dump() [2/2]

virtual void FONcBaseType::dump ( std::ostream &  strm) const
pure virtualinherited

dump the contents of this object to the specified ostream

This method is implemented by all derived classes to dump their contents, in other words, any state they might have, private variables, etc...

The inline function below can be used to dump the contents of an OPeNDAPObj object. For example, the object Animal is derived from BESObj. A user could do the following:

Animal *a = new dog( "Sparky" ) ; cout << a << endl ;

And the dump method for dog could display the name passed into the constructor, the (this) pointer of the object, etc...

Parameters
strmC++ i/o stream to dump the object to

Implements BESObj.

Implemented in FONcArray.

◆ get_dds()

libdap::DDS * FONcBaseType::get_dds ( ) const
inlineinherited

Definition at line 82 of file FONcBaseType.h.

◆ get_eval()

libdap::ConstraintEvaluator * FONcBaseType::get_eval ( ) const
inlineinherited

Definition at line 85 of file FONcBaseType.h.

◆ getAttrType()

libdap::AttrType FONcBaseType::getAttrType ( nc_type  t)
virtualinherited

Definition at line 163 of file FONcBaseType.cc.

◆ getD4AttrType()

D4AttributeType FONcBaseType::getD4AttrType ( nc_type  t)
virtualinherited

Definition at line 211 of file FONcBaseType.cc.

◆ InMaps()

FONcMap * FONcGrid::InMaps ( libdap::Array *  array)
static

Definition at line 292 of file FONcGrid.cc.

◆ isNetCDF4()

bool FONcBaseType::isNetCDF4 ( )
virtualinherited

Returns true if NetCDF4 features will be required.

Definition at line 118 of file FONcBaseType.cc.

◆ isNetCDF4_ENHANCED()

bool FONcBaseType::isNetCDF4_ENHANCED ( )
virtualinherited

Definition at line 123 of file FONcBaseType.cc.

◆ name()

string FONcGrid::name ( )
overridevirtual

returns the name of the DAP Grid

Returns
The name of the DAP Grid

Implements FONcBaseType.

Definition at line 242 of file FONcGrid.cc.

◆ set_dds()

void FONcBaseType::set_dds ( libdap::DDS *  dds)
inlineinherited

Definition at line 83 of file FONcBaseType.h.

◆ set_eval()

void FONcBaseType::set_eval ( libdap::ConstraintEvaluator *  eval)
inlineinherited

Definition at line 86 of file FONcBaseType.h.

◆ set_is_dap4()

virtual void FONcBaseType::set_is_dap4 ( bool  set_dap4)
inlinevirtualinherited

Definition at line 103 of file FONcBaseType.h.

◆ setNC4DataModel()

void FONcBaseType::setNC4DataModel ( const string &  nc4_datamodel)
virtualinherited

Identifies the netCDF4 data model (CLASSIC or ENHANCED)

Definition at line 109 of file FONcBaseType.cc.

◆ setVersion()

void FONcBaseType::setVersion ( const std::string &  version)
virtualinherited

Identifies variable with use of NetCDF4 features.

Definition at line 100 of file FONcBaseType.cc.

◆ type()

nc_type FONcBaseType::type ( )
virtualinherited

Returns the type of data of this variable.

This implementation of the method returns the default type of data. Subclasses of FONcBaseType will return the specific type of data for simple types

Reimplemented in FONcFloat, FONcInt, FONcInt64, FONcInt8, FONcShort, FONcStr, FONcUByte, FONcUInt, FONcUInt64, FONcUShort, FONcByte, and FONcDouble.

Definition at line 86 of file FONcBaseType.cc.

◆ updateAttrType()

void FONcBaseType::updateAttrType ( libdap::AttrTable &  attrs,
nc_type  t 
)
virtualinherited

Definition at line 144 of file FONcBaseType.cc.

◆ updateD4AttrType()

void FONcBaseType::updateD4AttrType ( libdap::D4Attributes *  d4_attrs,
nc_type  t 
)
virtualinherited

Definition at line 128 of file FONcBaseType.cc.

◆ varid()

virtual int FONcBaseType::varid ( ) const
inlinevirtualinherited

Definition at line 95 of file FONcBaseType.h.

◆ write()

void FONcGrid::write ( int  ncid)
overridevirtual

Write the maps and array for the grid.

Once defined, the values of the maps and the values of the grid's array can be written out to the netcdf file.

Parameters
ncidThe id of the netcdf file
Exceptions
BESInternalErrorif there is a problem writing the grid out to the netcdf file

Implements FONcBaseType.

Definition at line 216 of file FONcGrid.cc.

Member Data Documentation

◆ _defined

bool FONcBaseType::_defined
protectedinherited

Definition at line 66 of file FONcBaseType.h.

◆ _embed

std::vector<std::string> FONcBaseType::_embed
protectedinherited

Definition at line 65 of file FONcBaseType.h.

◆ _nc4_datamodel

std::string FONcBaseType::_nc4_datamodel
protectedinherited

Definition at line 68 of file FONcBaseType.h.

◆ _ncVersion

std::string FONcBaseType::_ncVersion
protectedinherited

Definition at line 67 of file FONcBaseType.h.

◆ _orig_varname

std::string FONcBaseType::_orig_varname
protectedinherited

Definition at line 64 of file FONcBaseType.h.

◆ _varid

int FONcBaseType::_varid
protectedinherited

Definition at line 62 of file FONcBaseType.h.

◆ _varname

std::string FONcBaseType::_varname
protectedinherited

Definition at line 63 of file FONcBaseType.h.

◆ d_dds

libdap::DDS* FONcBaseType::d_dds
protectedinherited

Definition at line 74 of file FONcBaseType.h.

◆ d_eval

libdap::ConstraintEvaluator* FONcBaseType::d_eval
protectedinherited

Definition at line 75 of file FONcBaseType.h.

◆ InGrid

bool FONcGrid::InGrid = false
static

tells whether we are converting or defining a grid.

This is used by FONcArray to tell if any single dimension arrays where the name of the array and the name of the dimension are the same. If they are, then that array is saved as a possible shared map

Definition at line 82 of file FONcGrid.h.

◆ is_dap4

bool FONcBaseType::is_dap4
protectedinherited

Definition at line 69 of file FONcBaseType.h.

◆ is_dap4_group

bool FONcBaseType::is_dap4_group
protectedinherited

Definition at line 72 of file FONcBaseType.h.

◆ Maps

vector< FONcMap * > FONcGrid::Maps
static

global list of maps that could be shared amongst the different grids

Definition at line 80 of file FONcGrid.h.


The documentation for this class was generated from the following files: