v1.0.0-rc.50
This commit is contained in:
@@ -4,9 +4,10 @@
|
||||
#include "JFJochReaderImage.h"
|
||||
#include "../common/PixelMask.h"
|
||||
#include "JFJochDecompress.h"
|
||||
#include "../image_analysis/bragg_integration/BraggIntegrate2D.h"
|
||||
|
||||
JFJochReaderImage::JFJochReaderImage(const DataMessage &in_message,
|
||||
const std::shared_ptr<JFJochReaderDataset> &in_dataset)
|
||||
const std::shared_ptr<const JFJochReaderDataset> &in_dataset)
|
||||
: message(in_message),
|
||||
dataset(in_dataset),
|
||||
image(in_dataset->experiment.GetPixelsNum(), 0){
|
||||
@@ -91,6 +92,23 @@ void JFJochReaderImage::ProcessInputImage(const void *data, size_t npixel, int64
|
||||
}
|
||||
}
|
||||
|
||||
void JFJochReaderImage::BraggIntegrate(const BraggIntegrationSettings& settings) {
|
||||
if (message.indexing_lattice.has_value()) {
|
||||
CompressedImage local_image(image,
|
||||
dataset->experiment.GetXPixelsNum(),
|
||||
dataset->experiment.GetYPixelsNum());
|
||||
|
||||
DiffractionExperiment experiment(dataset->experiment);
|
||||
experiment.ImportBraggIntegrationSettings(settings);
|
||||
|
||||
auto integration_result = BraggIntegrate2D(experiment,
|
||||
local_image,
|
||||
message.indexing_lattice.value());
|
||||
message.reflections = integration_result.reflections;
|
||||
message.b_factor = integration_result.b_factor;
|
||||
}
|
||||
}
|
||||
|
||||
const DataMessage &JFJochReaderImage::ImageData() const {
|
||||
return message;
|
||||
}
|
||||
@@ -198,3 +216,29 @@ void JFJochReaderImage::CalcROI(const ROIElement *input) {
|
||||
const std::optional<ROIMessage> &JFJochReaderImage::GetROI() const {
|
||||
return roi;
|
||||
}
|
||||
|
||||
std::vector<float> JFJochReaderImage::GetAzint1D() const {
|
||||
if (dataset->azimuthal_bins <= 1) {
|
||||
return message.az_int_profile;
|
||||
} else if (message.az_int_profile.size() == dataset->azimuthal_bins * dataset->q_bins
|
||||
&& dataset->azimuthal_bins * dataset->q_bins > 0 ) {
|
||||
std::vector<float> tmp(dataset->q_bins);
|
||||
for (int i = 0; i < message.az_int_profile.size(); i++)
|
||||
tmp[i % dataset->q_bins] += message.az_int_profile[i];
|
||||
return tmp;
|
||||
} else
|
||||
return {};
|
||||
}
|
||||
|
||||
std::vector<float> JFJochReaderImage::GetAzInt1D_BinToQ() const {
|
||||
if (dataset->azimuthal_bins <= 1) {
|
||||
return dataset->az_int_bin_to_q;
|
||||
} else if (dataset->az_int_bin_to_q.size() == dataset->azimuthal_bins * dataset->q_bins
|
||||
&& dataset->azimuthal_bins * dataset->q_bins > 0 ) {
|
||||
std::vector<float> tmp(dataset->q_bins);
|
||||
for (int i = 0; i < dataset->q_bins; i++)
|
||||
tmp[i] = dataset->az_int_bin_to_q[i];
|
||||
return tmp;
|
||||
} else
|
||||
return {};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user