MI - Fimex
CDMVerticalInterpolator.h
Go to the documentation of this file.
1 /*
2  * Fimex, CDMVerticalInterpolator.h
3  *
4  * (C) Copyright 2011, met.no
5  *
6  * Project Info: https://wiki.met.no/fimex/start
7  *
8  * This library is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16  * License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21  * USA.
22  *
23  * Created on: Aug 1, 2011
24  * Author: Heiko Klein
25  */
26 
27 #ifndef CDMVERTICALINTERPOLATOR_H_
28 #define CDMVERTICALINTERPOLATOR_H_
29 
30 
31 #include <vector>
32 #include "fimex/mifi_constants.h"
33 #include "fimex/CDMReader.h"
35 
36 
37 namespace MetNoFimex
38 {
39 
40 // forward declaration
41 struct VIntPimpl;
42 class CoordinateSystem;
43 
60 {
61 public:
71  CDMVerticalInterpolator(boost::shared_ptr<CDMReader> dataReader, const std::string& verticalType, const std::string& verticalInterpolationMethod, const std::vector<double>& level1, const std::vector<double>& level2);
72  virtual ~CDMVerticalInterpolator();
77  virtual DataPtr getDataSlice(const std::string& varName, size_t unLimDimPos = 0);
78 
79 private:
80  boost::shared_ptr<CDMReader> dataReader_;
81  boost::shared_ptr<VIntPimpl> pimpl_;
82  DataPtr getLevelDataSlice(boost::shared_ptr<const CoordinateSystem> cs, const std::string& varName, size_t unLimDimPos);
83 };
84 
85 }
86 
87 #endif /* CDMVERTICALINTERPOLATOR_H_ */
basic_string< char > string
boost::shared_ptr< Data > DataPtr
Definition: DataDecl.h:39
virtual DataPtr getDataSlice(const std::string &varName, size_t unLimDimPos)=0
data-reading function to be called from the CDMWriter
Definition: C_CDMReader.h:35
Basic interface for CDM reading and manipulation classes.
Definition: CDMReader.h:53
CDMVerticalInterpolator(boost::shared_ptr< CDMReader > dataReader, const std::string &verticalType, const std::string &verticalInterpolationMethod, const std::vector< double > &level1, const std::vector< double > &level2)
virtual DataPtr getDataSlice(const std::string &varName, size_t unLimDimPos=0)
Interpolation of vertical layers.
Definition: CDMVerticalInterpolator.h:59