v1.0.0-rc.104 #9
@@ -239,13 +239,15 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) {
|
||||
auto omega = ReadAxis(master_file.get(), "omega");
|
||||
dataset->experiment.Goniometer(omega);
|
||||
} else if (master_file->Exists("/entry/sample/grid_scan")) {
|
||||
dataset->experiment.GridScan(GridScanSettings(
|
||||
master_file->GetInt("/entry/sample/grid_scan/n_fast"),
|
||||
master_file->GetFloat("/entry/sample/grid_scan/step_x") * 1e6f,
|
||||
master_file->GetFloat("/entry/sample/grid_scan/step_y") * 1e6f,
|
||||
master_file->GetOptBool("/entry/sample/grid_scan/snake_scan").value_or(false),
|
||||
master_file->GetOptBool("/entry/sample/grid_scan/vertical_scan").value_or(false)
|
||||
));
|
||||
GridScanSettings grid(
|
||||
master_file->GetInt("/entry/sample/grid_scan/n_fast"),
|
||||
master_file->GetFloat("/entry/sample/grid_scan/step_x") * 1e6f,
|
||||
master_file->GetFloat("/entry/sample/grid_scan/step_y") * 1e6f,
|
||||
master_file->GetOptBool("/entry/sample/grid_scan/snake_scan").value_or(false),
|
||||
master_file->GetOptBool("/entry/sample/grid_scan/vertical_scan").value_or(false)
|
||||
);
|
||||
grid.ImageNum(number_of_images);
|
||||
dataset->experiment.GridScan(grid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -289,11 +289,15 @@ TEST_CASE("JFJochReader_Goniometer", "[HDF5][Full]") {
|
||||
TEST_CASE("JFJochReader_GridScan", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.FilePrefix("test_reader_grid_scan").ImagesPerTrigger(950).OverwriteExistingFiles(true);
|
||||
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.GridScan(GridScanSettings(25, -7.5, 8.0, true, true));
|
||||
x.PixelSigned(false).BitDepthImage(16).OverwriteExistingFiles(true);
|
||||
x.FrameTime(std::chrono::microseconds(500), std::chrono::microseconds(10));
|
||||
|
||||
DatasetSettings d;
|
||||
d.FilePrefix("test_reader_grid_scan").ImagesPerTrigger(5);
|
||||
d.BeamX_pxl(100).BeamY_pxl(200).DetectorDistance_mm(150)
|
||||
.PhotonEnergy_keV(WVL_1A_IN_KEV)
|
||||
.GridScan(GridScanSettings(3, -7.5, 8.0, true, true));
|
||||
x.ImportDatasetSettings(d);
|
||||
|
||||
RegisterHDF5Filter();
|
||||
|
||||
@@ -307,7 +311,7 @@ TEST_CASE("JFJochReader_GridScan", "[HDF5][Full]") {
|
||||
DataMessage message{};
|
||||
for (int i = 0; i < 5; i++) {
|
||||
message.image = CompressedImage(image, x.GetXPixelsNum(), x.GetYPixelsNum());
|
||||
message.number = 0;
|
||||
message.number = i;
|
||||
|
||||
REQUIRE_NOTHROW(file_set.WriteHDF5(message));
|
||||
}
|
||||
@@ -329,7 +333,9 @@ TEST_CASE("JFJochReader_GridScan", "[HDF5][Full]") {
|
||||
|
||||
CHECK(dataset->experiment.GetGridScan()->IsSnakeScan());
|
||||
CHECK(dataset->experiment.GetGridScan()->IsVerticalScan());
|
||||
CHECK(dataset->experiment.GetGridScan()->GetNFast() == 25);
|
||||
CHECK(dataset->experiment.GetGridScan()->GetNFast() == 3);
|
||||
CHECK(dataset->experiment.GetGridScan()->GetNSlow() == 2);
|
||||
CHECK(dataset->experiment.GetGridScan()->GetNElem() == 6);
|
||||
CHECK(dataset->experiment.GetGridScan()->GetGridStepX_um() == Catch::Approx(-7.5));
|
||||
CHECK(dataset->experiment.GetGridScan()->GetGridStepY_um() == Catch::Approx(8.0));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user