/usr/share/doc/gri/html/HandlingHeaders.html is in gri-html-doc 2.12.23-9build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Gri: handling headers</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000EE" vlink="#551A8B" alink="FF0000">
<!-- newfile HandlingHeaders.html "Gri: handling headers" "Examples" -->
<!-- @node Handling Headers, Ignoring Columns, Handling Data, Handling Data -->
<a name="HandlingHeaders" ></a>
<img src="./resources/top_banner.gif" alt="navigation map" 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>
<a href="Introduction.html">1: Introduction</a><br>
<a href="SimpleExample.html">2: Simple example</a><br>
<a href="InvokingGri.html">3: Invocation</a><br>
<a href="GettingMoreControl.html">4: Finer Control</a><br>
<a href="X-Y.html">5: X-Y Plots</a><br>
<a href="ContourPlots.html">6: Contour Plots</a><br>
<a href="Images.html">7: Image Plots</a><br>
<a href="Examples.html">8: Examples</a><br>
<a href="Commands.html">9: Gri Commands</a><br>
<a href="Programming.html">10: Programming</a><br>
<a href="Environment.html">11: Environment</a><br>
<a href="Emacs.html">12: Emacs Mode</a><br>
<a href="History.html">13: History</a><br>
<a href="Installation.html">14: Installation</a><br>
<a href="Bugs.html">15: Gri Bugs</a><br>
<a href="TestSuite.html">16: Test Suite</a><br>
<a href="GriInThePress.html">17: Gri in Press</a><br>
<a href="Acknowledgments.html">18: Acknowledgments</a><br>
<a href="License.html">19: License</a><br>
<br>
Indices:<br>
<a href="ConceptIndex.html"><i>Concepts</i></a><br>
<a href="CommandIndex.html"><i>Commands</i></a><br>
<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="HandlingData.html#HandlingData" shape="rect" coords="516,2,532,24" href="HandlingData.html#HandlingData">
<area alt="Gri: handling data" shape="rect" coords="557,2,573,24" href="HandlingData.html">
<area alt="Gri: ignoring columns" shape="rect" coords="581,2,599,24" href="IgnoringColumns.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: ignoring columns" shape="rect" coords="581,2,599,24" href="IgnoringColumns.html">
</map>
<h3>8.12.1: Handling headers</h3>
<b>Case 1 -- known number of header lines.</b>
This is easy. If you know that the file has, say, 10 header lines, you
can just do this:
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
open file
skip 10
read columns x y
...
</font></PRE>
</TD>
</TR>
</TABLE>
<p>
<b>Case 2 -- header itself indicates number of header lines.</b>
Quite often the first line of a file will indicate the number of header
lines. For example, suppose the first line contains a single number,
indicating the number of header lines to follow:
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
open file
read .skip.
skip .skip.
read columns x y
...
</font></PRE>
</TD>
</TR>
</TABLE>
<p>
<b>Case 3 -- header lines marked by a textual key.</b>
Sometimes header lines are indicated by a textual key, for example, the
characters `<font color="#82140F"><code>HEADER</code></font>' at the start of the line in the file. The easy
way to skip such a header is to use a system command. Depending on your
familiarity with the operating system (here presumed to be Unix), you
might choose to use Grep, Awk, or Perl. Here are examples:
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
open "grep -v '^HEADER' file |"
</font></PRE>
</TD>
</TR>
</TABLE>
<p>
For more on the `<font color="82140F"><code>|</code></font>' mechanism, see see <a href="Open.html#Open">Open</a>. The Grep command
prints lines which do not match the indicated string
(because of the `<font color="#82140F"><code>-v</code></font>' switch), and the `<font color="#82140F"><code>^</code></font>' character stands for
the start of the line (see <a href="SystemTools.html#Grep">Grep</a>). Thus all lines with the key word at the
<b>start</b> of the line are skiped.
<p>
<b>Case 4 -- reading and using information in header.</b>
Consider a dataset in which the first line gives the time of
observation, followed by a list of observations. This might be, for
example, an indication of the data taken from a weather balloon released
at a particular time from a fixed location, with the main data being air
temperature as a function of elevation of the balloon. The time
indication might be, for instance, the hour number. One might need to
know the time to print a label on the diagram. You could do that by:
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
open file
read .time.
read columns x y
draw curve
sprintf \label "Time of observation is %f hour" .time.
draw title "\label"
</font></PRE>
</TD>
</TR>
</TABLE>
<p>
where the `<font color="#82140F"><code>sprintf</code></font>' command has been used to change the numerical
time indication into a synonym that can be inserted into a quoted string
for drawing the title of the diagram (see <a href="Sprintf.html#Sprintf">Sprintf</a>). Here the time has
been assumed to be a decimal hour. You might also have three numbers on
the line, perhaps a day, an hour and a minute. Then you could do
something like
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
open file
read .d. .h. .m.
read columns x y
draw curve
sprintf \label "Obs. %.0f:%.0f, day %.0f" .h. .m. .d.
draw title "\label"
</font></PRE>
</TD>
</TR>
</TABLE>
<p>
Here the `<font color="#82140F"><code>%.0f</code></font>' code is used to ensure no numbers will be written
after the decimal point. Naturally, you could convert this to a decimal
day, by e.g.
<p>
<TABLE SUMMARY="Example" BORDER="0" BGCOLOR="#efefef" WIDTH="100%">
<TR>
<TD>
<PRE>
<font color="#82140F">
...
.dday. = {rpn .day. .hour. 24 / .min. 24 / 60 /}
sprintf \label "Decimal day is %.4f" .dday.
...
</font></PRE>
</TD>
</TR>
</TABLE>
<p>
(Some of you might know how many minutes in a day, but I'm silly so I
kept the extra mathematical step -- nothing is lost by being
straightforward!)
<p>
</table>
<img src="./resources/bottom_banner.gif" alt="navigation map" usemap="#navigate_bottom" border="0">
</body>
</html>
|