Difference between revisions of "THIN"
From ICE Enterprises
ConvertBot (talk | contribs) (Copy one file to another with optional offset, length, and decimation) |
(No difference)
|
Latest revision as of 18:05, 27 April 2020
Copy one file to another with optional offset, length, and decimation
<IN> Input file
<OUT> Output file
<START> Starting offset (inclusive)
<END> Ending offset (exclusive)
<INC> Increment between input file elements
<FSTART> Frame Starting offset
<FEND> Frame Ending offset
<FINC> Frame Increment between input file elements
This primitive performs data thinning on 1D, 2D, or record oriented file
formats. The last 3 arguments apply only to 2D interframe. (The X-Midas
TWODTHIN function). If the increment is negative, this primitive performs the
UPZERO function.
The <START>, <END>, and <INC> arguments are absolute, offset addresses by
default. To use abscissa addressing, precede the argument with a tilde (~). To
use relative addressing, precede the argument with a plus.
The <START> and <END> are ZERO based offsets, so that start=2 end=10 actually
gets the data elements starting and INCLUDING offset=2 up and EXCLUDING
offset=10. This corresponds to the one-based elements 3 through 10. This is
identical to the way file trimming arguments are used.
Examples:
1. Copy infile to outfile downsampling by factor of 2 (i.e. 50% reduction)
nM> thin infile outfile ,, 2
-or-
nM> thin infile outfile inc=2
2. Copy elements 1-3 of infile to outfile.
nM> thin infile outfile 0 3
3. Copy all but the last two elements of infile to outfile.
nM> thin infile outfile 0 -2
4. Copy every third element from the 2nd element to the end of the file (EOF).
nM> thin infile outfile 1 -0 3
5. Copy 20 elements starting at 1 second into the file.
nM> thin infile outfile ~1 +20
6. Copy every other element from 1sec to 2sec into the file.
nM> thin infile outfile ~1 ~2 2
7. Upsample infile by 8 by inserting 7 zeros between each value.
nM> thin infile outfile INC=-8
or
nM> thin infile outfile INC=.125
8. Get Y cut of a type 2000 file at index x (without adjustments).
nM> thin in2000 out2000 fstart=x fend=x+1
-or- into a type 1000 file with xstart, xdelta, xunits re-adjusted
nM> thin in2000 out1000{type=1000,xs=inys,xd=inyd,xu=inxu,yu=none} &
fstart=x fend=x+1
9. Reset the Frame Start value of a thinned Type 2000 data pipe
nM> set reg.<id>.fstart <new fstart value>
10. Reset the frame start, stop and increment of a thinned Type 2000 data pipe
nM> set reg.<id>.fvals {FSTART=<val>,FEND=<val>,FINC=<val>}
11. Thin out file forcing abscissa + timecode addressing
nM> thin infile outfile startTime endTime /addressing=TIMECODE
12. Thin out file using only abscissa addressing (do not add timecode)
nM> thin infile outfile startSec endSec /addr=ABSCISSA
Switches:
/ABSC Use ABSCISSA_LEGACY addressing for ALL arguments
/ADDR= Alias for /ADDRESSING
/ADDRESSING= Addressing mode. [DEF=INDEX] (Since 2.9.1)
INDEX - Absolute indexing.
ABSCISSA - Abscissa indexing only (e.g. time or frequency).
TIMECODE - Indexing using time: abscissa address +
(TimeLine (if exists) or timecode, in that order).
ABSCISSA_AUTO - Same as TIMECODE mode when abscissa units is Time,
otherwise same a ABSCISSA mode.
ABSCISSA_LEGACY - Similar to ABSCISSA_AUTO, but ONLY use
abscissa + TimeLine/timecode when abscissa units is Time
and when return index is greater than 100e6 seconds.
/RESTART=T|F Enable/disable the output pipe from restarting when certain
properties (inc, start, end, and fend) are changed. [DEF=TRUE]
/TL=n Specify the number of elements to process on each read