Natural units in Python
This project is currently in a pre-release state. It will be
officially released once the unit tests are complete.
natu is a free, open-source package to represent physical quantities. There
are many Python packages that deal with units and quantities, but natu is uniquely
system-independent. The units are derived from physical constants with
adjustable values and dimensions. The value of a unit is factored into a
quantity so that the quantity is not “in” any particular unit. This has the
- Flexible: Different unit systems, including natural units (hence the
name “natu”), can be represented by simply adjusting the base physical
- Simple: Unit conversion is inherent. This results in quick computations
and a small code base (about 1500 lines). By default, dimensions and display
units are tracked to catch errors and for string formatting. This can be
disabled to nearly eliminate the computational overhead while still providing
the core features.
- Intuitive: Each unit is a fixed quantity that is treated as a
mathematical entity. A variable quantity is expressed as the product of a
number and a unit, as stated by BIPM.
- Representative: The design reflects the way modern units are defined.
Standards organizations such as NIST assign values to universal physical
constants so that the values of units can be determined by physical
experiments instead of prototypes.
- Scalable: The values of the base physical constants can scaled to prevent
exponent overflow, regardless of the units used.
For example, you can do this:
>>> from natu.units import degC, K
>>> 0*degC + 100*K
Please see the main website and the tutorial
for more examples.
The easiest way to install natu is to use pip:
> pip install natu
On Linux, it may be necessary to have root privileges:
$ sudo pip install natu
License terms and development
natu is published under a BSD-compatible license. Please share any
improvements you make, preferably as a pull request to the master branch of
the GitHub repository. There are useful development scripts in the hooks
folder. If you find a
bug, have a suggestion, or just want to leave a comment, please open an issue.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.