summaryrefslogtreecommitdiff
path: root/files/check-peak-detection
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2019-09-24 15:29:41 +0200
committerThomas White <taw@physics.org>2019-09-24 15:29:41 +0200
commit622ed418cc955fab261c75f7e89e478ec6d7ff33 (patch)
tree62c7f1c0d78c68f9a045215a527a9a7259665363 /files/check-peak-detection
parentac6aecf008b2a29088a7a4dbf445381b649bea8e (diff)
Work on actual demos
Diffstat (limited to 'files/check-peak-detection')
-rwxr-xr-xfiles/check-peak-detection153
1 files changed, 153 insertions, 0 deletions
diff --git a/files/check-peak-detection b/files/check-peak-detection
new file mode 100755
index 0000000..91d21f6
--- /dev/null
+++ b/files/check-peak-detection
@@ -0,0 +1,153 @@
+#!/usr/bin/perl -w
+
+use strict;
+use File::Basename;
+use File::stat;
+
+my $skip = 0;
+
+my $only;
+my $file;
+my $start;
+
+# Horrible option processing
+if ( $ARGV[0] eq "--indexed" ) {
+ $only = "indexed";
+ $file = $ARGV[1];
+ $start = 2;
+} elsif ( $ARGV[0] eq "--not-indexed" ) {
+ $only = "notindexed";
+ $file = $ARGV[1];
+ $start = 2;
+} else {
+ $only = "";
+ $file = $ARGV[0];
+ $start = 1;
+}
+my $args = join(" ", splice(@ARGV, $start, 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);
+}
+
+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 $indexed;
+my $n_seen = 0;
+
+while ( $line = <FH> ) {
+
+ chomp $line;
+
+ if ( $in_image ) {
+ printf(TMP "%s\n", $line);
+ }
+
+ if ( $line =~ /^Peaks\ from\ peak\ search$/ ) {
+ $in_image = 1;
+ }
+
+ if ( $line =~ /^Image\ filename:\ (.+)$/ ) {
+ $filename = $1;
+ }
+
+ if ( $line =~ /^Event:\ (.+)$/ ) {
+ $event = $1;
+ }
+
+ if ( $line =~ /^indexed_by\ =\ (.*)$/ ) {
+ if ( $1 eq "none" ) {
+ $indexed = 0;
+ } else {
+ $indexed = 1;
+ }
+ }
+
+ if ( $line =~ /^End\ of\ peak\ list$/ ) {
+
+ close(TMP);
+
+ my $show;
+
+ if ( $only eq "indexed" ) {
+ if ( $indexed ) {
+ $show = 1;
+ } else {
+ $show = 0;
+ }
+ } elsif ( $only eq "notindexed" ) {
+ if ( $indexed ) {
+ $show = 0;
+ } else {
+ $show = 1;
+ }
+ } else {
+ $show = 1;
+ }
+
+ if ( !$show ) {
+ printf(STDERR "Not showing %s\n", $filename);
+ unlink("list.tmp");
+ open(TMP, "> list.tmp");
+ $in_image = 0;
+ next;
+ }
+
+ # 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");
+ $in_image = 0;
+ $event = "";
+
+ }
+
+}