Fit a line to a set of X,Y data in a table-format file. By "table-format" I mean a file that has a "# data" header delimeter. I show an example below. The raw answers are sent to standard out, but a hard-copy explanation file is also produced. I use this files directly, for example, as input for things like my tools that overplot spectral features in ds9 images.
% % linefit.sh Usage: linefit.sh fin.dat arg1 - name of input fileBelow I show a practical example for linefit.sh:
%
% ls
keep/ linefit.explain RU_lrs2r.dat S/
% cat RU_lrs2r.dat
Measured bandheads on a RU from 20160312 obs=306 exp=01
3
X_pix
Y_angstroms
Name
# data
159.3 8349.0 sky8349
534.3 8830.0 sky8830
965.0 9320.0 sky9320
1018.0 9380.0 sky9380
1388.0 9800.0 sky9800
1827.0 10291.0 sky10291
% linefit.sh RU_lrs2r.dat
1.1581805 8191.0771484 17.8655643 6 RU_lrs2r.dat
% ls
keep/ linefit.explain RU_lrs2r.dat S/
% cat linefit.explain
Results from linefit:
1.1581805 0.0150665 (slope, m.e.)
8191.0771484 14.7942867 (Y-intercept, m.e.)
17.8655643 (Y-sigma)
6 (number of fitted points)
The rationale for the two output methods is this: I
want a simple output to standard out that I can easily ingest
with other scripts. At the same time, I want a file
(linefit.explain) that gives a little more information. I
can also use this file for input to other otw codes pretty
easily. These files could go directly into python and bash
scripts, but my I/O skills there are still rudimentary.