source: XIOS/dev/XIOS_DEV_CMIP6/src/transformation/domain_algorithm_reorder.hpp @ 1457

Last change on this file since 1457 was 1457, checked in by ymipsl, 6 years ago

Add new domain filter : reorder_domain
Reoder the data along the global domain but works only for rectilinear domain

  • invert_lat : invert the latitute axis
  • shift_lon_fraction : shift the longitude axis of a fration of global size
  • lon_min/lon_max : fixe the range of longitude value (ex : -180:180 or 0:360)

YM

File size: 1.6 KB
Line 
1/*!
2   \brief Algorithm for reordering domain.
3 */
4#ifndef __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__
5#define __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__
6
7#include "domain_algorithm_transformation.hpp"
8#include "transformation.hpp"
9
10namespace xios {
11
12class CDomain;
13class CReorderDomain;
14
15/*!
16  \class CDomainAlgorithmReorder
17  Reordering data on domain
18*/
19class CDomainAlgorithmReorder : public CDomainAlgorithmTransformation
20{
21public:
22  CDomainAlgorithmReorder(CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain);
23
24  virtual ~CDomainAlgorithmReorder() {}
25
26  static bool registerTrans();
27
28protected:
29  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
30
31
32private:
33
34  static CGenericAlgorithmTransformation* create(CGrid* gridDst, CGrid* gridSrc,
35                                                CTransformation<CDomain>* transformation,
36                                                int elementPositionInGrid,
37                                                std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
38                                                std::map<int, int>& elementPositionInGridSrc2AxisPosition,
39                                                std::map<int, int>& elementPositionInGridSrc2DomainPosition,
40                                                std::map<int, int>& elementPositionInGridDst2ScalarPosition,
41                                                std::map<int, int>& elementPositionInGridDst2AxisPosition,
42                                                std::map<int, int>& elementPositionInGridDst2DomainPosition);
43};
44
45}
46#endif // __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__
Note: See TracBrowser for help on using the repository browser.