Skip to main content

tools for dealing with physical quantities: uncertainty propagation and unit conversion

Project description

MetroloPy

tools for dealing with physical quantities: uncertainty propagation and unit conversion


MetroloPy requires Python 3.8 or later and depends on NumPy, SciPy, pandas, matplotlib and ipython. It looks best in a Jupyter Notebook.

Install MetroloPy with pip install metrolopy or conda install -c conda-forge metrolopy. Alternatively, add it to your uv or pixi project.

Physical quantities can then be represented in Python as gummy objects with an uncertainty and (or) a unit:

>>> import metrolopy as uc
>>> a = uc.gummy(1.2345,u=0.0234,unit='cm')
>>> a
1.234(23) cm

>>> b = uc.gummy(3.034,u=0.174,unit='mm')
>>> f = uc.gummy(uc.UniformDist(center=0.9345,half_width=0.096),unit='N')
>>> p = f/(a*b)
>>> p
2.50(21) N/cm2

>>> p.unit = 'kPa'
>>> p.uunit = '%'
>>> p
25.0 kPa ± 8.5%

MetroloPy can do much more including Monte-Carlo uncertainty propagation, generating uncertainty budget tables, and curve fitting. It can also handle expanded uncertainties, degrees of freedom, correlated quantities, and complex valued quantities. Also gummys work with many numpy functions with no wrapping.

See:

new in version 1.0.0

  • The calculation of effective degrees of freedom has been improved. In previous versions, in a multi-step calculation, the effective degree of freedom were calculated at each step based on the degrees of freedom calculated for the previous step (using a modified Welch-Satterthwaite approximation). Now effective degrees of freedom are always calculated directly from the independent variables using the Welch-Satterthwaite equation.

  • CODATA 2022 values instead of 2018 values are used in the Constants module.

  • The significance value in budget table has been redefined from (sensitivity coefficient * standard uncertainty/combined uncertainty) to the square of that value so that the significance values in a budget sum to one.

  • Units can now be raised to a fractional power and many other bug fixes.

new in version 0.6.0

  • A constant library has been added with physical constants that can be accessed by name or alias with the constant function. The search_constants function with no argument gives a listing of all built-in constants. Each constant definition includes any correlations with other constants.

  • The Quantity class has been added to represent a general numerical value multiplied by a unit and the unit function has been added to retrieve Unit instances from the unit library by name or alias. Unit instances can now be multiplied and divided by other Unit instances to produce composite units, can be multiplied and divided by numbers to produce Quantity instances or multiply or divide Quantity instances. The gummy class is now a subclass of Quantity with a nummy value rather than a subclass of nummy. A QuantityArray class has been introduced to represent an array of values all with the same unit. Multiplying a Unit instance by a list, tuple, or numpy array produces a QuantityArray instance.

  • The immy class has been introduced as an ummy valued counterpart of the jummy class for representing complex values with uncertainties. immy and jummy values can now be displayed in a polar representation in addition to a cartesian representation. immy and jummy .r and .phi properties have been added to access the magnitude and argument of the values as a complement to the .real and .imag properties.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metrolopy-1.0.4.tar.gz (170.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metrolopy-1.0.4-py3-none-any.whl (190.6 kB view details)

Uploaded Python 3

File details

Details for the file metrolopy-1.0.4.tar.gz.

File metadata

  • Download URL: metrolopy-1.0.4.tar.gz
  • Upload date:
  • Size: 170.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for metrolopy-1.0.4.tar.gz
Algorithm Hash digest
SHA256 bdc82934d67dc8ad1ee403cda0240466e049553cf63dc85d1844e037f1f1f7f7
MD5 795394855630d8c6768f9c3aec8091cf
BLAKE2b-256 fa163db1594b3591cca585ae8b3a55927b8c3d3cfcb5cc4c80ca45bd15b4b8c8

See more details on using hashes here.

File details

Details for the file metrolopy-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: metrolopy-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 190.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for metrolopy-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d57c3bf35bfed86c98c19349807a88bcdd7b8b6054191909f27ad1a08249e65c
MD5 ac7e27bacd5a65440b7e8b0794dacd0e
BLAKE2b-256 58f1bb60426d67fcbb148297214cc34d07d377d2e7cc774d7d4418ddde4003e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page