#! /bin/sh # This is the LHEA perl script: /cvmfs/extras-fp7.egi.eu/extras/heasoft/hitomi/x86_64-unknown-linux-gnu-libc2.19-0/bin/ahplot.pl # The purpose of this special block is to make this script work with # the user's local perl, regardless of where that perl is installed. # The variable LHEAPERL is set by the initialization script to # point to the local perl installation. #------------------------------------------------------------------------------- eval ' if [ "x$LHEAPERL" = x ]; then echo "Please run standard LHEA initialization before attempting to run /cvmfs/extras-fp7.egi.eu/extras/heasoft/hitomi/x86_64-unknown-linux-gnu-libc2.19-0/bin/ahplot.pl." exit 3 elif [ "$LHEAPERL" = noperl ]; then echo "During LHEA initialization, no acceptable version of Perl was found." echo "Cannot execute script /cvmfs/extras-fp7.egi.eu/extras/heasoft/hitomi/x86_64-unknown-linux-gnu-libc2.19-0/bin/ahplot.pl." exit 3 elif [ `$LHEAPERL -v < /dev/null 2> /dev/null | grep -ic "perl"` -eq 0 ]; then echo "LHEAPERL variable does not point to a usable perl." exit 3 else # Force Perl into 32-bit mode (to match the binaries) if necessary: if [ "x$HD_BUILD_ARCH_32_BIT" = xyes ]; then if [ `$LHEAPERL -V 2> /dev/null | grep -ic "USE_64_BIT"` -ne 0 ]; then VERSIONER_PERL_PREFER_32_BIT=yes export VERSIONER_PERL_PREFER_32_BIT fi fi exec $LHEAPERL -x $0 ${1+"$@"} fi ' if(0); # Do not delete anything above this comment from an installed LHEA script! #------------------------------------------------------------------------------- #!/usr/bin/perl # # File name: ahplot.pl # Author: A. J. Sargent NASA GSFC # $Date: 2016/05/23 19:42:20 $ # Version: 0 # # Plot the R.A., DEC and ROLL from the given attitude file # # Tool Dependencies: # fplot # # Library Dependencies: # gen/lib/perl/ahlog # gen/lib/perl/ahapp # gen/lib/perl/ahgen # # Modification History: # # Set up use strict; use warnings; use ahlog ; use ahapp ; use ahgen qw (:ALL) ; use File::Copy; # turn on AUTOFLUSH $| = 1; ######################### # Variable Definitions ######################### my $infile =""; # Input file my $outfile =""; # Output file my $offset =""; # Offset X axis to 0? my $maxpts =""; # Maximum points per graph my $pltcmd =""; # Any legal PLT command my $telescop ="HITOMI"; my $ahploterror = 0; # ahplot exit status ######################### # Main Code Block ######################### ahapp::startup () ; ahapp::begin_processing () ; $ahploterror = get_parameters () ; unless ( $ahploterror == 0 ) { ah_info "HIGH", ahapp::write_parameters () ; ahlog::ah_err "get_parameters" ; ahapp::end_processing($ahploterror); } $ahploterror = initialize () ; unless ( $ahploterror == 0 ) { ah_info "HIGH", ahapp::write_parameters () ; ahlog::ah_err "initialize" ; ahapp::end_processing($ahploterror); } $ahploterror = do_work () ; unless ( $ahploterror == 0 ) { ahlog::ah_err "do_work" ; ahapp::end_processing($ahploterror); } $ahploterror = finalize () ; unless ( $ahploterror == 0 ) { ahlog::ah_err "finalize" ; ahapp::end_processing($ahploterror); } # We're done. ahapp::end_processing($ahploterror); ######################### # Subroutines ######################### sub get_parameters { $infile = ahapp::query_parameter("infile"); $outfile = ahapp::query_parameter("outfile"); $offset = ahapp::query_parameter("offset"); $maxpts = ahapp::query_parameter("maxpts"); $pltcmd = ahapp::query_parameter("pltcmd"); return 0; } # ------------------------------------------------------------------------------ sub initialize { my $status = 0; # Input file checking if (isRequiredFileNotFound($infile)) { return 1; } if (removeOutputFileIfClobbering($outfile,$ahapp::clobber) ) { return 1; } # Check if the pltcmd is a text file # If so, make a copy of it to a temporary file # and add plot and quit commands. # # These are failsafes in case the user did not put # either plot or quit into their pco file if ( $pltcmd =~ /^@/ ) { my $pltfile ="ahplot.pco"; ahapp::add_temp_file($pltfile); if(isRequiredFileNotFound(substr($pltcmd,1))) { return 1; } File::Copy::copy(substr($pltcmd,1),$pltfile); open PLT,">>$pltfile"; print PLT "plot\n"; # force pgplot to plot the file print PLT "quit\n"; # force pgplot to quit close PLT; $pltcmd = "\@$pltfile"; } # Write all parameters to this script to the log file. ah_info "HIGH", ahapp::write_parameters () ; return 0; } # ------------------------------------------------------------------------------ sub do_work { my $status = 0; my $filename = $infile . "[ATTITUDE][col TIME;RA=POINTING[1];DEC=POINTING[2];ROLL=POINTING[3];]"; # fplot ah100050020.att+1 maxpts=1000000 offset=yes TIME "POINTING(1) POINTING(2) POINTING(3)" rows=- device=/xw pltcmd=" " # Run FPLOT to create the postscript file $status = ahgen::run_ftool("fplot", "infile=$filename", "maxpts=$maxpts", "offset=$offset", "xparm=TIME", "yparm=RA DEC ROLL", "rows=-", "device=$outfile/ps", "pltcmd=$pltcmd", "binmode=DEFAULT", "sensecase=no", ); if ( $status ) { ahlog::ah_err "fplot failed."; return $status; } return 0; } # ------------------------------------------------------------------------------ sub finalize { my $status = 0; return 0; } # ------------------------------------------------------------------------------