Tools for working with common Passive House unit types
Project description
PH-Units:
A package for converting common Passive House unit types (IP | SI).
Usage:
The most basic usage is a simple conversion from one known unit to another:
>>> from ph_units.converter import convert
>>> # Convert 12.45 meters to feet...
>>> convert(12.45, "M", "FT") -> 40.85 # FT
The package also has a parser which can take simple text in the format: "{value} {unit}"
and will split apart the text into a numeric part and a unit part:
>>> from ph_units.parser import parse_input
>>> val, unit = parse_input("0.17 BTU/HR-FT2-F")
>>> val # 0.17
>>> unit # 'BTU/HR-FT2-F'
The results of the parser can then be fed into the converter
>>> from ph_units.converter import convert
>>> convert(val, "W/MK", unit) -> 0.098 # BTU/HR-FT2-F
Unit Types Supported:
- area (M2, FT2)
- density (KG/M3, LB/FT3)
- emissions factors (G/KWH)
- energy (Wh/M3, Wh/M2, kW/M2, kBtu/ft2, Btu/ft2)
- envelope (U-Value, R-Value)
- length (M, CM, MM, IN, FT)
- moisture vapor resistance (MNS/G, PERM-IN)
- power (kW, W, W/M2, W/ft2, W/cfm, Btu/h-ft2, Btu/h)
- speed (m/d, m/s, m/h, ft/s, ft/d)
- temperature (C, F)
- volume flow (M3/HR, CFM)
- volume (M2, FT3, LITER, GALLON)
Adding New Units:
The conversion factors used are stored as types in the ph_units.unit_types
directory. Note that the types also allow for common 'alias' descriptions ie: 'feet' can be denoted as "FT", "ft." or even the symbol '
The Unit
Type:
The package also includes a new Unit
type which subclasses from float
but also retains the unit-type information. This allows for easy conversion between units. For example:
>>> from ph_units.unit_type import Unit
>>> a_meter_value = Unit(1.0, "M")
>>> print(a_meter_value)
>>> "1.0 (M)"
>>> a_foot_value = a_meter_value.as_a("FT")
>>> print(a_foot_value)
>>> "3.281(FT)"
This Unit
type supports basic mathematical operations like addition and subtraction, as well as unit-related operations like 'inversion'.
The Unit
type also supports serialization and deserialization to and from JSON. Additionally, the Unit
type can be used as a dataclass
field type and should serialize properly when dataclass as_dict
is called on the parent object.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for PH_units-1.5.15-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3750cb667d25574a37aa58b14f10d77c3d4d2e1fec4949eb8746b139e1bee091 |
|
MD5 | 0633f62d96f5e73fb63987a9c07a3d9d |
|
BLAKE2b-256 | d6c45d6150008e9bf24637c48bc0fb8b45f4a8b2b1281b4f022ae0f9c753b798 |