Parser新采集脚本对应。
This commit is contained in:
@@ -83,7 +83,7 @@ void MatlabCreatorPrivate::setDirectoryPath(const std::string& aDirectoryPath)
|
||||
mFileList = FileListHelper::getFileList(mDirectoryPath);
|
||||
}
|
||||
|
||||
bool MatlabCreatorPrivate::createKITMat()
|
||||
bool MatlabCreatorPrivate::createKITMat(const std::string& aOutputPath)
|
||||
{
|
||||
progress = 0;
|
||||
if(mFileList.size() == 0)
|
||||
@@ -108,33 +108,33 @@ bool MatlabCreatorPrivate::createKITMat()
|
||||
unsigned int tasNum = 0;
|
||||
std::vector<std::shared_ptr<std::thread>> threads(static_cast<size_t>(threadCount));
|
||||
|
||||
std::string dirPath = mDirectoryPath + "_mat";
|
||||
std::string dirPath = aOutputPath;
|
||||
DirHelper dir;
|
||||
if(!dir.exists(dirPath))
|
||||
{
|
||||
dir.mkdir(dirPath);
|
||||
}
|
||||
|
||||
// for(unsigned int i=0;i<threadCount;++i)
|
||||
// {
|
||||
// if(i == threadRemainder && threadRemainder!=0)
|
||||
// {
|
||||
// --tasOffSet;
|
||||
// }
|
||||
// threads[i] = std::shared_ptr<std::thread>(new std::thread(&MatlabCreatorPrivate::createKITMatInThread, this, parser->clone(), tasNum, tasOffSet));
|
||||
// tasNum += tasOffSet;
|
||||
// }
|
||||
// for(unsigned int i=0; i< threadCount; ++i)
|
||||
// {
|
||||
// threads[i]->join();
|
||||
// }
|
||||
for(unsigned int i=0;i<threadCount;++i)
|
||||
{
|
||||
if(i == threadRemainder && threadRemainder!=0)
|
||||
{
|
||||
--tasOffSet;
|
||||
}
|
||||
threads[i] = std::shared_ptr<std::thread>(new std::thread(&MatlabCreatorPrivate::createKITMatInThread, this, parser->clone(), tasNum, tasOffSet, dirPath));
|
||||
tasNum += tasOffSet;
|
||||
}
|
||||
for(unsigned int i=0; i< threadCount; ++i)
|
||||
{
|
||||
threads[i]->join();
|
||||
}
|
||||
createCEMat(parser,dirPath);
|
||||
createInfoMat(parser,dirPath);
|
||||
createPatDataMat(parser,dirPath);
|
||||
createTasTempMat(parser,dirPath);
|
||||
createJumoTempMat(parser,dirPath);
|
||||
createMovementsMat(parser,dirPath);
|
||||
//createCEMeasuredMat(parser,dirPath);
|
||||
createCEMeasuredMat(parser,dirPath);
|
||||
createTasTemCompMat(parser,dirPath);
|
||||
createMeasurementRotationMat(parser,dirPath);
|
||||
|
||||
@@ -142,9 +142,9 @@ bool MatlabCreatorPrivate::createKITMat()
|
||||
return true;
|
||||
}
|
||||
|
||||
void MatlabCreatorPrivate::createKITMatInThread(std::shared_ptr<Parser> aParser, unsigned short aStartTasNum,unsigned short aTasCount)
|
||||
void MatlabCreatorPrivate::createKITMatInThread(std::shared_ptr<Parser> aParser, unsigned short aStartTasNum,unsigned short aTasCount, const std::string& aOutputPath)
|
||||
{
|
||||
std::string dirPath = mDirectoryPath + "_mat";
|
||||
std::string dirPath = aOutputPath;
|
||||
DirHelper dir;
|
||||
ShotList* shotList = aParser->getShotList().get();
|
||||
for(unsigned short t=aStartTasNum;t<aStartTasNum+aTasCount;++t)
|
||||
@@ -201,11 +201,11 @@ void MatlabCreatorPrivate::createEmitterMat(std::shared_ptr<Parser> aParser,cons
|
||||
ReceiverIndicesPointer receiverIndicesPointer = aParser->getMetaData().getReceiverIndices();
|
||||
size_t receiverIndicesDims[2] = {receiverIndicesPointer.getLength(),1};
|
||||
double* receiverIndicesData = new double[receiverIndicesPointer.getLength()];
|
||||
std::copy(receiverIndicesPointer.getArray().get(),receiverIndicesPointer.getArray().get() + receiverIndicesPointer.getLength(), receiverIndicesData);
|
||||
std::copy(receiverIndicesPointer.get(),receiverIndicesPointer.get() + receiverIndicesPointer.getLength(), receiverIndicesData);
|
||||
TasIndicesPointer tasIndicesPointer = aParser->getMetaData().getTasIndices();
|
||||
size_t tasIndicesDims[2] = {tasIndicesPointer.getLength(),1};
|
||||
double* tasIndicesData = new double[tasIndicesPointer.getLength()];
|
||||
std::copy(tasIndicesPointer.getArray().get(),tasIndicesPointer.getArray().get() + tasIndicesPointer.getLength(), tasIndicesData);
|
||||
std::copy(tasIndicesPointer.get(),tasIndicesPointer.get() + tasIndicesPointer.getLength(), tasIndicesData);
|
||||
mat_t* matfp = nullptr;
|
||||
matfp = Mat_CreateVer(aFileName.c_str(),nullptr,MAT_FT_DEFAULT);
|
||||
if ( nullptr == matfp )
|
||||
@@ -299,7 +299,7 @@ void MatlabCreatorPrivate::createCEMat(std::shared_ptr<Parser> aParser, const st
|
||||
size_t ceOffSetDims[2] = {1,1};
|
||||
double ceSf = ceData.getCE_SF();
|
||||
double ceOffSet = ceData.getCEOffset();
|
||||
ceVar = Mat_VarCreate("CE",MAT_C_DOUBLE,MAT_T_UINT16,2,ceDims,ce.getArray().get(),0);
|
||||
ceVar = Mat_VarCreate("CE",MAT_C_DOUBLE,MAT_T_UINT16,2,ceDims,ce.get(),0);
|
||||
ceSfVar = Mat_VarCreate("CE_SF",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceSfDims,&ceSf,0);
|
||||
ceOffSetVar = Mat_VarCreate("CEOffset",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceOffSetDims,&ceOffSet,0);
|
||||
Mat_VarWrite(matfp,ceVar,MAT_COMPRESSION_NONE);
|
||||
@@ -332,7 +332,7 @@ void MatlabCreatorPrivate::createInfoMat(std::shared_ptr<Parser> aParser, const
|
||||
std::shared_ptr<ShotList> shotList = aParser->getShotList();
|
||||
ShotListArray shotListArray = shotList->getShotListArray();
|
||||
size_t shotListDims[2] ={shotListArray.getLength()/4,4};
|
||||
matvar_t* shotListVar = Mat_VarCreate("shotlist",MAT_C_DOUBLE,MAT_T_DOUBLE,2,shotListDims,shotListArray.getArray().get(),0);
|
||||
matvar_t* shotListVar = Mat_VarCreate("shotlist",MAT_C_DOUBLE,MAT_T_DOUBLE,2,shotListDims,shotListArray.get(),0);
|
||||
Mat_VarSetStructFieldByName(structVar, "shotlist", 0, shotListVar);
|
||||
//SampleNumber
|
||||
MetaData metaData = aParser->getMetaData();
|
||||
@@ -421,7 +421,7 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
//receiverIndices
|
||||
ReceiverIndicesPointer receiverIndices = metaData.getReceiverIndices();
|
||||
double* writeDataOfReceiverIndices = new double[receiverIndices.getLength()];
|
||||
std::copy(receiverIndices.getArray().get(), receiverIndices.getArray().get() + receiverIndices.getLength(), writeDataOfReceiverIndices);
|
||||
std::copy(receiverIndices.get(), receiverIndices.get() + receiverIndices.getLength(), writeDataOfReceiverIndices);
|
||||
size_t receiverIndicesDims[2] ={receiverIndices.getLength(),1};
|
||||
matvar_t* receiverIndicesVar = Mat_VarCreate("receiverIndices",MAT_C_DOUBLE,MAT_T_DOUBLE,2,receiverIndicesDims,writeDataOfReceiverIndices,0);
|
||||
delete[] writeDataOfReceiverIndices;
|
||||
@@ -429,7 +429,7 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
//TASIndices
|
||||
TasIndicesPointer tasIndices = metaData.getTasIndices();
|
||||
double* writeDataOfTasIndices = new double[tasIndices.getLength()];
|
||||
std::copy(tasIndices.getArray().get(), tasIndices.getArray().get() + tasIndices.getLength(), writeDataOfTasIndices);
|
||||
std::copy(tasIndices.get(), tasIndices.get() + tasIndices.getLength(), writeDataOfTasIndices);
|
||||
size_t tasIndicesDims[2] ={tasIndices.getLength(),1};
|
||||
matvar_t* tasIndicesVar = Mat_VarCreate("TASIndices",MAT_C_DOUBLE,MAT_T_DOUBLE,2,tasIndicesDims,writeDataOfTasIndices,0);
|
||||
delete[] writeDataOfTasIndices;
|
||||
@@ -486,7 +486,7 @@ void MatlabCreatorPrivate::createJumoTempMat(std::shared_ptr<Parser> aParser, co
|
||||
JumoTemperaturePointer jumoTemperature1 = temperatureData.getJumoTemperature1();
|
||||
unsigned long long jumoLength = jumoTemperature1.getLength();
|
||||
double* writeData = new double[jumoLength];
|
||||
std::copy(jumoTemperature1.getArray().get(), jumoTemperature1.getArray().get() + jumoLength, writeData);
|
||||
std::copy(jumoTemperature1.get(), jumoTemperature1.get() + jumoLength, writeData);
|
||||
size_t jumoTemperature1Dims[2] ={1,jumoTemperature1.getLength()};
|
||||
matvar_t* jumoTemperature1Var = Mat_VarCreate("JumoTemperature1",MAT_C_DOUBLE,MAT_T_DOUBLE,2,jumoTemperature1Dims,writeData,0);
|
||||
delete[] writeData;
|
||||
@@ -495,7 +495,7 @@ void MatlabCreatorPrivate::createJumoTempMat(std::shared_ptr<Parser> aParser, co
|
||||
JumoTemperaturePointer jumoTemperature2 = temperatureData.getJumoTemperature2();
|
||||
jumoLength = jumoTemperature2.getLength();
|
||||
writeData = new double[jumoLength];
|
||||
std::copy(jumoTemperature2.getArray().get(), jumoTemperature2.getArray().get() + jumoLength, writeData);
|
||||
std::copy(jumoTemperature2.get(), jumoTemperature2.get() + jumoLength, writeData);
|
||||
size_t jumoTemperature2Dims[2] ={1,jumoTemperature2.getLength()};
|
||||
matvar_t* jumoTemperature2Var = Mat_VarCreate("JumoTemperature2",MAT_C_DOUBLE,MAT_T_DOUBLE,2,jumoTemperature2Dims,writeData,0);
|
||||
delete[] writeData;
|
||||
@@ -504,7 +504,7 @@ void MatlabCreatorPrivate::createJumoTempMat(std::shared_ptr<Parser> aParser, co
|
||||
JumoTemperaturePointer jumoTemperature3 = temperatureData.getJumoTemperature3();
|
||||
jumoLength = jumoTemperature3.getLength();
|
||||
writeData = new double[jumoLength];
|
||||
std::copy(jumoTemperature3.getArray().get(), jumoTemperature3.getArray().get() + jumoLength, writeData);
|
||||
std::copy(jumoTemperature3.get(), jumoTemperature3.get() + jumoLength, writeData);
|
||||
size_t jumoTemperature3Dims[2] ={1,jumoTemperature3.getLength()};
|
||||
matvar_t* jumoTemperature3Var = Mat_VarCreate("JumoTemperature3",MAT_C_DOUBLE,MAT_T_DOUBLE,2,jumoTemperature3Dims,writeData,0);
|
||||
delete[] writeData;
|
||||
@@ -513,7 +513,7 @@ void MatlabCreatorPrivate::createJumoTempMat(std::shared_ptr<Parser> aParser, co
|
||||
JumoTemperaturePointer jumoTemperature4 = temperatureData.getJumoTemperature4();
|
||||
jumoLength = jumoTemperature4.getLength();
|
||||
writeData = new double[jumoLength];
|
||||
std::copy(jumoTemperature4.getArray().get(), jumoTemperature4.getArray().get() + jumoLength, writeData);
|
||||
std::copy(jumoTemperature4.get(), jumoTemperature4.get() + jumoLength, writeData);
|
||||
size_t jumoTemperature4Dims[2] ={1,jumoTemperature4.getLength()};
|
||||
matvar_t* jumoTemperature4Var = Mat_VarCreate("JumoTemperature4",MAT_C_DOUBLE,MAT_T_DOUBLE,2,jumoTemperature4Dims,writeData,0);
|
||||
delete[] writeData;
|
||||
@@ -574,7 +574,7 @@ void MatlabCreatorPrivate::createTasTempMat(std::shared_ptr<Parser> aParser, con
|
||||
double* tempData = writeData;
|
||||
for(unsigned int i=0;i<temperature.size();++i)
|
||||
{
|
||||
std::copy(temperature.at(i).getArray().get(), temperature.at(i).getArray().get() + temperature.at(i).getLength(), tempData);
|
||||
std::copy(temperature.at(i).get(), temperature.at(i).get() + temperature.at(i).getLength(), tempData);
|
||||
tempData+=temperature.at(i).getLength();
|
||||
}
|
||||
matvar_t* tasTemperatureVar = Mat_VarCreate("TASTemperature",MAT_C_DOUBLE,MAT_T_DOUBLE,3,tasTemperatureDims,writeData,0);
|
||||
@@ -597,7 +597,7 @@ void MatlabCreatorPrivate::createTasTempMat(std::shared_ptr<Parser> aParser, con
|
||||
{
|
||||
for(unsigned int j=0;j<temperatureRawData.at(i).size();++j)
|
||||
{
|
||||
std::copy(temperatureRawData.at(i).at(j).getArray().get(), temperatureRawData.at(i).at(j).getArray().get() + temperatureRawData.at(i).at(j).getLength(), tempData);
|
||||
std::copy(temperatureRawData.at(i).at(j).get(), temperatureRawData.at(i).at(j).get() + temperatureRawData.at(i).at(j).getLength(), tempData);
|
||||
tempData+=temperatureRawData.at(i).at(j).getLength();
|
||||
}
|
||||
}
|
||||
@@ -637,7 +637,7 @@ void MatlabCreatorPrivate::createTasTemCompMat(std::shared_ptr<Parser> aParser,
|
||||
double* tempData = writeData;
|
||||
for(unsigned int i=0;i<temperatureComp.size();++i)
|
||||
{
|
||||
std::copy(temperatureComp.at(i).getArray().get(), temperatureComp.at(i).getArray().get() + temperatureComp.at(i).getLength(), tempData);
|
||||
std::copy(temperatureComp.at(i).get(), temperatureComp.at(i).get() + temperatureComp.at(i).getLength(), tempData);
|
||||
tempData+=temperatureComp.at(i).getLength();
|
||||
}
|
||||
matvar_t* tasTemperatureVar = Mat_VarCreate("TASTemperature",MAT_C_DOUBLE,MAT_T_DOUBLE,3,tasTemperatureCompDims,writeData,0);
|
||||
@@ -678,7 +678,7 @@ void MatlabCreatorPrivate::createMeasurementRotationMat(std::shared_ptr<Parser>
|
||||
unsigned long long rotationMatrixLength = rotationMatrix.getLength();
|
||||
size_t rotationMatrixDims[2] ={4,4};
|
||||
double* writeData = new double[rotationMatrixLength];
|
||||
std::copy(rotationMatrix.getArray().get(),rotationMatrix.getArray().get() + rotationMatrixLength,writeData);
|
||||
std::copy(rotationMatrix.get(),rotationMatrix.get() + rotationMatrixLength,writeData);
|
||||
matvar_t* rotationMatrixVar = Mat_VarCreate("rotationMatrix",MAT_C_DOUBLE,MAT_T_DOUBLE,2,rotationMatrixDims,writeData,0);
|
||||
delete[] writeData;
|
||||
|
||||
@@ -716,16 +716,16 @@ void MatlabCreatorPrivate::createMovementsMat(std::shared_ptr<Parser> aParser, c
|
||||
MovementsListRealPointer movementsListReal = aParser->getMovementData().getMovementsListReal();
|
||||
unsigned long long movementsListRealLength = movementsListReal.getLength();
|
||||
unsigned short aperturePositionNum = metaData.getAperturePositionNumber();
|
||||
size_t movementsListRealDims[2] ={aperturePositionNum,aperturePositionNum};
|
||||
size_t movementsListRealDims[2] ={aperturePositionNum,2}; //2 means heigh and rotation;
|
||||
double* writeData = new double[movementsListRealLength];
|
||||
std::copy(movementsListReal.getArray().get(),movementsListReal.getArray().get()+movementsListRealLength,writeData);
|
||||
std::copy(movementsListReal.get(),movementsListReal.get()+movementsListRealLength,writeData);
|
||||
matvar_t* movementsListRealVar = Mat_VarCreate("MovementsListreal",MAT_C_DOUBLE,MAT_T_DOUBLE,2,movementsListRealDims,writeData,0);
|
||||
delete[] writeData;
|
||||
|
||||
//TimeStamps
|
||||
TimeStampsPointer timeStamps = metaData.getTimeStamps();
|
||||
size_t timeStampsDims[2] ={1,timeStamps.getLength()};
|
||||
matvar_t* timeStampsVar = Mat_VarCreate("TimeStamps",MAT_C_DOUBLE,MAT_T_DOUBLE,2,timeStampsDims,timeStamps.getArray().get(),0);
|
||||
matvar_t* timeStampsVar = Mat_VarCreate("TimeStamps",MAT_C_DOUBLE,MAT_T_DOUBLE,2,timeStampsDims,timeStamps.get(),0);
|
||||
|
||||
//MeasurementID
|
||||
std::string measurementID = metaData.getMeasurementID();
|
||||
|
||||
Reference in New Issue
Block a user