Fix checkTofDetections bug.

This commit is contained in:
sunwen
2023-05-31 13:06:08 +08:00
parent a82b89966a
commit b663f2071d
3 changed files with 39 additions and 19 deletions

View File

@@ -7,6 +7,8 @@
#include "config/config.h"
#include "reflectionReconstruction/dataFilter.h"
#include "transmissionReconstruction/dataFilter/dataFilter.h"
#include "src/transmissionReconstruction/dataPreperation.h"
#include "src/common/getMeasurementMetaData.h"
@@ -71,21 +73,30 @@ TEST_F(DataFilter_Test, filterTransmissionAngle) {
EXPECT_DOUBLE_EQ(1.0,result.getData()[3]);
}
TEST_F(DataFilter_Test, checkTofDetections) {
double *dataA = new double[3]{-3.0e-07, -2.6e-06, -2.6e-06};
auto tofValues = Aurora::Matrix::fromRawData(dataA, 3, 1);
double *dataB = new double[3]{0.238, 0.249, 0.249};
auto dists = Aurora::Matrix::fromRawData(dataB, 3, 1);
double *data3 = new double[3]{1476.35, 1476.28, 1476.28};
auto sosRef = Aurora::Matrix::fromRawData(data3, 3, 1);
double minSpeedOfSound = 1400;
double maxSpeedOfSound = 1650;
auto result = Recon::checkTofDetections(tofValues, dists, sosRef, minSpeedOfSound,maxSpeedOfSound);
EXPECT_EQ(3,result.getDataSize());
EXPECT_DOUBLE_AE(1479.1025,result.getData()[0]);
EXPECT_DOUBLE_AE(1499.3931,result.getData()[1]);
EXPECT_DOUBLE_AE(1499.3931,result.getData()[2]);
TEST_F(DataFilter_Test, checkTofDetections) {
MatlabReader m("/home/sun/testData/checkTofDetections.mat");
auto receiverList = m.read("receiverList");
auto senderList = m.read("senderList");
auto tofDataTotal = m.read("tofDataTotal");
auto waterTempList = m.read("waterTempList");
auto tofValues = m.read("tofValues");
auto valid = m.read("valid");
Aurora::Matrix dists = Recon::distanceBetweenTwoPoints(senderList, receiverList);
Aurora::Matrix sosRef = Recon::temperatureToSoundSpeed(waterTempList, "marczak");
auto result = Recon::checkTofDetections(tofDataTotal, dists, sosRef, Recon::transParams::minSpeedOfSound,Recon::transParams::maxSpeedOfSound);
for (size_t i = 0; i < result.valid.getDataSize(); i++)
{
EXPECT_DOUBLE_AE(valid.getData()[i],result.valid.getData()[i]) << " :"<<i;
}
for (size_t i = 0; i < result.tofValues.getDataSize(); i++)
{
EXPECT_DOUBLE_AE(tofValues.getData()[i],result.tofValues.getData()[i])<< " :"<<i;
}
int i = 0;
}
TEST_F(DataFilter_Test, calculateSnr) {