понедельник, 8 января 2007 г.

Units. Конвертор единиц измерения в Linux.

Так уж сложилось что в мире существует большое количество различных систем измерения. В некоторых странах используют одни, в других другие. Вот лишь некоторые примеры: русская, английская, французкая, японская, китайская системы мер. Хоть и приняты попытки по стандартизаци (СИ), но от страны к стране, от одной отрасли науки к другой - очень часто используются разные системы единиц.
Многие из них мы знаем. Но как быть, если попадается неизвестная единица измерения или такая, которую мы уже давно забыли. Для этого существуют специальные справочники. Для современного поколения - Интернет. А меня заинтересовал вопрос - что для этого существует в Linux?


Итак. Знакомьтесь, units - утилита для перевода единиц с одной системы измерения в другую. Данная утилита есть в бинарниках для любых систем. Поэтому вопроса с установкой возникнуть не должно.

Доступные единицы измерения можно посмотреть в файле /usr/share/misc/units.dat. Также есть возможность их добавлять. Существует два способа использования units, интерактивный и не интерактивный. Для работы в первом режиме нужно набрать в консоли units и нажать Enter. Должно появиться следующее приглашение:

$ units
2438 units, 71 prefixes, 32 nonlinear units

You have: (вводим величину с которой мы хотим перевести) 10 m^3
You want: (вводим единицу измерения в которую переводим) gallons
* 2641.7205
/ 0.00037854118

Число после * - показывает перевод ( 10 метров кубических это 2641.7205 галлонов).
Число после / - показывает обратный перевод (
1 галлон - это 0.00037854118 от 10 кубометров).

Синтаксис для не интерактивного режима следующий:

$units 'единицы с которых перевожу' 'единицы в которые перевожу'
Т.е следующее:
$ units '6.1 kilooersted' 'A/m'
* 485422.58
/ 2.0600608e-06

Помимо единиц измерения, программа умеет работать с множеством универсальных физических констант:

pi 3.14159265358979323846
c 2.99792458e8 m/s # speed of light in vacuum (exact)
mu0 4 pi 1e-7 H/m # permeability of vacuum (exact)
epsilon0 1/mu0 c^2 # permittivity of vacuum (exact)
energy c^2 # convert mass to energy
..........................................

Несколько дополнительных примеров:

Работа - с временем:

You have: week
You want: seconds
* 604800
/ 1.6534392e-06

- угловые измерения:

You have: 45 degree
You want: radian
* 0.78539816
/ 1.2732395

- температура:

You have: 45 degC
You want: degF
* 81
/ 0.012345679

и многое, многое другое.
Для более подробной информации о программе обращайтесь к страницам man units.

5 коммент.:

virens комментирует...

Не знал о такой утилите - огромное спасибо. Унёс в скрапы, буду иметь в виду.

D.K. комментирует...

Число после / - показывает обратный перевод. (0.00037854118 галонов это 10 метров кубических).
Не так: 1 галлон - это 0.00037854118 от 10 кубометров.

_Andrey_ комментирует...

Спасибо за статью, не подозревал об этой утилите. Не совсем в тему, но возможно будет интересно - великолепный калькулятор (консольный + морды для Qt и GTK) - Qalculate. Очень рекомендую.

p.s. Умеет решать уравнения и строить графики.

serhiy cherevko комментирует...

Умеет решать уравнения и строить графики.
Не интересовался такого плана программами, но звучит заманчиво. Спасибо, попробую.

calibra комментирует...

Рекламное агентство какое выбрать?