aboutsummaryrefslogtreecommitdiff
path: root/scripts/check-near-bragg
blob: 2130378b62154f2236b059ebccca34f1a98088ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/perl -w

use strict;
use File::Basename;
use File::stat;

my $skip = 0;

my $args = join(" ", splice(@ARGV, 1, scalar(@ARGV)-1));
if ( !($args eq "") ) {
        printf("Extra arguments for hdfsee: %s\n", $args);
} else {
        # Default arguments - feel free to override!
        $args = "--binning=2 --int-boost=10";
        printf("Using default arguments for hdfsee: %s\n", $args);
}

my $file = $ARGV[0];

open(FH, $file);
open(TMP, "> list.tmp");

my $statbuf = stat($file);
if ( not $statbuf ) {
	printf("Couldn't stat stream. Check the filename.\n");
	exit;
}
my $stream_mtime = $statbuf->mtime;

my $in_image = 0;
my $line;
my $filename;
my $event = "";
my $n_seen = 0;

while ( $line = <FH> ) {

	chomp $line;
	my $handled = 0;

	if ( $in_image ) {
		printf(TMP "%s\n", $line);
		$handled = 1;
	}

	if ( $line =~ /^Reflections\ measured\ after\ indexing$/ ) {
		$in_image = 1;
		$handled = 1;
	}

	if ( $line =~ /^Image\ filename:\ (.+)$/ ) {
		$filename = $1;
		$handled = 1;
	}

	if ( $line =~ /^Event:\ (.+)$/ ) {
		$event = $1;
	}

	if ( $line =~ /^End\ of\ reflections$/ ) {

		close(TMP);

		# Example of how to do "basename" and "prefix":
		# $filename = "images-old/".basename($filename);

		my $ev;
		my $evr;
		if ( $event eq "" ) {
			$ev = "";
			$evr = "";
		} else {
			$ev = " --event=".$event;
			$evr = ", event ".$event;
		}

		$n_seen++;
		if ( $n_seen > $skip ) {

			my $statbuf = stat($filename);
			if ( not $statbuf ) {
				printf("Couldn't stat image file '%s' - does it exist?\n",
				       $filename);
				exit;
			}
			my $image_mtime = $statbuf->mtime;
			if ( $image_mtime > $stream_mtime ) {
				printf(STDERR "WARNING: Image file is newer than stream\n");
			}

			printf(STDERR "Viewing %s%s\n", $filename, $evr);
			system("hdfsee ".$filename.$ev.
			       " --peak-overlay=list.tmp ".$args);
			if ( $? != 0 ) { exit; }
		} else {
			printf(STDERR "Skipping %s%s\n", $filename, $evr);
		}

		unlink("list.tmp");
		open(TMP, "> list.tmp");
		$handled = 1;
		$in_image = 0;
		$event = "";

	}

}