This HTML automatically generated with rman for NEMO
Table of Contents
tabpeak - find peaks or valleys in a table
tabpeak [parameter=value]
Find local maxima (and/or minima) and fit a local paraboloid,
return the location and value of the peak, or valley. See also tablsqfit(1NEMO)
and ccdmom(1NEMO)
.
The default is to search for local 3 point extrema. Using
edge= one can force it away from the edge, and using pmin= one can increase
the minimum number of points that need to be in the extreme
The following parameters are recognized in order; they may be given in
any order if the keyword is also given. Use --help to confirm this man page
is up to date.
- in=
- Input file name [???]
- xcol=
- X-Column [1]
- ycol=
- Y-column [2]
- clip=
- Only consider points above this [0]
- delta=
- If a
positive value is used, single peaks larger than this value on either side
of this peak are reported. [0]
- pmin=
- [EXPERIMENTAL] Require the peak to
contain at least pmin points. By default, only 3 are required, in which
case a polynomial is fit (though this is an exact fit). By setting this
higher, more points are required to be part of a peak which is then required
to be monotonously decreasing. edge= Number of points near the edge to skip
for a peak finder. For the simplest 3-point peak finder this should be
at least 1. [1]
- valley=t|f
- Also fit valleys, in which case the signal has
to be below -clip. [Default: f]
- mean=t|f
- Use intensity weighted mean ? [Default:
f]
- npeak=
- extract the Nth peak (N>0). If npeak=0, no extraction done. Other
keywords will be ignored if a peak is ectracted for further analysis. [Default:
0]
- epeak=
- expand around the N-th peak extracted by npeak>0 by this factor.
By default the segment around a peak is defined until the first point away
from the peak will increase again. [Default: 1]
- nmax=
- max size if a pipe
[100000]
The peak in a simple paraboloid:
$ nemoinp 1:3 | tabmath - - ’-(2.2-%1)**2+10’ | tabpeak -
2.200000 10.000000
Here is a pipeline extracting the first peak, fitting a gaussian to it,
and plotting the data and residuals (in the PGPLOT driver the data will
be in red, the residuals in green, and the fit in blue):
$ tabpeak spec.tab | tabnllsqfit - fit=gauss1d out=- | tee fit.log | tabcomment
- | tabplot - 1 2,3,4 color=2,3,4 line=1,1
$ cat fit.log
Finding single peaks by setting an appropriate delta (related to a robust
dispersion of the differences of the data):
$ tabtrend L1157-B1_109989__1.bstats.tab 2 | tabhist - robust=t
...
Robust Mean Disp : 1.52724e-05 0.00640417
$ tabpeak L1157-B1_109989__1.bstats.tab delta=0.05
# X Y Ypeak Delta Delta
166.000000 1.591776 0.083979 0.087718 0.080239
286.000000 26.544859 25.062155 25.063228 25.061082
452.000000 1.838022 0.324911 0.324182 0.325639
...
3524.000000 1.520718 0.229133 0.229248 0.229019
3810.000000 0.427400 -0.871551 0.870384 0.872717
tablsqfit(1NEMO)
, tabnllsqfit(1NEMO)
, tabtrend(1NEMO)
, tabhist(1NEMO)
,
tabplot(1NEMO)
Peter Teuben
28-May-2013 V0.1 Created PJT
30-may-2013 V0.2 added valley= PJT
23-mar-2022 V0.4 added pmin= PJT
25-mar-2022 V0.5 added edge= PJT
23-jan-2023 V0.7 added npeak, epeak= PJT
25-may-2023 0.8 added delta= PJT
Table of Contents