jfjoch_scale: Add scaling iteration count

This commit is contained in:
2026-05-17 09:09:50 +02:00
parent 65ff3a2b68
commit 7212f5a628
2 changed files with 20 additions and 2 deletions
+10 -1
View File
@@ -65,6 +65,7 @@ void print_usage(Logger &logger) {
logger.Info(" -w<num> Refine image wedge during scaling with starting wedge value");
logger.Info(" -p<num> Minimum partiality to accept reflection (default: 0.02)");
logger.Info(" -q<num> Per-image CC limit in percent (default: no limit)");
logger.Info(" -i<num> Number of scaling iterations with no reference data (default: 3) ");
}
void trim_in_place(std::string &t) {
@@ -155,6 +156,7 @@ int main(int argc, char **argv) {
std::string ref_mtz;
double min_partiality = 0.02;
double min_image_cc = 0.0;
int64_t scaling_iter = 3;
IndexingAlgorithmEnum indexing_algorithm = IndexingAlgorithmEnum::Auto;
@@ -291,6 +293,13 @@ int main(int argc, char **argv) {
exit(EXIT_FAILURE);
}
break;
case 'i':
scaling_iter = atoi(optarg);
if (scaling_iter <= 0) {
logger.Error("Invalid scaling iteration count: {}", scaling_iter);
exit(EXIT_FAILURE);
}
break;
default:
print_usage(logger);
exit(EXIT_FAILURE);
@@ -600,7 +609,7 @@ int main(int argc, char **argv) {
ScalingResult scale_result(0);
auto scale_start = std::chrono::steady_clock::now();
for (int i = 0; i < 3; i++) {
for (int i = 0; i < scaling_iter; i++) {
auto iter_start = std::chrono::steady_clock::now();
auto merge_result = indexer.Merge(false, false);
scale_result = indexer.ScaleAllImages(merge_result.merged);
+10 -1
View File
@@ -48,6 +48,7 @@ void print_usage(Logger &logger) {
logger.Info(" -w<num> Refine image wedge during scaling with starting wedge value");
logger.Info(" -p<num> Minimum partiality to accept reflection (default: 0.02)");
logger.Info(" -q<num> Per-image CC limit in percent (default: no limit)");
logger.Info(" -i<num> Number of scaling iterations with no reference data (default: 3) ");
}
int main(int argc, char **argv) {
@@ -71,6 +72,7 @@ int main(int argc, char **argv) {
std::string ref_mtz;
double min_partiality = 0.02;
double min_image_cc = 0.0;
int64_t scaling_iter = 3;
PartialityModel partiality_model = PartialityModel::Fixed;
@@ -139,6 +141,13 @@ int main(int argc, char **argv) {
exit(EXIT_FAILURE);
}
break;
case 'i':
scaling_iter = atoi(optarg);
if (scaling_iter <= 0) {
logger.Error("Invalid scaling iteration count: {}", scaling_iter);
exit(EXIT_FAILURE);
}
break;
default:
print_usage(logger);
exit(EXIT_FAILURE);
@@ -236,7 +245,7 @@ auto mosaicity = dataset->mosaicity_deg;
ScalingResult scale_result(0);
auto scale_start = std::chrono::steady_clock::now();
for (int i = 0; i < 3; i++) {
for (int i = 0; i < scaling_iter; i++) {
auto iter_start = std::chrono::steady_clock::now();
if (reference_data.empty()) {