diff options
-rw-r--r-- | src/calibrate_detector.c | 2 | ||||
-rw-r--r-- | src/indexamajig.c | 13 | ||||
-rw-r--r-- | src/peaks.c | 4 | ||||
-rw-r--r-- | src/peaks.h | 3 |
4 files changed, 17 insertions, 5 deletions
diff --git a/src/calibrate_detector.c b/src/calibrate_detector.c index 7feeb16c..2252842f 100644 --- a/src/calibrate_detector.c +++ b/src/calibrate_detector.c @@ -110,7 +110,7 @@ static void sum_peaks(struct image *image, double *sum) const int lim = INTEGRATION_RADIUS * INTEGRATION_RADIUS; /* FIXME: Get threshold value from command line */ - search_peaks(image, 800.0); + search_peaks(image, 800.0, 100000.0); for ( i=0; i<image_feature_count(image->features); i++ ) { diff --git a/src/indexamajig.c b/src/indexamajig.c index 984c1e45..799750f3 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -65,6 +65,7 @@ struct static_index_args int config_sa; int config_closer; float threshold; + float min_gradient; struct detector *det; IndexingMethod indm; IndexingPrivate *ipriv; @@ -183,6 +184,8 @@ static void show_help(const char *s) " --no-sa Don't correct for the differing solid angles of\n" " the pixels.\n" " --threshold=<n> Only accept peaks above <n> ADU. Default: 800.\n" +" --min-gradient=<n> Minimum gradient for Zaefferer peak search.\n" +" Default: 100,000.\n" "\n" "\nIf you used --simulate, you may also want:\n\n" " --intensities=<file> Specify file containing reflection intensities\n" @@ -364,7 +367,8 @@ static void process_image(void *pp, int cookie) } break; case PEAK_ZAEF : - search_peaks(&image, pargs->static_args.threshold); + search_peaks(&image, pargs->static_args.threshold, + pargs->static_args.min_gradient); break; } @@ -521,6 +525,7 @@ int main(int argc, char *argv[]) int config_checkprefix = 1; int config_closer = 1; float threshold = 800.0; + float min_gradient = 100000.0; struct detector *det; char *geometry = NULL; IndexingMethod indm; @@ -574,6 +579,7 @@ int main(int argc, char *argv[]) {"sat-corr", 0, &config_satcorr, 1}, /* Compat */ {"no-sa", 0, &config_sa, 0}, {"threshold", 1, NULL, 't'}, + {"min-gradient", 1, NULL, 4}, {"no-check-prefix", 0, &config_checkprefix, 0}, {"no-closer-peak", 0, &config_closer, 0}, {0, 0, NULL, 0} @@ -641,6 +647,10 @@ int main(int argc, char *argv[]) scellr = strdup(optarg); break; + case 4 : + min_gradient = strtof(optarg, NULL); + break; + case 0 : break; @@ -831,6 +841,7 @@ int main(int argc, char *argv[]) qargs.static_args.config_closer = config_closer; qargs.static_args.cellr = cellr; qargs.static_args.threshold = threshold; + qargs.static_args.min_gradient = min_gradient; qargs.static_args.det = det; qargs.static_args.indm = indm; qargs.static_args.ipriv = ipriv; diff --git a/src/peaks.c b/src/peaks.c index c75ffd21..2098f6ec 100644 --- a/src/peaks.c +++ b/src/peaks.c @@ -302,7 +302,7 @@ int integrate_peak(struct image *image, int xp, int yp, } -void search_peaks(struct image *image, float threshold) +void search_peaks(struct image *image, float threshold, float min_gradient) { int x, y, width, height; float *data; @@ -364,7 +364,7 @@ void search_peaks(struct image *image, float threshold) /* Calculate overall gradient */ grad = dxs + dys; - if ( grad < 100000 ) continue; + if ( grad < min_gradient ) continue; mask_x = x; mask_y = y; diff --git a/src/peaks.h b/src/peaks.h index 163a407c..cfc3d322 100644 --- a/src/peaks.h +++ b/src/peaks.h @@ -19,7 +19,8 @@ #include <pthread.h> -extern void search_peaks(struct image *image, float threshold); +extern void search_peaks(struct image *image, float threshold, + float min_gradient); extern void dump_peaks(struct image *image, FILE *ofh, pthread_mutex_t *mutex); extern void output_intensities(struct image *image, UnitCell *cell, |