Единицы GNU
Разработчик(и) | Проект GNU |
---|---|
Стабильная версия | 2.23 [1]
/ 18 февраля 2024 г. |
Репозиторий | сеть |
Операционная система | Linux , FreeBSD , NetBSD , OpenBSD , большинство реализаций Unix, Windows |
Платформа | Входит в состав некоторых [ который? ] Дистрибутивы Linux . Доступны два двоичных дистрибутива Windows; распространение для других платформ осуществляется только с исходным кодом. |
Размер | 1,2 Мегабайта (исходный код tar) |
Тип | Утилита |
Лицензия | 2007: GPL-3.0 или новее [а] 1997: GPL-2.0 или более поздняя версия [б] |
Веб-сайт | www |
GNU Units — кроссплатформенная компьютерная программа для преобразования единиц величин. Имеет базу данных единиц измерения , включая эзотерические и исторические единицы. Это, например, позволяет конвертировать скорости, указанные в фарлонгах за две недели , и давление, указанное в тоннах на акр . Выходные единицы проверяются на соответствие входным, что позволяет проверить преобразование сложных выражений.
История
[ редактировать ]GNU Units была написана Адрианом Мариано как реализация утилиты Units, включенной в операционную систему Unix . Первоначально он был доступен по разрешительной лицензии. Вариант GNU распространяется под лицензией GPL, хотя проект FreeBSD поддерживает бесплатную версию модулей, существовавшую до изменения лицензии.
единицы (утилита Unix)
[ редактировать ]Исходная программа модулей была стандартной частью Unix начиная с первых версий Bell Laboratories . [2] Исходный код версии, очень похожей на оригинал, доступен на сайте Heirloom Project . [3]
Реализация GNU
[ редактировать ]GNU Модули включают в себя несколько расширений к исходной версии. [4] включая
- Экспоненты можно записать с помощью
^
или**
. - Экспоненты могут быть больше 9, если записаны с помощью
^
или**
. - Поддерживаются рациональные и десятичные показатели.
- Суммы единиц (например,
btu + ft lbf
) можно конвертировать. - Преобразования могут производиться в суммы единиц, называемые списками единиц (например, из градусов в градусы, минуты и секунды).
- Единицы измерения обратных размеров можно преобразовать (например,
S
кmegohm
). - Поддерживаются круглые скобки для группировки. Иногда это позволяет использовать более естественные выражения, например, в примере, приведенном в разделе «Выражения сложных единиц» .
- Корни единиц (например,
sqrt((lbf/inch) / lb)
можно вычислить. - Поддерживаются нелинейные преобразования единиц измерения (например, °F в °C).
- Включены такие функции, как sin, cos, ln, log и log2.
- Включен скрипт для обновления конвертации валют; для сценария требуется Python .
Определения единиц измерения, включая нелинейные преобразования и списки единиц, могут расширяться пользователем.
База в виде простого текста данных Definitions.units сама по себе является хорошим справочником, поскольку она подробно комментируется и цитирует многочисленные источники.
Другие реализации
[ редактировать ]UDUNITS — аналогичная служебная программа, за исключением того, что она имеет дополнительный интерфейс библиотеки программирования и возможности преобразования дат. считается UDUNITS де-факто программой и библиотекой для преобразования переменных единиц измерения в файлах netCDF . [5]
История версий
[ редактировать ]Версия GNU Units 2.19 была выпущена 31 мая 2019 года, чтобы отразить новую версию SI 2019 года ; В версии 2.14, выпущенной 8 марта 2017 г., исправлено несколько мелких ошибок и улучшена поддержка сборки для Windows. В версии 2.10, выпущенной 26 марта 2014 года, добавлена поддержка рациональных показателей степени больше единицы, а также добавлена возможность сохранять интерактивный сеанс в файле для записи выполненных преобразований. Начиная с версии 2.10, на веб-странице проекта доступен 32-битный двоичный дистрибутив Windows (32-битный порт версии 1.87 для Windows доступен с 2008 года как часть проекта GnuWin32 ).
Версия 2.02, выпущенная 11 июля 2013 года, добавила вывод шестнадцатеричных чисел с плавающей запятой и две другие опции для упрощения изменения формата вывода.
Версия 2.0, выпущенная 2 июля 2012 года, добавила возможность конвертировать в суммы единиц, таких как часы и минуты или футы и дюймы. Кроме того, в этом выпуске добавлена поддержка кодировки UTF-8. [6] Было добавлено положение для определения единиц измерения для конкретной локали. Синтаксис определения нелинейных единиц был изменен, а также добавлены дополнительные спецификации домена и диапазона. Названия файлов данных стандартных и персональных единиц были изменены, а определения валют были помещены в отдельный файл данных; был добавлен скрипт Python для обновления определений валют.
История версий подробно описана в файле NEWS, включенном в исходный дистрибутив.
Использование
[ редактировать ]Units выведет результат преобразования в две строки. Обычно первая строка (умножение) — это желаемый результат; вторая строка — это то же преобразование, выраженное в виде деления.
Юниты также могут функционировать как универсальный научный калькулятор; он включает в себя несколько встроенных математических функций, таких как sin , cos , atan , ln , exp и т. д.
Попытка преобразовать несовместимые типы измерений приведет к тому, что устройства будут печатать сообщение об ошибке совместимости и отображать сокращенную форму каждого измерения.
Примеры
[ редактировать ]В следующих примерах показаны результаты модулей GNU версии 2.10.
Интерактивный режим
[ редактировать ]Currency exchange rates from www.timegenie.com on 2014-03-28 2729 units, 92 prefixes, 77 nonlinear units You have: 10 furlongs You want: miles * 1.25 / 0.8 You have: 1 gallon + 3 pints You want: quarts * 5.5 / 0.18181818 You have: sqrt(meter) ^ Unit not a root You have: sqrt(acre) You want: ft * 208.71033 / 0.0047913298 You have: 21 btu + 6500 ft lbf You want: btu * 29.352939 / 0.034068139 You have: _ You want: J * 30968.99 / 3.2290366e-005 You have: 3.277 hr You want: time 3 hr + 16 min + 37.2 sec You have: 1|2 inch You want: cm * 1.27 / 0.78740157
Символ подчеркивания («_») используется для обозначения результата последнего успешного преобразования единиц измерения.
В командной строке (неинтерактивно)
[ редактировать ]C:\>units "ten furlongs per fortnight" "kilometers per hour"
* 0.0059871429
/ 167.02458
% units cup ounces
conformability error
0.00023658824 m^3
0.028349523 kg
Выражения сложных единиц измерения
[ редактировать ]Одна из форм уравнения Дарси – Вейсбаха для потока жидкости :
где Δ P - перепад давления, ρ - плотность массы, f - (безразмерный) коэффициент трения, L - длина трубы, Q - объемный расход, а d - диаметр трубы. Было бы желательно иметь уравнение в виде
это будет принимать типичные единицы измерения США; константу А 1 можно было бы определить вручную, используя метод единичных коэффициентов , но быстрее и проще ее можно было бы определить, используя единицы : [7]
$ units "(8/pi^2)(lbm/ft^3)ft(ft^3/s)^2(1/in^5)" psi
* 43.533969
/ 0.022970568
Технический документ по кранам № 410, [8] уравнение 3-5, дает мультипликативное значение 43,5.
См. также
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ https://ftp.gnu.org/gnu/units/ . Проверено 8 марта 2024 г.
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ Bell Telephone Laboratories, Incorporated (1979). «Руководство по Unix, седьмое издание» . Мюррей Хилл, Нью-Джерси: Alcatel-Lucent Bell Labs. Архивировано из оригинала 19 октября 2008 г. Проверено 23 апреля 2011 г. Онлайн-архив страниц руководства, входящих в седьмого издания Unix . дистрибутив
- ^ «CVS-репозиторий семейной реликвии» . Проверено 1 февраля 2016 г.
- ^ Мариано, Адриан (2014). «Единицы измерения: программа преобразования единиц и научный калькулятор» . Бостон, Массачусетс: Фонд свободного программного обеспечения, Inc. Проверено 29 марта 2014 г.
- ^ Как указано в нескольких соглашениях NetCDF , например:
- КАРТЫ — «Соглашения по стандартизации файлов NetCDF» . 10 февраля 1995 г. Архивировано из оригинала 27 мая 2010 г. Проверено 12 апреля 2007 г.
- КФ — «Соглашения о метаданных NetCDF по климату и прогнозированию (CF)» . 2014-03-29.
- ^ (немецкий язык) «GNU Units 2.0 вычисляет футы и дюймы» , linux-magazin.de , 3 июля 2012 г.
- ^ Модули GNU версии 2.10, Windows XP SP3, оболочка PTC MKS Korn
- ^ Технический документ № 410, Поток жидкостей через клапаны, фитинги и трубы . Нью-Йорк: Crane Co., 1985.