jfjoch_viewer: Show angle as current image angle + wedge
This commit is contained in:
@@ -723,9 +723,14 @@ std::optional<GoniometerAxis> JFJochHDF5Reader::ReadAxis(HDF5Object *file, const
|
||||
if (angle.size() < 2)
|
||||
return {};
|
||||
|
||||
std::vector<double> end = file->ReadOptVector<double>(dname + "_end");
|
||||
|
||||
double start = angle[0];
|
||||
double incr = angle[1] - angle[0];
|
||||
|
||||
HDF5DataSet dataset_end(*file, dname + "_end");
|
||||
std::vector<double> angle_end;
|
||||
|
||||
if (dataset.ReadAttrStr("transformation_type") != "rotation")
|
||||
return {};
|
||||
|
||||
@@ -735,8 +740,11 @@ std::optional<GoniometerAxis> JFJochHDF5Reader::ReadAxis(HDF5Object *file, const
|
||||
dname + " Vector must have 3 elements");
|
||||
|
||||
Coord axis(axis_vec[0], axis_vec[1], axis_vec[2]);
|
||||
GoniometerAxis g_axis(name, start, incr, axis, {});
|
||||
if (!end.empty())
|
||||
g_axis.ScreeningWedge(end[0] - angle[0]);
|
||||
|
||||
return GoniometerAxis(name, start, incr, axis, {});
|
||||
return g_axis;
|
||||
}
|
||||
|
||||
CompressedImage JFJochHDF5Reader::ReadCalibration(std::vector<uint8_t> &tmp, const std::string &name) const {
|
||||
|
||||
@@ -241,7 +241,7 @@ TEST_CASE("JFJochReader_Goniometer", "[HDF5][Full]") {
|
||||
x.BeamX_pxl(100).BeamY_pxl(200).DetectorDistance_mm(150)
|
||||
.IncidentEnergy_keV(WVL_1A_IN_KEV).PixelSigned(false).BitDepthImage(16)
|
||||
.FrameTime(std::chrono::microseconds(500), std::chrono::microseconds(10));
|
||||
x.Goniometer(GoniometerAxis("omega", 95, 0.1f, Coord(0,-1,0),{}));
|
||||
x.Goniometer(GoniometerAxis("omega", 95, 0.1f, Coord(0,-1,0),{}).ScreeningWedge(0.01f));
|
||||
|
||||
RegisterHDF5Filter();
|
||||
|
||||
@@ -275,7 +275,9 @@ TEST_CASE("JFJochReader_Goniometer", "[HDF5][Full]") {
|
||||
REQUIRE(dataset->experiment.GetGoniometer().has_value());
|
||||
|
||||
CHECK(dataset->experiment.GetGoniometer()->GetStart_deg() == 95.0);
|
||||
CHECK(fabsf(dataset->experiment.GetGoniometer()->GetIncrement_deg() - 0.1f) < 0.00001f);
|
||||
CHECK(dataset->experiment.GetGoniometer()->GetIncrement_deg() == Catch::Approx(0.1f).margin(0.00001f));
|
||||
CHECK(dataset->experiment.GetGoniometer()->GetWedge_deg() == Catch::Approx(0.01f).margin(0.00001f));
|
||||
|
||||
CHECK(dataset->experiment.GetGoniometer()->GetName() == "omega");
|
||||
CHECK(dataset->experiment.GetGoniometer()->GetAxis().x == 0);
|
||||
CHECK(dataset->experiment.GetGoniometer()->GetAxis().y == -1);
|
||||
|
||||
@@ -202,11 +202,12 @@ void JFJochViewerImageStatistics::loadImage(std::shared_ptr<const JFJochReaderIm
|
||||
|
||||
if (exp.GetGoniometer()) {
|
||||
rotation_angle_label->setText("Image angle:");
|
||||
rotation_angle->setText(QString("<b>%1°</b>")
|
||||
.arg(TrimZeros(exp.GetGoniometer()->GetIncrement_deg(), 3)));
|
||||
rotation_angle->setToolTip(QString("Start angle: <b>%1°</b><br/>This image: <b>%2°</b>")
|
||||
.arg(TrimZeros(exp.GetGoniometer()->GetStart_deg(), 3))
|
||||
rotation_angle->setText(QString("<b>%1° + %2°</b>")
|
||||
.arg(TrimZeros(exp.GetGoniometer()->GetAngle_deg(image->ImageData().number), 3))
|
||||
.arg(TrimZeros(exp.GetGoniometer()->GetWedge_deg(), 3)));
|
||||
rotation_angle->setToolTip(QString("Start angle: <b>%1°</b><br/>Increment: <b>%2°</b>")
|
||||
.arg(TrimZeros(exp.GetGoniometer()->GetStart_deg(), 3))
|
||||
.arg(TrimZeros(exp.GetGoniometer()->GetIncrement_deg(), 3))
|
||||
);
|
||||
} else if (exp.GetGridScan()) {
|
||||
rotation_angle_label->setText("Grid scan:");
|
||||
|
||||
Reference in New Issue
Block a user