@@ -76,7 +76,11 public: | |||||
76 |
|
76 | |||
77 | private: |
|
77 | private: | |
78 | Properties m_Properties{}; |
|
78 | Properties m_Properties{}; | |
|
79 | std::vector<double> m_XAxisData{}; | |||
79 | std::vector<double> m_YAxisData{}; |
|
80 | std::vector<double> m_YAxisData{}; | |
|
81 | std::vector<double> m_ValuesData{}; | |||
|
82 | std::vector<int> m_ValuesIndexes{}; | |||
|
83 | double m_FillValue{std::numeric_limits<double>::quiet_NaN()}; | |||
80 | }; |
|
84 | }; | |
81 |
|
85 | |||
82 | /** |
|
86 | /** |
@@ -1,8 +1,10 | |||||
1 | #include "AmdaResultParserHelper.h" |
|
1 | #include "AmdaResultParserHelper.h" | |
2 |
|
2 | |||
3 | #include <Common/DateUtils.h> |
|
3 | #include <Common/DateUtils.h> | |
|
4 | #include <Common/SortUtils.h> | |||
4 |
|
5 | |||
5 | #include <Data/ScalarSeries.h> |
|
6 | #include <Data/ScalarSeries.h> | |
|
7 | #include <Data/SpectrogramSeries.h> | |||
6 | #include <Data/Unit.h> |
|
8 | #include <Data/Unit.h> | |
7 | #include <Data/VectorSeries.h> |
|
9 | #include <Data/VectorSeries.h> | |
8 |
|
10 | |||
@@ -269,12 +271,28 bool SpectrogramParserHelper::checkProperties() | |||||
269 | minBands.begin(), minBands.end(), maxBands.begin(), std::back_inserter(m_YAxisData), |
|
271 | minBands.begin(), minBands.end(), maxBands.begin(), std::back_inserter(m_YAxisData), | |
270 | [](const auto &minValue, const auto &maxValue) { return (minValue + maxValue) / 2.; }); |
|
272 | [](const auto &minValue, const auto &maxValue) { return (minValue + maxValue) / 2.; }); | |
271 |
|
273 | |||
|
274 | // Generates values indexes, i.e. the order in which each value will be retrieved (in ascending | |||
|
275 | // order of the associated bands) | |||
|
276 | m_ValuesIndexes = SortUtils::sortPermutation(m_YAxisData, std::less<double>()); | |||
|
277 | ||||
|
278 | // Sorts y-axis data accoding to the ascending order | |||
|
279 | m_YAxisData = SortUtils::sort(m_YAxisData, 1, m_ValuesIndexes); | |||
|
280 | ||||
|
281 | // Sets fill value | |||
|
282 | m_FillValue = m_Properties.value(FILL_VALUE_PROPERTY).value<double>(); | |||
|
283 | ||||
|
284 | /// @todo: handle min/max samplings? | |||
|
285 | ||||
272 | return true; |
|
286 | return true; | |
273 | } |
|
287 | } | |
274 |
|
288 | |||
275 | std::shared_ptr<IDataSeries> SpectrogramParserHelper::createSeries() |
|
289 | std::shared_ptr<IDataSeries> SpectrogramParserHelper::createSeries() | |
276 | { |
|
290 | { | |
277 | /// @todo ALX |
|
291 | return std::make_shared<SpectrogramSeries>( | |
|
292 | std::move(m_XAxisData), std::move(m_YAxisData), std::move(m_ValuesData), | |||
|
293 | Unit{"t", true}, // x-axis unit is always a time unit | |||
|
294 | m_Properties.value(Y_AXIS_UNIT_PROPERTY).value<Unit>(), | |||
|
295 | m_Properties.value(VALUES_UNIT_PROPERTY).value<Unit>()); | |||
278 | } |
|
296 | } | |
279 |
|
297 | |||
280 | void SpectrogramParserHelper::readPropertyLine(const QString &line) |
|
298 | void SpectrogramParserHelper::readPropertyLine(const QString &line) | |
@@ -329,7 +347,7 void SpectrogramParserHelper::readPropertyLine(const QString &line) | |||||
329 |
|
347 | |||
330 | void SpectrogramParserHelper::readResultLine(const QString &line) |
|
348 | void SpectrogramParserHelper::readResultLine(const QString &line) | |
331 | { |
|
349 | { | |
332 | /// @todo ALX |
|
350 | tryReadResult(m_XAxisData, m_ValuesData, line, m_ValuesIndexes, m_FillValue); | |
333 | } |
|
351 | } | |
334 |
|
352 | |||
335 | // ////////////////// // |
|
353 | // ////////////////// // |
General Comments 0
You need to be logged in to leave comments.
Login now