v1.0.0-rc.130 (#37)
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m4s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 12m0s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 10m31s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 10m0s
Build Packages / Generate python client (push) Successful in 45s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m17s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 42s
Build Packages / build:rpm (rocky8) (push) Successful in 10m56s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m8s
Build Packages / build:rpm (rocky9) (push) Successful in 11m27s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m10s
Build Packages / Unit tests (push) Successful in 1h14m45s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m4s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 12m0s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 10m31s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 10m0s
Build Packages / Generate python client (push) Successful in 45s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m17s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 42s
Build Packages / build:rpm (rocky8) (push) Successful in 10m56s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m8s
Build Packages / build:rpm (rocky9) (push) Successful in 11m27s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m10s
Build Packages / Unit tests (push) Successful in 1h14m45s
This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124. * jfjoch_broker: Rotation indexer has two retries if failes * jfjoch_broker: Rotation indexer handles small number of rotation images (like test shot) * jfjoch_broker: Integration calculates background mask based on R2 radius * jfjoch_process: HDF5 files are not saved by default Reviewed-on: #37
This commit was merged in pull request #37.
This commit is contained in:
@@ -23,11 +23,13 @@ RotationIndexer::RotationIndexer(const DiffractionExperiment &x, IndexerThreadPo
|
||||
} else {
|
||||
if (x.GetImageNum() < min_images_for_indexing) {
|
||||
// For short measurements - only indexing at the end
|
||||
first_image_to_try_indexing = INT64_MAX;
|
||||
first_image_to_try_indexing = std::max<int64_t>(0, x.GetImageNum() - 1);
|
||||
next_image_to_try_indexing = first_image_to_try_indexing;
|
||||
image_stride = 1;
|
||||
} else {
|
||||
first_image_to_try_indexing = std::max<int64_t>(min_images_for_indexing,
|
||||
x.GetIndexingSettings().GetRotationIndexingMinAngularRange_deg() / angle_norm_deg);
|
||||
next_image_to_try_indexing = first_image_to_try_indexing;
|
||||
image_stride = std::ceil(x.GetIndexingSettings().GetRotationIndexingAngularStride_deg() / angle_norm_deg);
|
||||
if (image_stride == 0)
|
||||
image_stride = 1;
|
||||
@@ -37,8 +39,6 @@ RotationIndexer::RotationIndexer(const DiffractionExperiment &x, IndexerThreadPo
|
||||
}
|
||||
|
||||
void RotationIndexer::TryIndex() {
|
||||
indexing_tried = true;
|
||||
|
||||
// Index
|
||||
std::vector<SpotToSave> v_sel;
|
||||
std::vector<Coord> coords_sel;
|
||||
@@ -101,8 +101,16 @@ void RotationIndexer::TryIndex() {
|
||||
indexed_lattice = data.latt;
|
||||
updated_geom_ = data.geom;
|
||||
axis_ = data.axis;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (indexing_range_multiplier < max_indexing_range_multiplier) {
|
||||
indexing_range_multiplier++;
|
||||
next_image_to_try_indexing = first_image_to_try_indexing * indexing_range_multiplier;
|
||||
} else {
|
||||
next_image_to_try_indexing = INT64_MAX;
|
||||
}
|
||||
}
|
||||
|
||||
std::optional<RotationIndexerResult> RotationIndexer::ProcessImage(int64_t image, const std::vector<SpotToSave> &spots) {
|
||||
@@ -115,7 +123,7 @@ std::optional<RotationIndexerResult> RotationIndexer::ProcessImage(int64_t image
|
||||
const float angle_deg = axis_->GetAngle_deg(image) + axis_->GetWedge_deg() / 2.0f;
|
||||
const auto rot = axis_->GetTransformationAngle(angle_deg);
|
||||
|
||||
if (!indexing_tried && image >= last_accumulated_image + image_stride) {
|
||||
if (!indexed_lattice && image >= last_accumulated_image + image_stride) {
|
||||
v_.reserve(v_.size() + spots.size());
|
||||
coords_.reserve(coords_.size() + spots.size());
|
||||
|
||||
@@ -129,7 +137,12 @@ std::optional<RotationIndexerResult> RotationIndexer::ProcessImage(int64_t image
|
||||
accumulated_images++;
|
||||
last_accumulated_image = image;
|
||||
|
||||
if (accumulated_images >= min_images_for_indexing && image >= first_image_to_try_indexing)
|
||||
const bool short_scan_last_image =
|
||||
(experiment.GetImageNum() < min_images_for_indexing) &&
|
||||
(image >= experiment.GetImageNum() - 1);
|
||||
|
||||
if ((accumulated_images >= min_images_for_indexing || short_scan_last_image) &&
|
||||
image >= next_image_to_try_indexing)
|
||||
TryIndex();
|
||||
}
|
||||
if (!indexed_lattice)
|
||||
@@ -152,4 +165,4 @@ std::optional<RotationIndexerResult> RotationIndexer::GetLattice() {
|
||||
.geom = updated_geom_,
|
||||
.axis = axis_
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user