Man Linux: Main Page and Category List

NAME

       units-filter - is a parser for physical and chemical quantities

SYNOPSIS

       units-filter -s  -o  -l

DESCRIPTION

       units-filter is a basic standalone parser written in C language, flex
       and bison. It inputs strings like "1.5e3 nN.m.s^-1" (it could be the
       time growth ratio of a torque) and outputs the value in standard SI
       unit, followed by the physical dimension of this value.

OPTIONS

       -s
           Like Significative.

           Takes in account the number of significative digits. For example
           1.0 m contains 2 significative digits, while 0.00100 contains 3
           significative digits. It is possible to enforce the number of
           significative digits by using a special syntax : if units-filter
           parses the input "1.0m#6", it interprets it as a value with exactly
           6 significative digits, like "1.00000 m". The number following the
           # sign is the forced number of significative digits. The number of
           significative digits appears just before the last zero in the
           output of the command (this zero is a placeholder for future
           extensions).

       -o
           Like Output.

           Outputs a correct representation of the physical quantity with its
           physical unit in the International System notation. There may be
           some simplification with usual units. For example, a newton will be
           represented by the unit N in place of m.kg.s^-2. The value is
           expressed as a floating number with one digit before the decimal
           point, and as many digits in the mantissa as necessary to fit the
           desired number of significative digits (see an example below). It
           is possible to enforce the output unit : just add a colon and the
           desired unit at the end of the input. If this unit is homogeneous
           with the former one, it will be used to format the output.

       -l
           Like LaTeX.

           Outputs a correct representation of the physical quantity with its
           physical unit in the International System notation, in LaTeX
           language.

EXAMPLES

       Establishing the SI value and units exponents of a quantity in the mksa
       system:

       ~$ echo 1.5e3 nN.m.s^-1 | units-filter

       1.5e-6 2 1 -3 0 0 0 0

       which means : 1.5e-6 (SI unit) m^2.kg.s^-3

       Comparing to different physical quantities:

       ~$ e1=$(echo "1.2e-3 V" | units-filter)

       ~$ e2=$(echo "1200e3 nWb/s"| units-filter)

       ~$ if [ "$e1" = "$e2" ]; then echo ok; else echo ko; fi

       ok

       ... which emphasizes that webers by unit time are the same than volts.

       Playing with the number of significative digits:

       ~$ echo "0.00100m" | src/units-filter -s

       0.001 1 0 0 0 0 0 0 3 0

       ~$ echo "0.00100m #2" | src/units-filter -s

       0.001 1 0 0 0 0 0 0 2 0

       Giving a value for the relative precision:

       ~$ echo "1kV~2" | units-filter -o

       1e+03 V +-2%

       Turning on the LaTeX output:

       ~$ echo "1kohm+-2%" | units-filter -l

       1\times 10^{+03}\, \Omega \pm 2\,\%

       Turning on the output of a canonical physical notation:

       ~$ echo "1.0 m.kg.s^-2 #7" | units-filter -o

       1.000000e+00N

       Choosing a non-standard unit for the output:

       ~$ echo 1800C:A.h| units-filter -o

       5.000e-01 A.h

KNOWN BUGS

       Few units out of the mksa system are sucessfuly parsed.

AUTHOR

       Georges Khaznadar <georgesk@ofset.org>
           Wrote this manpage.

COPYRIGHT

       Copyright © 2009 Georges Khaznadar

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU General Public License, Version 2 or (at
       your option) any later version published by the Free Software
       Foundation.

       On Debian systems, the complete text of the GNU General Public License
       can be found in /usr/share/common-licenses/GPL.