Ignore:
Timestamp:
05/24/11 17:47:01 (13 years ago)
Author:
hozdoba
Message:
 
Location:
XMLIO_V2/dev/dev_rv/src/xmlio/output
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/xmlio/output/nc4_data_output.cpp

    r201 r202  
    55 
    66#include "file.hpp" 
     7#include "calendar.hpp" 
    78 
    89namespace xmlioserver 
     
    231232                         ( field->operation.getValue().compare("once") == 0)); 
    232233                          
    233          if (wtime) dims.push_back(timeid); 
     234         if (wtime) 
     235         { 
     236            StdOStringStream oss; 
     237            oss << "time_" << field->operation.getValue() 
     238                << "_" << field->getRelFile()->output_freq.getValue(); 
     239 
     240            coodinates.push_back(oss.str()); 
     241            dims.push_back(timeid); 
     242         } 
    234243 
    235244         if (!grid->axis_ref.isEmpty()) 
     
    385394 
    386395      //--------------------------------------------------------------- 
     396 
     397      void CNc4DataOutput::writeTimeAxis_ 
     398                  (const boost::shared_ptr<tree::CField>    field, 
     399                   const boost::shared_ptr<date::CCalendar> cal) 
     400      { 
     401         StdOStringStream oss; 
     402         oss << "time_" << field->operation.getValue() 
     403             << "_" << field->getRelFile()->output_freq.getValue(); 
     404 
     405         std::vector<StdString> dims; 
     406         StdString axisid = oss.str(); 
     407         StdString timeid = StdString("time_counter"); 
     408 
     409         dims.push_back(timeid); 
     410         if (!SuperClassWriter::varExist(axisid)) 
     411         { 
     412            SuperClassWriter::addVariable(axisid, NC_DOUBLE, dims); 
     413            this->writeTimeAxisAttributes(axisid, 
     414                                         cal->getId(), 
     415                                         "lol", 
     416                                         "lol"); 
     417         } 
     418 
     419      } 
     420 
     421      //--------------------------------------------------------------- 
     422       
     423      void CNc4DataOutput::writeTimeAxisAttributes(const StdString & axis_name, 
     424                                                   const StdString & calendar, 
     425                                                   const StdString & units, 
     426                                                   const StdString & time_origin, 
     427                                                   const StdString & standard_name, 
     428                                                   const StdString & long_name, 
     429                                                   const StdString & title) 
     430      { 
     431         SuperClassWriter::addAttribute("standard_name", standard_name, &axis_name); 
     432         SuperClassWriter::addAttribute("long_name",     long_name    , &axis_name); 
     433         SuperClassWriter::addAttribute("title",         title        , &axis_name); 
     434         SuperClassWriter::addAttribute("calendar",      calendar     , &axis_name); 
     435         SuperClassWriter::addAttribute("units",         units        , &axis_name); 
     436         SuperClassWriter::addAttribute("time_origin",   time_origin  , &axis_name); 
     437      } 
     438       
     439      //--------------------------------------------------------------- 
     440 
    387441      void CNc4DataOutput::writeAxisAttributes(const StdString & axis_name, 
    388442                                               const StdString & axis, 
  • XMLIO_V2/dev/dev_rv/src/xmlio/output/nc4_data_output.hpp

    r201 r202  
    4343 
    4444            /// Ecriture /// 
    45             virtual void writeDomain_    (const boost::shared_ptr<tree::CDomain> domain); 
    46             virtual void writeAxis_      (const boost::shared_ptr<tree::CAxis>   axis); 
    47             virtual void writeField_     (const boost::shared_ptr<tree::CField>  field); 
    48             virtual void writeFieldData_ (const boost::shared_ptr<tree::CField>  field); 
    49             virtual void writeFile_      (const boost::shared_ptr<tree::CFile>   file); 
    50  
     45            virtual void writeDomain_    (const boost::shared_ptr<tree::CDomain>   domain); 
     46            virtual void writeAxis_      (const boost::shared_ptr<tree::CAxis>     axis); 
     47            virtual void writeField_     (const boost::shared_ptr<tree::CField>    field); 
     48            virtual void writeFieldData_ (const boost::shared_ptr<tree::CField>    field); 
     49            virtual void writeFile_      (const boost::shared_ptr<tree::CFile>     file); 
     50            virtual void writeTimeAxis_  (const boost::shared_ptr<tree::CField>    field, 
     51                                          const boost::shared_ptr<date::CCalendar> cal); 
    5152 
    5253         protected : 
    5354          
    5455            void writeLocalAttributes(int ibegin, int ni, int jbegin, int nj, StdString domid); 
     56 
     57            void writeTimeAxisAttributes(const StdString & axis_name, 
     58                                         const StdString & calendar, 
     59                                         const StdString & units, 
     60                                         const StdString & time_origin, 
     61                                         const StdString & standard_name = StdString("time"), 
     62                                         const StdString & long_name     = StdString("Time axis"), 
     63                                         const StdString & title         = StdString("Time")); 
    5564 
    5665            void writeFileAttributes(const StdString & name, 
  • XMLIO_V2/dev/dev_rv/src/xmlio/output/onetcdf4.cpp

    r189 r202  
    356356      } 
    357357 
     358      //--------------------------------------------------------------- 
     359       
     360      bool CONetCDF4::varExist(const StdString & varname) 
     361      { 
     362         int varid = 0; 
     363         int grpid = this->getCurrentGroup(); 
     364         return (nc_inq_varid (grpid, varname.c_str(), &varid) == NC_NOERR); 
     365      } 
     366 
    358367      ///-------------------------------------------------------------- 
    359368   } // namespace io 
  • XMLIO_V2/dev/dev_rv/src/xmlio/output/onetcdf4.hpp

    r201 r202  
    9292            std::vector<StdSize> getDimensions(const StdString & varname); 
    9393            int getUnlimitedDimension(void); 
    94              
     94 
     95            bool varExist(const StdString & varname); 
     96 
    9597      //---------------------------------------------------------------- 
    9698       
Note: See TracChangeset for help on using the changeset viewer.