#!/usr/bin/perl print "Content-type: text/html\n\n"; # Get Query Variables see parseform.pl for comments $buffer = $ENV{"QUERY_STRING"}; @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($nume, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $query{$nume} = $value; } #foreach $dog(sort keys %query){ #print "$dog: $query{$dog}
\n"; #} $pid = $query{pid}; $process = $pid; $pid1 = $query{pid}; $pid2 = ($query{pid} + 1); $start = $query{topfrom}; $end = $query{topto}; $region = "Region"; print "ID's: $pid, $pid1, $pid2"; $data1 = "/usr/local/jail/www/htdocs/tmpgif/riverout" . $pid1 . ".dat"; $data2 = "/usr/local/jail/www/htdocs/tmpgif/riverbout" . $pid1 . ".dat"; $data3 = "/usr/local/jail/www/htdocs/tmpgif/riverout" . $pid2 . ".dat"; $data4 = "/usr/local/jail/www/htdocs/tmpgif/riverbout" . $pid2 . ".dat"; # open the first two datafiles and read into new array open (DATA1, "<$data1") || die " couldn't open file $data1: $!"; while (){ chop; push @data1, $_; } close (DATA1); open (DATA2, "<$data3") || die " couldn't open file $data3: $!"; while (){ chop; push @data2, $_; } close (DATA2); if ($query{changed} == 1){ open (DATA3, "<$data2") || die " couldn't open file $data2: $!"; while (){ chop; push @data3, $_; } close (DATA3); open (DATA4, "<$data4") || die " couldn't open file $data4: $!"; while (){ chop; push @data4, $_; } close (DATA4); } $scatter1 = "/tmp/scatter1" . $pid . ".dat"; open (SCATTER1, ">$scatter1") || die "couldn't open file $scatter1: $!"; while ($i <= $#data1){ # print "Data: $i $data1[$i] $data2[$i]\n
"; print SCATTER1 "$data2[$i] $data1[$i]\n"; $i++; } close (SCATTER1); $i = 0; $scatter2 = "/tmp/scatter2" . $pid2 . ".dat"; open (SCATTER2, ">$scatter2") || die "couldn't open file $scatter2: $!"; while ($i <= $#data3){ # print "Data: $i $data3[$i] $data4[$i]\n
"; print SCATTER2 "$data3[$i] $data4[$i]\n"; $i++; } close (SCATTER2); # print datafile to tmp directory # if 2nd datafiles exist, # open the second two datafiles and read into new array # print 2nd datafile to tmp directory # call gnuplot # remove files in tmp $gnuplot = "/usr/local/bin/gnuplot"; $ppmtogif = "/usr/local/bin/ppmtogif"; open (WRITEME, "| $gnuplot"); print WRITEME "set terminal pbm small color\n"; print WRITEME "set output \"/tmp/riverscatter$process.pbm\"\n"; system ("chmod 0666 /tmp/riverscatter$process.pbm"); print WRITEME "set size .5,.5\n"; print WRITEME "set autoscale\n"; # print WRITEME "test\n"; # print WRITEME "set nokey\n"; # print WRITEME "set key outside below\n"; print WRITEME "set xlabel \"Days in Year\"\n"; print WRITEME "set timestamp top rotate\n"; # print WRITEME "set xrange [$start:$end] \n"; # print WRITEME "set yrange [0:10] \n"; print WRITEME "set title \"$region\"\n"; print WRITEME "plot \"$scatter1\" title \"Original\" w points lt 7 ps .5, "; # print WRITEME "\"$scatter2\" title \"Best_Management\" w points lt 9\n"; print WRITEME "exit\n"; close (WRITEME); system ("$ppmtogif < /tmp/riverscatter$process.pbm > /tmp/riverscatter$pid.gif"); system ("mv /tmp/riverscatter$pid.gif /usr/local/jail/www/htdocs/tmpgif/"); # system ("rm $scatter2"); system ("rm /tmp/riverscatter$pid.pbm"); system ("rm $scatter1"); $gif = ("riverscatter" . $pid . ".gif"); print <<"HTML"; Scatter Plot: a vs b The Image.... HTML # print "Location: $graphic\n\n";