* Enhancements for XFEL

* Enhancements for EIGER
* Writer is more flexible and capable of handling DECTRIS data
This commit is contained in:
2024-03-05 20:41:47 +01:00
parent 71d862b706
commit d315506633
165 changed files with 5440 additions and 2230 deletions

View File

@@ -8,7 +8,6 @@
TEST_CASE("NeuralNetResPredictor_Prepare", "[LinearAlgebra][Coord]") {
DiffractionExperiment experiment(DetectorGeometry(8, 2, 8, 36));
experiment.DetectorDistance_mm(75).PhotonEnergy_keV(12.4).BeamX_pxl(1000).BeamY_pxl(1000);
experiment.NeuralNetModelPath("../../resonet/traced_resnet_model.pt");
std::vector<int16_t> v(experiment.GetPixelsNum(),0);
v[1000 * experiment.GetXPixelsNum() + 1000] = 100;
@@ -18,11 +17,11 @@ TEST_CASE("NeuralNetResPredictor_Prepare", "[LinearAlgebra][Coord]") {
v[1050 * experiment.GetXPixelsNum() + 1050] = 52;
v[2000 * experiment.GetXPixelsNum() + 1500] = 160;
NeuralNetResPredictor predictor(experiment);
NeuralNetResPredictor predictor("../../resonet/traced_resnet_model.pt");
REQUIRE(predictor.GetMaxPoolFactor() == 2);
REQUIRE(predictor.GetMaxPoolFactor(experiment) == 2);
predictor.Prepare(v.data());
predictor.Prepare(experiment, v.data());
auto nn_input = predictor.GetModelInput();
REQUIRE(nn_input[0] == 10);
REQUIRE(nn_input[25 * 512 + 25] == 7);
@@ -32,9 +31,8 @@ TEST_CASE("NeuralNetResPredictor_Prepare", "[LinearAlgebra][Coord]") {
TEST_CASE("NeuralNetResPredictor_Inference", "[LinearAlgebra][Coord]") {
DiffractionExperiment experiment(DetectorGeometry(8, 2, 8, 36));
experiment.DetectorDistance_mm(75).PhotonEnergy_keV(12.4).BeamY_pxl(1136).BeamX_pxl(1090);
experiment.NeuralNetModelPath("../../resonet/traced_resnet_model.pt");
NeuralNetResPredictor predictor(experiment);
NeuralNetResPredictor predictor("../../resonet/traced_resnet_model.pt");
HDF5ReadOnlyFile data("../../tests/test_data/compression_benchmark.h5");
HDF5DataSet dataset(data, "/entry/data/data");
@@ -46,7 +44,7 @@ TEST_CASE("NeuralNetResPredictor_Inference", "[LinearAlgebra][Coord]") {
std::vector<hsize_t> file_size = {1, file_space.GetDimensions()[1], file_space.GetDimensions()[2]};
dataset.ReadVector(image_conv, start, file_size);
auto res = predictor.Inference(image_conv.data());
auto res = predictor.Inference(experiment, image_conv.data());
std::cout << res << std::endl;
REQUIRE(res < 1.5);
REQUIRE(res > 1.4);