diff options
author | Thomas White <taw@physics.org> | 2019-09-24 15:29:41 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2019-09-24 15:29:41 +0200 |
commit | 622ed418cc955fab261c75f7e89e478ec6d7ff33 (patch) | |
tree | 62c7f1c0d78c68f9a045215a527a9a7259665363 /files/check-peak-detection | |
parent | ac6aecf008b2a29088a7a4dbf445381b649bea8e (diff) |
Work on actual demos
Diffstat (limited to 'files/check-peak-detection')
-rwxr-xr-x | files/check-peak-detection | 153 |
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 = ""; + + } + +} |