Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 8b2b1fb157760a0d31e072e140388824 > files > 145

gri-2.8.0-1mdk.i586.rpm

<html>
<head>
<title>Gri: running means</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000EE" vlink="#551A8B" alink="FF0000">
<!-- newfile RunningMeans.html "Gri: running means" "Examples" --> 


<!-- @node   Running Means, Finite Element Model Mesh, PDF Diagram, Examples -->
<a name="RunningMeans" ></a>

<img src="./resources/top_banner.gif" usemap="#navigate_top" border="0">
<table summary="top banner" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150" valign="top">
<font size=-1>
<br>
Chapters:
</br>
&nbsp;&nbsp;<a href="Introduction.html">1: Introduction</a><br>
&nbsp;&nbsp;<a href="SimpleExample.html">2: Simple example</a><br>
&nbsp;&nbsp;<a href="InvokingGri.html">3: Invocation</a><br>
&nbsp;&nbsp;<a href="GettingMoreControl.html">4: Finer Control</a><br>
&nbsp;&nbsp;<a href="X-Y.html">5: X-Y Plots</a><br>
&nbsp;&nbsp;<a href="ContourPlots.html">6: Contour Plots</a><br>
&nbsp;&nbsp;<a href="Images.html">7: Image Plots</a><br>
&nbsp;&nbsp;<a href="Examples.html">8: Examples</a><br>
&nbsp;&nbsp;<a href="Commands.html">9: Gri Commands</a><br>
&nbsp;&nbsp;<a href="Programming.html">10: Programming</a><br>
&nbsp;&nbsp;<a href="Environment.html">11: Environment</a><br>
&nbsp;&nbsp;<a href="Emacs.html">12: Emacs Mode</a><br>
&nbsp;&nbsp;<a href="History.html">13: History</a><br>
&nbsp;&nbsp;<a href="Installation.html">14: Installation</a><br>
&nbsp;&nbsp;<a href="Bugs.html">15: Gri Bugs</a><br>
&nbsp;&nbsp;<a href="TestSuite.html">16: Test Suite</a><br>
&nbsp;&nbsp;<a href="Acknowledgments.html">17: Acknowledgments</a><br>
&nbsp;&nbsp;<a href="License.html">18: License</a><br>
<br>
Indices:</br>
&nbsp;&nbsp;<a href="ConceptIndex.html"><i>Concepts</i></a><br>
&nbsp;&nbsp;<a href="CommandIndex.html"><i>Commands</i></a><br>
&nbsp;&nbsp;<a href="BuiltinIndex.html"><i>Variables</i></a><br>
</font>
<td width="500" valign="top">
<map name="navigate_top">
<area alt="index.html#Top" shape="rect" coords="5,2,218,24" href="index.html#Top">
<area alt="Examples.html#Examples" shape="rect" coords="516,2,532,24" href="Examples.html#Examples">
<area alt="Gri: PDF Diagram" shape="rect" coords="557,2,573,24" href="PDFDiagram.html">
<area alt="Gri: Finite Element Model mesh" shape="rect" coords="581,2,599,24" href="FEM.html">
</map>
<map name="navigate_bottom">
<area alt="index.html#Top" shape="rect" coords="5,2,218,24" href="index.html#Top">
<area alt="Gri: Finite Element Model mesh" shape="rect" coords="581,2,599,24" href="FEM.html"></map>
<h2>8.10: Running-Mean Skyline Diagram</h2>

Timeseries data are often cast into running means; e.g. a temperature
record might be cast into monthly mean values.  The following example
shows how to use a perl script to accomplish this easily, producing a
graph with both the raw data (bullets) and the running mean (a skyline
plot).
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
`Bin with  x .min. .max. .inc. \in_file \out_file'
<p>
Creates \out_file from \in_file.  In each of these
files, column 1 represents x and column 2 represents
y.  The \out_file file contains the average values
of y in x bands of width .inc., centred at .min.,
(.min.+.inc.), up to .max, and with missing values
inserted in bands with no x-data in \in_file.
Each x-band is represented in \out_file by a
plateau in y, and adjacent bands with
non-missing data are connnected by vertical
lines; the effect is a skyline plot of the
banded means.  Sample application: plot
monthly means of a variable.
{
    if {rpn \.words. 8 !=}
        show "ERROR: `\.proper_usage.' called without"
        show " giving all parameters"
        quit 1
    end if
    system perl &lt;&lt;"EOF"
    $min = \.word3.;
    $max = \.word4.;
    $inc = \.word5.;
    open(IN,   "\.word6.")
        || die "`\.proper_usage': no \\in_file";
    open(OUT, "&gt;\.word7.")
        || die "`\.proper_usage': no \\out_file";
<p>
    $n = ($max - $min) / $inc;
    #
    # Set up bins.
    for($i = 0; $i &lt;= $n; $i++) {
       $xx[$i] = 0;
       $yy[$i] = 0;
       $nn[$i] = 0;
    }
    while(&lt;IN&gt;) {
        ($x, $y) = split(' ');
        $i = int(0.5 + ($x - $min) / $inc);
        $i =      0 if $i &lt;      0;
        $i = $n - 1 if $i &gt; $n - 1;
        $xx[$i] += $x;
        $yy[$i] += $y;
        $nn[$i]++;
    }
    for($i = 0; $i &lt;= $n; $i++) {
        if ($nn[$i] &gt; 0) {
            $xx[$i] /= $nn[$i];
            $yy[$i] /= $nn[$i];
            $xleft  = $min + $inc * ($i - 0.5);
            $xright = $min + $inc * ($i + 0.5);
            #
            # If datum to left non-missing,
            # just draw vertical line
            # down to the last yy value.
            if ($i &gt; 0 &amp;&amp; $nn[$i - 1] &gt; 0) {
                print OUT "$xleft $yy[$i - 1]\n";
            } else {
                print OUT "$xleft \.missingvalue.\n"
            }
            print OUT "$xleft  $yy[$i]\n";
            print OUT "$xright $yy[$i]\n";
        }
    }
EOF
}
<p>
# Bin into months
Bin with x 1964 1974 {rpn 1 12 /} \
    timeseries.dat tmp.dat
open tmp.dat
read columns x y
close
draw curve                      # skyline of means
open timeseries.dat
read columns x y
close
draw symbol bullet              # data
system rm -f tmp.dat            # clean up
</font></PRE>
</TD>
</TR>
</TABLE>
<p>

</table>
<img src="./resources/bottom_banner.gif" usemap="#navigate_bottom" border="0">

</body>
</html>