feat: Remove temperature dependensy.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "Function.h"
|
||||
#include "Function2D.h"
|
||||
|
||||
#include "Matrix.h"
|
||||
#include "Parser.h"
|
||||
#include "Data/MetaData.h"
|
||||
#include "Data/MovementData.h"
|
||||
@@ -16,6 +17,7 @@
|
||||
#include "ceMatchedFilterHandling.h"
|
||||
#include "ShotList/ShotList.h"
|
||||
#include "config/config.h"
|
||||
#include "temperatureCalculation/estimateSOSWater.h"
|
||||
|
||||
|
||||
using namespace Recon;
|
||||
@@ -148,110 +150,10 @@ Matrix Recon::temperatureToSoundSpeed(const Matrix& aTemperature, const std::str
|
||||
}
|
||||
|
||||
//已验证,完全正确
|
||||
TempInfo Recon::getTemperatureInfo(Parser* aParser, float aNumTas)
|
||||
TempInfo Recon::getTemperatureInfo(Parser* aParser, const CEInfo& aCEInfo)
|
||||
{
|
||||
TempInfo result;
|
||||
//jumoTemp
|
||||
JumoTemperaturePointer jumoTemp1 = aParser->getTemperatureData().getJumoTemperature1();
|
||||
JumoTemperaturePointer jumoTemp2 = aParser->getTemperatureData().getJumoTemperature1();
|
||||
JumoTemperaturePointer jumoTemp3 = aParser->getTemperatureData().getJumoTemperature1();
|
||||
JumoTemperaturePointer jumoTemp4 = aParser->getTemperatureData().getJumoTemperature1();
|
||||
int jumoTempNum = jumoTemp1.getLength();
|
||||
if(jumoTemp2.getLength() < jumoTempNum)
|
||||
{
|
||||
jumoTempNum = jumoTemp2.getLength();
|
||||
}
|
||||
|
||||
if(jumoTemp3.getLength() < jumoTempNum)
|
||||
{
|
||||
jumoTempNum = jumoTemp3.getLength();
|
||||
}
|
||||
|
||||
if(jumoTemp4.getLength() < jumoTempNum)
|
||||
{
|
||||
jumoTempNum = jumoTemp4.getLength();
|
||||
}
|
||||
|
||||
float* jumoTempData = Aurora::malloc(jumoTempNum * 4);
|
||||
for(int i=0; i<jumoTempNum; ++i)
|
||||
{
|
||||
jumoTempData[4*i] = jumoTemp1.get()[i];
|
||||
jumoTempData[4*i + 1] = jumoTemp2.get()[i];
|
||||
jumoTempData[4*i + 2] = jumoTemp3.get()[i];
|
||||
jumoTempData[4*i + 3] = jumoTemp4.get()[i];
|
||||
}
|
||||
result.jumoTemp = Aurora::Matrix::New(jumoTempData, 4, jumoTempNum);//输出
|
||||
bool tasTempUsed = false;
|
||||
|
||||
//Tas Temperature
|
||||
if(reconParams::useTASTempComp)
|
||||
{
|
||||
//todo TemperatureModel4D字段不存在
|
||||
// try
|
||||
// % load temp from files.tempTASComp (standard file, including the preprocessed/corrected temperature data)
|
||||
// % and extract infos, TemperatureModel4D and TASTemperature
|
||||
// TASTemp = loadTASTemperaturesProcessed(path, files.tempTASComp);
|
||||
|
||||
// % extract TemperatureModel4D
|
||||
// if isfield(TASTemp, 'TemperatureModel4D')
|
||||
// temp.TemperatureModel4D = TASTemp.TemperatureModel4D;
|
||||
// end
|
||||
|
||||
// % extract TASTemperatures
|
||||
// temp.TASTemperature = TASTemp.TASTemperature;
|
||||
// catch
|
||||
// tasTempCompUsed = 0;
|
||||
// end
|
||||
}
|
||||
|
||||
if (!tasTempUsed)
|
||||
{
|
||||
size_t tasTempLength = aParser->getTemperatureData().getTasTemperature()[0].getLength();
|
||||
float* fromTasTempData = aParser->getTemperatureData().getTasTemperature()[0].get();
|
||||
float* tasTempData = new float[tasTempLength];
|
||||
std::copy(fromTasTempData, fromTasTempData+ tasTempLength, tasTempData);
|
||||
Matrix tasTemp = Matrix::fromRawData(tasTempData, 2, tasTempLength / 2);
|
||||
|
||||
if (!reconParams::correctTASTemp || result.jumoTemp.isNan())
|
||||
{
|
||||
result.tasTemperature = tasTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
//todo JumoTemp都没有值
|
||||
// temp.TASTemperature(1, :, :) = correctTASTemperatures(temp2, temp.jumoTemp);
|
||||
|
||||
// catch ME
|
||||
|
||||
// % if tas temperatures not there
|
||||
// % take temperatures from calibrated sensors
|
||||
// % and use them for all TAS the same
|
||||
|
||||
// writeReconstructionLog(sprintf('%s: %s TAS temperatures approximated from calibrated reference sensors.', ME.identifier, ME.message), 3)
|
||||
|
||||
// if(~jumoAllNaN)
|
||||
// temp.TASTemperature = zeros(2, numTAS, size(temp.jumoTemp, 2));
|
||||
// temp.TASTemperature(1, :, :) = repmat(mean(temp.jumoTemp), size(temp.TASTemperature, 2), 1);
|
||||
// temp.TASTemperature(2, :, :) = repmat([1:size(temp.TASTemperature, 2)]', 1, size(temp.TASTemperature, 3));
|
||||
// else % worst case: no temperature data at all! cannot continue!
|
||||
// error([mfilename ':noTemperatureAvailable'],'No TAS and no Jumo temperature available! Cannot reconstruct!');
|
||||
// end
|
||||
|
||||
// end
|
||||
}
|
||||
}
|
||||
|
||||
if (result.jumoTemp.isNan())
|
||||
{
|
||||
result.expectedTemp = mean(result.tasTemperature(0,$,$).toMatrix(),FunctionDirection::Column,false);
|
||||
result.jumoTemp = result.expectedTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
result.expectedTemp = mean(result.jumoTemp,FunctionDirection::All,false);
|
||||
}
|
||||
result.expectedSOSWater = temperatureToSoundSpeed(result.expectedTemp , "marczak");
|
||||
|
||||
result.expectedSOSWater = estimateSOSWater(aParser,aCEInfo);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user