Changeset 2131 for XIOS/trunk/src/filter
- Timestamp:
- 04/23/21 15:00:35 (3 years ago)
- Location:
- XIOS/trunk/src/filter
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/filter/source_filter.cpp
r1928 r2131 19 19 , offset(offset) 20 20 , hasMissingValue(hasMissingValue), defaultValue(defaultValue) 21 , ntiles(0) 22 , storedTileData() 21 23 { 22 24 if (!grid) … … 53 55 } 54 56 57 template <int N> 58 void CSourceFilter::streamTile(CDate date, const CArray<double, N>& tileData, int tileId) 59 { 60 if (ntiles==0) 61 { 62 const double nanValue = std::numeric_limits<double>::quiet_NaN(); 63 // storedTileData.resize(grid->storeIndex_client.numElements()); 64 storedTileData.resize(grid->getDataSize()); 65 storedTileData = nanValue; 66 } 67 grid->copyTile(tileData, storedTileData, tileId); 68 ++ntiles; 69 if (ntiles==grid->getNTiles()) 70 { 71 // Data entering workflow will be exactly of size ni*nj for a grid 2d or ni*nj*n for a grid 3d 72 streamData(date, storedTileData, true); 73 ntiles = 0; 74 } 75 } 55 76 56 77 template <int N> 57 void CSourceFilter::streamData(CDate date, const CArray<double, N>& data )78 void CSourceFilter::streamData(CDate date, const CArray<double, N>& data, bool isTiled) 58 79 { 59 80 date = date + offset; // this is a temporary solution, it should be part of a proper temporal filter … … 74 95 { 75 96 if (mask) 76 grid->maskField(data, packet->data); 97 if (isTiled) 98 grid->maskField(data, packet->data, isTiled); 99 else 100 grid->maskField(data, packet->data); 77 101 else 78 102 grid->inputField(data, packet->data); … … 97 121 } 98 122 99 template void CSourceFilter::streamData<1>(CDate date, const CArray<double, 1>& data); 100 template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data); 101 template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data); 102 template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data); 103 template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data); 104 template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data); 105 template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data); 123 template void CSourceFilter::streamData<1>(CDate date, const CArray<double, 1>& data, bool isTiled); 124 template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data, bool isTiled); 125 template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data, bool isTiled); 126 template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data, bool isTiled); 127 template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data, bool isTiled); 128 template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data, bool isTiled); 129 template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data, bool isTiled); 130 131 template void CSourceFilter::streamTile<1>(CDate date, const CArray<double, 1>& data, int ntile); 132 template void CSourceFilter::streamTile<2>(CDate date, const CArray<double, 2>& data, int ntile); 133 template void CSourceFilter::streamTile<3>(CDate date, const CArray<double, 3>& data, int ntile); 134 template void CSourceFilter::streamTile<4>(CDate date, const CArray<double, 4>& data, int ntile); 135 template void CSourceFilter::streamTile<5>(CDate date, const CArray<double, 5>& data, int ntile); 136 template void CSourceFilter::streamTile<6>(CDate date, const CArray<double, 6>& data, int ntile); 137 template void CSourceFilter::streamTile<7>(CDate date, const CArray<double, 7>& data, int ntile); 106 138 107 139 void CSourceFilter::streamDataFromServer(CDate date, const std::map<int, CArray<double, 1> >& data) -
XIOS/trunk/src/filter/source_filter.hpp
r1704 r2131 46 46 */ 47 47 template <int N> 48 void streamData(CDate date, const CArray<double, N>& data); 48 void streamData(CDate date, const CArray<double, N>& data, bool isTiled = false); 49 50 template <int N> 51 void streamTile(CDate date, const CArray<double, N>& data, int ntile); 49 52 50 53 void virtual buildGraph(CDataPacketPtr packet); … … 75 78 const bool compression ; //!< indicates if data need to be compressed : on client side : true, on server side : false 76 79 const bool mask ; //!< indicates whether grid mask should be applied (true for clients, false for servers) 80 int ntiles ; 81 CArray<double, 1> storedTileData; 77 82 }; // class CSourceFilter 78 83 } // namespace xios
Note: See TracChangeset
for help on using the changeset viewer.