167 const size_t &_timeColumnIndex = 0,
175 std::iota(dataColumnIndices.begin(), dataColumnIndices.end(), 0);
176 auto last = dataColumnIndices.end();
177 for (
size_t index : {_timeColumnIndex, _spatialColumnIndices[0],
178 _spatialColumnIndices[1], _spatialColumnIndices[2]})
180 auto it =
std::find(dataColumnIndices.begin(), last, index);
184 sstream <<
"Column index " << index <<
" is"
185 <<
"out of range for CSV data stream";
190 dataColumnIndices.erase(last, dataColumnIndices.end());
193 math::InMemoryTimeVaryingVolumetricGridFactory<T, V>;
195 for (
auto it =
std::next(_begin); it != _end; ++it)
198 const math::Vector3<P> position{
203 for (
size_t i = 0; i < dataColumnIndices.size(); ++i)
206 factories[i].AddPoint(time, position, value);
210 DataFrame<K, math::InMemoryTimeVaryingVolumetricGrid<T, V, P>> df;
211 for (
size_t i = 0; i < dataColumnIndices.size(); ++i)
214 _begin->
at(dataColumnIndices[i]) :