Skip to content

Commit

Permalink
h5OIMReader: Fix issues reading hdf based OIM files
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Jackson <mike.jackson@bluequartz.net>
  • Loading branch information
imikejackson committed Mar 24, 2023
1 parent e348384 commit b3f4de3
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 48 deletions.
52 changes: 19 additions & 33 deletions Source/EbsdLib/IO/TSL/H5OIMReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,20 @@ int H5OIMReader::readHeader(hid_t parId)
ReadH5EbsdHeaderData<H5OIMReader, int, AngHeaderIntType>(this, EbsdLib::Ang::nColumns, gid, m_HeaderMap);
ReadH5EbsdHeaderData<H5OIMReader, int, AngHeaderIntType>(this, EbsdLib::Ang::nRows, gid, m_HeaderMap);

{
AngHeaderIntType::Pointer intValuePtr = std::dynamic_pointer_cast<AngHeaderIntType>(m_HeaderMap[EbsdLib::Ang::nColumns]);
setNumOddCols(intValuePtr->getValue());
setNumEvenCols(intValuePtr->getValue());

intValuePtr = std::dynamic_pointer_cast<AngHeaderIntType>(m_HeaderMap[EbsdLib::Ang::nRows]);
setNumRows(intValuePtr->getValue());

AngHeaderFloatType::Pointer floatValuePtr = std::dynamic_pointer_cast<AngHeaderFloatType>(m_HeaderMap[EbsdLib::Ang::StepX]);
setXStep(floatValuePtr->getValue());
floatValuePtr = std::dynamic_pointer_cast<AngHeaderFloatType>(m_HeaderMap[EbsdLib::Ang::StepY]);
setYStep(floatValuePtr->getValue());
}

HDF_ERROR_HANDLER_OFF
int value = 0;
if(H5Lite::datasetExists(gid, EbsdLib::Ang::PatternWidth))
Expand All @@ -369,6 +383,10 @@ int H5OIMReader::readHeader(hid_t parId)

// Version 7/8
ReadH5EbsdHeaderStringData<H5OIMReader, std::string, AngStringHeaderEntry>(this, EbsdLib::Ang::GridType, gid, m_HeaderMap);
{
AngStringHeaderEntry::Pointer strValuePtr = std::dynamic_pointer_cast<AngStringHeaderEntry>(m_HeaderMap[EbsdLib::Ang::GridType]);
setGrid(strValuePtr->getValue());
}

// Version 7 Only
if(m_OIMVersion.find(EbsdLib::H5OIM::OIMAnalysisVersion7) != std::string::npos)
Expand Down Expand Up @@ -524,7 +542,7 @@ int H5OIMReader::readData(hid_t parId)

std::string grid = getGrid();

size_t nColumns = getNumColumns();
size_t nColumns = getNumOddCols();
size_t nRows = getNumRows();

if(nRows < 1)
Expand Down Expand Up @@ -650,38 +668,6 @@ void H5OIMReader::readAllArrays(bool b)
m_ReadAllArrays = b;
}

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
int H5OIMReader::getXDimension()
{
return getNumColumns();
}

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void H5OIMReader::setXDimension(int xdim)
{
setNumColumns(xdim);
}

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
int H5OIMReader::getYDimension()
{
return getNumRows();
}

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void H5OIMReader::setYDimension(int ydim)
{
setNumRows(ydim);
}

// -----------------------------------------------------------------------------
H5OIMReader::Pointer H5OIMReader::NullPointer()
{
Expand Down
15 changes: 0 additions & 15 deletions Source/EbsdLib/IO/TSL/H5OIMReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,16 +128,6 @@ class EbsdLib_EXPORT H5OIMReader : public AngReader

EBSD_INSTANCE_2DVECTOR_PROPERTY(int, PatternDims)

EBSDHEADER_INSTANCE_PROPERTY(AngHeaderEntry<int>, int, NumColumns, EbsdLib::Ang::nColumns)

EBSDHEADER_INSTANCE_PROPERTY(AngHeaderEntry<int>, int, NumRows, EbsdLib::Ang::nRows)

EBSDHEADER_INSTANCE_PROPERTY(AngHeaderEntry<float>, float, XStep, EbsdLib::Ang::StepX)

EBSDHEADER_INSTANCE_PROPERTY(AngHeaderEntry<float>, float, YStep, EbsdLib::Ang::StepY)

EBSDHEADER_INSTANCE_PROPERTY(AngStringHeaderEntry, std::string, Grid, EbsdLib::Ang::GridType)

EBSDHEADER_INSTANCE_PROPERTY(AngHeaderEntry<int>, int, PatternWidth, EbsdLib::Ang::PatternWidth)

EBSDHEADER_INSTANCE_PROPERTY(AngHeaderEntry<int>, int, PatternHeight, EbsdLib::Ang::PatternHeight)
Expand Down Expand Up @@ -186,11 +176,6 @@ class EbsdLib_EXPORT H5OIMReader : public AngReader
*/
void readAllArrays(bool b);

int getXDimension() override;
void setXDimension(int xdim) override;
int getYDimension() override;
void setYDimension(int ydim) override;

protected:
H5OIMReader();

Expand Down

0 comments on commit b3f4de3

Please sign in to comment.