jfjoch_viewer: Grid scan 2D image has also 1/d^2 for resolution estimation plot
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m3s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m57s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m58s
Build Packages / Generate python client (push) Successful in 16s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m10s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m14s
Build Packages / build:rpm (rocky8) (push) Successful in 13m24s
Build Packages / Build documentation (push) Successful in 33s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m6s
Build Packages / build:rpm (rocky9) (push) Successful in 14m15s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 6m58s
Build Packages / Unit tests (push) Successful in 50m2s

This commit is contained in:
2025-11-27 14:21:36 +01:00
parent 5d2d69f9e6
commit 60da4bb2f8
4 changed files with 40 additions and 14 deletions
+30 -7
View File
@@ -14,7 +14,7 @@ void JFJochGridScanImage::clear() {
CalcROI();
}
void JFJochGridScanImage::loadData(const std::vector<float> &data, const GridScanSettings &settings) {
void JFJochGridScanImage::loadData(const std::vector<float> &data, const GridScanSettings &settings, bool in_one_over_d2) {
if (data.empty()) {
clear();
return;
@@ -30,6 +30,13 @@ void JFJochGridScanImage::loadData(const std::vector<float> &data, const GridSca
image_index = settings.Rearrange(indices, -1);
one_over_d2 = in_one_over_d2;
if (one_over_d2) {
for (int i = 0; i < image_fp.size(); i++)
if (!std::isnan(image_fp[i]))
image_fp[i] = 1.0f / (image_fp[i] * image_fp[i]);
}
float minv = std::numeric_limits<float>::infinity();
float maxv = -std::numeric_limits<float>::infinity();
for (float v : image_fp) {
@@ -75,12 +82,28 @@ void JFJochGridScanImage::mouseHover(QMouseEvent *event) {
if (event->modifiers() & Qt::ShiftModifier)
emit imageSelected(image_id);
emit writeStatusBar(QString("Image %1 y %2 y %3 value %4")
.arg(image_id)
.arg(x)
.arg(y)
.arg(QString::number(image_fp[idx], 'f', 3)),
6000);
if (one_over_d2) {
if (std::isnan(image_fp[idx]))
emit writeStatusBar(QString("Image %1 x %2 y %3 no resolution estimation")
.arg(image_id)
.arg(x)
.arg(y),
6000);
else
emit writeStatusBar(QString("Image %1 x %2 y %3 d = %4 Å")
.arg(image_id)
.arg(x)
.arg(y)
.arg(QString::number(1 / std::sqrt(image_fp[idx]), 'f', 2)),
6000);
} else {
emit writeStatusBar(QString("Image %1 x %2 y %3 value %4")
.arg(image_id)
.arg(x)
.arg(y)
.arg(QString::number(image_fp[idx], 'f', 3)),
6000);
}
}
}