Skip to content

Commit b14fcea

Browse files
nyoungbqimikejackson
authored andcommitted
complete baseline algorithms [compiling, uncomplete]
1 parent 299561b commit b14fcea

File tree

7 files changed

+228
-58
lines changed

7 files changed

+228
-58
lines changed

src/Plugins/OrientationAnalysis/src/OrientationAnalysis/Filters/Algorithms/ReadH5EspritData.cpp

Lines changed: 98 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ Result<> ReadH5EspritData::operator()()
2626
// -----------------------------------------------------------------------------
2727
Result<> ReadH5EspritData::copyRawEbsdData(int index)
2828
{
29-
const auto& imageGeom = m_DataStructure.getDataRefAs<ImageGeom>(m_InputValues->ImageGeometryPath);
29+
const DataPath imagePath(m_InputValues->ImageGeometryPath);
30+
const DataPath cellAMPath = imagePath.createChildPath(m_InputValues->CellAttributeMatrixName);
31+
32+
const auto& imageGeom = m_DataStructure.getDataRefAs<ImageGeom>(imagePath);
3033
const usize totalPoints = imageGeom.getNumXCells() * imageGeom.getNumYCells();
3134
const usize offset = index * totalPoints;
3235

@@ -35,28 +38,28 @@ Result<> ReadH5EspritData::copyRawEbsdData(int index)
3538
const auto* phi1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::phi1));
3639
const auto* phi = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::PHI));
3740
const auto* phi2 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::phi2));
38-
auto& eulerAngles = m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::Esprit::EulerAngles));
41+
auto& eulerAngles = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Esprit::EulerAngles));
3942

4043
const auto* m1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::MAD));
41-
auto& mad = m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::MAD));
44+
auto& mad = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::MAD));
4245

4346
const auto* nIndBands = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::NIndexedBands));
44-
auto& nIndexBands = m_DataStructure.getDataRefAs<Int32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::NIndexedBands));
47+
auto& nIndexBands = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::NIndexedBands));
4548

4649
const auto* p1 = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::Phase));
47-
auto& phase = m_DataStructure.getDataRefAs<Int32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::Phase));
50+
auto& phase = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::Phase));
4851

4952
const auto* radBandCnt = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::RadonBandCount));
50-
auto& radonBandCount = m_DataStructure.getDataRefAs<Int32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::RadonBandCount));
53+
auto& radonBandCount = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::RadonBandCount));
5154

5255
const auto* radQual = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::RadonQuality));
53-
auto& radonQuality = m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::RadonQuality));
56+
auto& radonQuality = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::RadonQuality));
5457

5558
const auto* xBm = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::XBEAM));
56-
auto& xBeam = m_DataStructure.getDataRefAs<Int32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::XBEAM));
59+
auto& xBeam = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::XBEAM));
5760

5861
const auto* yBm = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::YBEAM));
59-
auto& yBeam = m_DataStructure.getDataRefAs<Int32Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::YBEAM));
62+
auto& yBeam = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::YBEAM));
6063

6164
for(size_t i = 0; i < totalPoints; i++)
6265
{
@@ -91,7 +94,7 @@ Result<> ReadH5EspritData::copyRawEbsdData(int index)
9194
std::vector<usize> pDimsV(2);
9295
pDimsV[0] = pDims[0];
9396
pDimsV[1] = pDims[1];
94-
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(m_InputValues->CellAttributeMatrixPath.createChildPath(EbsdLib::H5Esprit::RawPatterns));
97+
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::RawPatterns));
9598
const usize numComponents = patternData.getNumberOfComponents();
9699
for(usize i = 0; i < totalPoints; i++)
97100
{
@@ -105,3 +108,88 @@ Result<> ReadH5EspritData::copyRawEbsdData(int index)
105108

106109
return {};
107110
}
111+
112+
// -----------------------------------------------------------------------------
113+
Result<> ReadH5EspritData::copyRawEbsdData(const std::string& scanName)
114+
{
115+
const DataPath imagePath({scanName});
116+
const DataPath cellAMPath = imagePath.createChildPath(m_InputValues->CellAttributeMatrixName);
117+
118+
const auto& imageGeom = m_DataStructure.getDataRefAs<ImageGeom>(imagePath);
119+
const usize totalPoints = imageGeom.getNumXCells() * imageGeom.getNumYCells();
120+
121+
{
122+
const float32 degToRad = m_EspritInputValues->DegreesToRadians ? Constants::k_PiOver180F : 1.0f;
123+
const auto* phi1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::phi1));
124+
const auto* phi = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::PHI));
125+
const auto* phi2 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::phi2));
126+
auto& eulerAngles = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Esprit::EulerAngles));
127+
128+
const auto* m1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::MAD));
129+
auto& mad = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::MAD));
130+
131+
const auto* nIndBands = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::NIndexedBands));
132+
auto& nIndexBands = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::NIndexedBands));
133+
134+
const auto* p1 = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::Phase));
135+
auto& phase = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::Phase));
136+
137+
const auto* radBandCnt = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::RadonBandCount));
138+
auto& radonBandCount = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::RadonBandCount));
139+
140+
const auto* radQual = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::RadonQuality));
141+
auto& radonQuality = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::RadonQuality));
142+
143+
const auto* xBm = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::XBEAM));
144+
auto& xBeam = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::XBEAM));
145+
146+
const auto* yBm = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::H5Esprit::YBEAM));
147+
auto& yBeam = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::YBEAM));
148+
149+
for(size_t i = 0; i < totalPoints; i++)
150+
{
151+
// Condense the Euler Angles from 3 separate arrays into a single 1x3 array
152+
eulerAngles[3 * i] = phi1[i] * degToRad;
153+
eulerAngles[3 * i + 1] = phi[i] * degToRad;
154+
eulerAngles[3 * i + 2] = phi2[i] * degToRad;
155+
156+
mad[i] = m1[i];
157+
158+
nIndexBands[i] = nIndBands[i];
159+
160+
phase[i] = p1[i];
161+
162+
radonBandCount[i] = radBandCnt[i];
163+
164+
radonQuality[i] = radQual[i];
165+
166+
xBeam[i] = xBm[i];
167+
168+
yBeam[i] = yBm[i];
169+
}
170+
}
171+
172+
if(m_InputValues->ReadPatternData)
173+
{
174+
const uint8* patternDataPtr = m_Reader->getPatternData();
175+
std::array<int32, 2> pDims = {{0, 0}};
176+
m_Reader->getPatternDims(pDims);
177+
if(pDims[0] != 0 && pDims[1] != 0)
178+
{
179+
std::vector<usize> pDimsV(2);
180+
pDimsV[0] = pDims[0];
181+
pDimsV[1] = pDims[1];
182+
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(cellAMPath.createChildPath(EbsdLib::H5Esprit::RawPatterns));
183+
const usize numComponents = patternData.getNumberOfComponents();
184+
for(usize i = 0; i < totalPoints; i++)
185+
{
186+
for(usize j = 0; j < numComponents; ++j)
187+
{
188+
patternData[numComponents * i + j] = patternDataPtr[numComponents * i + j];
189+
}
190+
}
191+
}
192+
}
193+
194+
return {};
195+
}

src/Plugins/OrientationAnalysis/src/OrientationAnalysis/Filters/Algorithms/ReadH5EspritData.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class ORIENTATIONANALYSIS_EXPORT ReadH5EspritData : public IEbsdOemReader<H5Espr
3434
Result<> operator()();
3535

3636
Result<> copyRawEbsdData(int index) override;
37+
Result<> copyRawEbsdData(const std::string& scanName) override;
3738

3839
private:
3940
const ReadH5EspritDataInputValues* m_EspritInputValues = nullptr;

src/Plugins/OrientationAnalysis/src/OrientationAnalysis/Filters/Algorithms/ReadH5OimData.cpp

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,35 @@ Result<> ReadH5OimData::operator()()
2323
// -----------------------------------------------------------------------------
2424
Result<> ReadH5OimData::copyRawEbsdData(int index)
2525
{
26-
const auto& imageGeom = m_DataStructure.getDataRefAs<ImageGeom>(m_InputValues->ImageGeometryPath);
26+
const DataPath imagePath(m_InputValues->ImageGeometryPath);
27+
const DataPath cellAMPath = imagePath.createChildPath(m_InputValues->CellAttributeMatrixName);
28+
29+
const auto& imageGeom = m_DataStructure.getDataRefAs<ImageGeom>(imagePath);
2730
const usize totalPoints = imageGeom.getNumXCells() * imageGeom.getNumYCells();
2831
const usize offset = index * totalPoints;
2932

3033
// Adjust the values of the 'phase' data to correct for invalid values
31-
auto& phases = m_DataStructure.getDataRefAs<Int32Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::AngFile::Phases));
34+
auto& phases = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::AngFile::Phases));
3235
auto* phasePtr = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::Ang::PhaseData));
3336

3437
const auto* phi1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Phi1));
3538
const auto* phi = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Phi));
3639
const auto* phi2 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Phi2));
3740
auto& eulerAngles =
38-
m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::AngFile::EulerAngles));
41+
m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::AngFile::EulerAngles));
3942

4043
const auto* imageQual = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::ImageQuality));
41-
auto& imageQuality = m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::ImageQuality));
44+
auto& imageQuality = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::ImageQuality));
4245

4346
const auto* confIndex = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::ConfidenceIndex));
4447
auto& confidenceIndex =
45-
m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::ConfidenceIndex));
48+
m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::ConfidenceIndex));
4649

4750
const auto* semSig = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::SEMSignal));
48-
auto& semSignal = m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::SEMSignal));
51+
auto& semSignal = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::SEMSignal));
4952

5053
const auto* f1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Fit));
51-
auto& fit = m_DataStructure.getDataRefAs<Float32Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::Fit));
54+
auto& fit = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::Fit));
5255

5356
for(size_t i = 0; i < totalPoints; i++)
5457
{
@@ -82,7 +85,7 @@ Result<> ReadH5OimData::copyRawEbsdData(int index)
8285
std::vector<usize> pDimsV(2);
8386
pDimsV[0] = pDims[0];
8487
pDimsV[1] = pDims[1];
85-
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(m_InputValues->ImageGeometryPath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::PatternData));
88+
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(cellAMPath.createChildPath(EbsdLib::Ang::PatternData));
8689
const usize numComponents = patternData.getNumberOfComponents();
8790
for(usize i = 0; i < totalPoints; i++)
8891
{
@@ -100,30 +103,32 @@ Result<> ReadH5OimData::copyRawEbsdData(int index)
100103
// -----------------------------------------------------------------------------
101104
Result<> ReadH5OimData::copyRawEbsdData(const std::string& scanName)
102105
{
103-
DataPath imagePath({scanName});
106+
const DataPath imagePath({scanName});
107+
const DataPath cellAMPath = imagePath.createChildPath(m_InputValues->CellAttributeMatrixName);
108+
104109
const auto& imageGeom = m_DataStructure.getDataRefAs<ImageGeom>(imagePath);
105110
const usize totalPoints = imageGeom.getNumXCells() * imageGeom.getNumYCells();
106111

107112
// Adjust the values of the 'phase' data to correct for invalid values
108-
auto& phases = m_DataStructure.getDataRefAs<Int32Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::AngFile::Phases));
113+
auto& phases = m_DataStructure.getDataRefAs<Int32Array>(cellAMPath.createChildPath(EbsdLib::AngFile::Phases));
109114
auto* phasePtr = reinterpret_cast<int32*>(m_Reader->getPointerByName(EbsdLib::Ang::PhaseData));
110115

111116
const auto* phi1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Phi1));
112117
const auto* phi = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Phi));
113118
const auto* phi2 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Phi2));
114-
auto& eulerAngles = m_DataStructure.getDataRefAs<Float32Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::AngFile::EulerAngles));
119+
auto& eulerAngles = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::AngFile::EulerAngles));
115120

116121
const auto* imageQual = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::ImageQuality));
117-
auto& imageQuality = m_DataStructure.getDataRefAs<Float32Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::ImageQuality));
122+
auto& imageQuality = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::ImageQuality));
118123

119124
const auto* confIndex = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::ConfidenceIndex));
120-
auto& confidenceIndex = m_DataStructure.getDataRefAs<Float32Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::ConfidenceIndex));
125+
auto& confidenceIndex = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::ConfidenceIndex));
121126

122127
const auto* semSig = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::SEMSignal));
123-
auto& semSignal = m_DataStructure.getDataRefAs<Float32Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::SEMSignal));
128+
auto& semSignal = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::SEMSignal));
124129

125130
const auto* f1 = reinterpret_cast<float32*>(m_Reader->getPointerByName(EbsdLib::Ang::Fit));
126-
auto& fit = m_DataStructure.getDataRefAs<Float32Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::Fit));
131+
auto& fit = m_DataStructure.getDataRefAs<Float32Array>(cellAMPath.createChildPath(EbsdLib::Ang::Fit));
127132

128133
for(usize i = 0; i < totalPoints; i++)
129134
{
@@ -157,7 +162,7 @@ Result<> ReadH5OimData::copyRawEbsdData(const std::string& scanName)
157162
std::vector<usize> pDimsV(2);
158163
pDimsV[0] = pDims[0];
159164
pDimsV[1] = pDims[1];
160-
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(imagePath.createChildPath(m_InputValues->CellAttributeMatrixName).createChildPath(EbsdLib::Ang::PatternData));
165+
auto& patternData = m_DataStructure.getDataRefAs<UInt8Array>(cellAMPath.createChildPath(EbsdLib::Ang::PatternData));
161166
const usize numComponents = patternData.getNumberOfComponents();
162167
for(usize i = 0; i < totalPoints; i++)
163168
{

0 commit comments

Comments
 (0)