|
OPeNDAP Hyrax Back End Server (BES)
Updated for version 3.8.3
|
A DAP Grid with file out netcdf information included. More...
#include <FONcGrid.h>


Public Member Functions | |
| virtual void | clear_embedded () |
| Clears the list of embedded variable names. More... | |
| virtual void | convert (vector< string > embed) |
| convert the DAP Grid to a set of embedded variables More... | |
| virtual void | define (int ncid) |
| define the DAP Grid in the netcdf file More... | |
| virtual void | dump (ostream &strm) const |
| dumps information about this object for debugging purposes More... | |
| FONcGrid (BaseType *b) | |
| Constructor for FONcGrid that takes a DAP Grid. More... | |
| virtual bool | isNetCDF4 () |
| Returns true if NetCDF4 features will be required. More... | |
| virtual string | name () |
| returns the name of the DAP Grid More... | |
| virtual void | setVersion (string version) |
| Identifies variable with use of NetCDF4 features. More... | |
| virtual nc_type | type () |
| Returns the type of data of this variable. More... | |
| virtual int | varid () |
| virtual void | write (int ncid) |
| Write the maps and array for the grid. More... | |
| virtual | ~FONcGrid () |
| Destructor that cleans up the grid. More... | |
Static Public Member Functions | |
| static FONcMap * | InMaps (Array *array) |
Static Public Attributes | |
| static bool | InGrid = false |
| tells whether we are converting or defining a grid. More... | |
| static vector< FONcMap * > | Maps |
| global list of maps that could be shared amongst the different grids More... | |
Protected Attributes | |
| bool | _defined |
| vector< string > | _embed |
| string | _ncVersion |
| string | _orig_varname |
| int | _varid |
| string | _varname |
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. 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 grid representation. For this reason, we flatten out the grid as 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 57 of file FONcGrid.h.
| FONcGrid::FONcGrid | ( | BaseType * | b | ) |
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
| b | A DAP BaseType that should be a grid |
| BESInternalError | if the BaseType is not a Grid |
Definition at line 60 of file FONcGrid.cc.
|
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 81 of file FONcGrid.cc.
References FONcMap::decref().

|
virtualinherited |
Clears the list of embedded variable names.
Definition at line 95 of file FONcBaseType.cc.
References FONcBaseType::_embed.
Referenced by FONcMap::clear_embedded().
|
virtual |
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.
| embed | The list of parent names for this grid |
| BESInternalError | if there is a problem defining the Byte |
Reimplemented from FONcBaseType.
Definition at line 133 of file FONcGrid.cc.
References FONcBaseType::_embed, FONcBaseType::_orig_varname, FONcBaseType::_varname, FONcMap::add_grid(), BESDEBUG, FONcMap::clear_embedded(), FONcBaseType::convert(), FONcArray::convert(), FONcUtils::gen_name(), FONcMap::incref(), InGrid, InMaps(), and Maps.

|
virtual |
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.
| ncid | The id of the NetCDF file |
| BESInternalError | if there is a problem defining the Byte |
Reimplemented from FONcBaseType.
Definition at line 203 of file FONcGrid.cc.
References FONcBaseType::_defined, FONcBaseType::_varname, BESDEBUG, and FONcArray::define().

|
virtual |
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.
| strm | C++ i/o stream to dump the information to |
Implements FONcBaseType.
Definition at line 273 of file FONcGrid.cc.
References FONcMap::dump(), FONcArray::dump(), BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().

|
static |
Definition at line 316 of file FONcGrid.cc.
References FONcMap::compare(), and Maps.
Referenced by convert(), and FONcArray::convert().

|
virtualinherited |
Returns true if NetCDF4 features will be required.
Definition at line 112 of file FONcBaseType.cc.
References FONcBaseType::_ncVersion, FONcBaseType::_varname, FONcUtils::handle_error(), RETURNAS_NETCDF, and RETURNAS_NETCDF4.
Referenced by FONcArray::define().

|
virtual |
returns the name of the DAP Grid
Implements FONcBaseType.
Definition at line 259 of file FONcGrid.cc.
|
virtualinherited |
Identifies variable with use of NetCDF4 features.
Definition at line 102 of file FONcBaseType.cc.
References FONcBaseType::_ncVersion, and BESDEBUG.
|
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 FONcStr, FONcByte, FONcDouble, FONcFloat, FONcInt, and FONcShort.
Definition at line 87 of file FONcBaseType.cc.
Referenced by FONcBaseType::define().
|
inlinevirtualinherited |
Definition at line 70 of file FONcBaseType.h.
|
virtual |
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.
| ncid | The id of the netcdf file |
| BESInternalError | if there is a problem writing the grid out to the netcdf file |
Reimplemented from FONcBaseType.
Definition at line 235 of file FONcGrid.cc.
References FONcBaseType::_defined, FONcBaseType::_varname, BESDEBUG, and FONcArray::write().

|
protectedinherited |
Definition at line 55 of file FONcBaseType.h.
Referenced by FONcDouble::define(), FONcFloat::define(), FONcShort::define(), FONcInt::define(), FONcByte::define(), FONcStr::define(), FONcStructure::define(), FONcBaseType::define(), define(), FONcArray::define(), and write().
|
protectedinherited |
Definition at line 54 of file FONcBaseType.h.
Referenced by FONcBaseType::clear_embedded(), FONcBaseType::convert(), convert(), FONcStr::define(), and FONcBaseType::define().
|
protectedinherited |
Definition at line 56 of file FONcBaseType.h.
Referenced by FONcBaseType::isNetCDF4(), and FONcBaseType::setVersion().
|
protectedinherited |
Definition at line 53 of file FONcBaseType.h.
Referenced by FONcSequence::convert(), convert(), FONcArray::convert(), FONcDouble::define(), FONcInt::define(), FONcFloat::define(), FONcShort::define(), FONcByte::define(), FONcStr::define(), FONcBaseType::define(), and FONcArray::define().
|
protectedinherited |
Definition at line 51 of file FONcBaseType.h.
Referenced by FONcDouble::define(), FONcFloat::define(), FONcShort::define(), FONcInt::define(), FONcByte::define(), FONcStr::define(), FONcBaseType::define(), FONcArray::define(), FONcDouble::write(), FONcInt::write(), FONcFloat::write(), FONcShort::write(), FONcByte::write(), FONcStr::write(), and FONcArray::write().
|
protectedinherited |
Definition at line 52 of file FONcBaseType.h.
Referenced by FONcSequence::convert(), FONcBaseType::convert(), convert(), FONcArray::convert(), FONcFloat::define(), FONcInt::define(), FONcDouble::define(), FONcShort::define(), FONcByte::define(), FONcSequence::define(), FONcStr::define(), FONcStructure::define(), FONcBaseType::define(), define(), FONcArray::define(), FONcArray::dump(), FONcBaseType::isNetCDF4(), FONcDouble::write(), FONcFloat::write(), FONcInt::write(), FONcShort::write(), FONcByte::write(), FONcStr::write(), FONcStructure::write(), write(), and FONcArray::write().
|
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 77 of file FONcGrid.h.
Referenced by convert(), and FONcArray::convert().
|
static |
global list of maps that could be shared amongst the different grids
Definition at line 75 of file FONcGrid.h.
Referenced by convert(), FONcArray::convert(), InMaps(), and FONcUtils::reset().