Skip to main content

A package for propagating uncertainties according to the GUM.

Project description

Rocky Mountain Ellipse

Rocky Mountain Ellipse (RME) is a software package designed to provide an explicit digital record of the metrological traceability of a measurement result. In other words, RME will allows users to build a record that describes how a measurement result can be related to a reference through a documented unbroken chain of calibrations, each contributing to the measurement uncertainty. To show the traceability of measurements, RME provides a flexible, explicit system to organize and annotate scientific data and data analysis workflows.Because measurement uncertainty is closely related to traceability, RME allows users to track how the uncertainty of a measurement results derives from other measurements by providing tools to facilitate measurement uncertainty propagation (linear finite-difference and Monte-Carlo) through arbitrary Python functions. The system is compatible with the BIPM Guide to the expression of uncertainty in measurement (GUM). RME is intended to be part of a FAIR software ecosystem that will facilitate re-use of code and data. This vision includes an online archive that could eventually store records of NIST’s entire traceability chain, and beyond. As part of that vision, this package focuses on the development of three core utilities:

  1. arrschema, a Python module for annotating multi-dimensional array like data-structures with JSON documents, and validating in-memory representations of those structures.

  2. RMEMeas and RMEProp, Python classes for correlated uncertainty propagation using XArray.

  3. A command line tool for producing, releasing, and managing datasets stored and obtained from a CDCS based data archive.

Please see the documentation.

[!NOTE]
RMEllipse is still in development. We expect to make changes that will break backward compatibility. Also, there are known bugs that we have not fixed yet. Specifically, we plan to re-write the Monte-Carlo uncertainty propagation algorithm in RMEProp. Please check back for updates. When we increment the version to 1.0, we expect that that version will be stable.

Installation

Prerequisites:

  • libhdf5-dev
  • gnome-keyring

Dependencies

Install the most recent stable build with uv:

uv add git+https://github.com/usnistgov/rmellipse --branch stable

Or with pip:

pip install git+https://github.com/usnistgov/rmellipse@stable

Developer Tools

It is assumed you have the following programs installed on your computer.

  • uv for package management
  • git bash or similar terminal emulator to run shell scripts if you are on windows.

Clone the repo and run, from the root directory:

uv sync

This will generate the virtual environment for the package.

Install git pre-commit:

uv run pre-commit install

Running Local Tests

In a bash terminal, run:

tools/test.sh
tools/test.sh open

This should execute all the defined tests with pytest. In addition, the open command will open a webpage with detailed reports about code coverage.

Building Local Documentation

Clean the local documentation build (this needs to be run sometimes if you are modifying the documentation and it gets into a broken state). It will reset the build directories and the next call to build it will be completely from scratch.

tools/docs.sh clean

To build a copy of the current state of the documentation with your changes run:

tools/docs.sh html

To build the full documentation with tagged versions and the most recent stable and development changes (this takes a while and is usually only run as part of the release jobs) run:

tools/docs.sh html-multiversioned

To open the documentation (you may have to call open in a newe console) run

tools/docs.sh serve
tools/docs.sh open

This will serve a local copy of the documentation on your local host, and the open command will launch your default web browser directly to that page. Currently, this web page is on port 8000.

Code Profiling

If you are writing a test script, you can run it in a code profile from the cloned directory. This will open a webpage to navigate the statistics of your tests script once it complete.

tools/profile.sh <path/to/script.py>

Acknowledgements

The development of RMEllipse is partially funded through the CHIPS Metrology program. Our goal is to use it to disseminate RF calibration and uncertainty analysis techniques to monitor RF power delivered to plasma etching and deposition tools used in semiconductor manufacturing.

Authors

Contributors names and contact info

Daniel C. Gray, Zenn C. Roberts, Aaron M. Hagerstrom

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

rmellipse-0.4.3a2.tar.gz (99.5 kB view details)

Uploaded Source

Built Distribution

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

rmellipse-0.4.3a2-py3-none-any.whl (101.3 kB view details)

Uploaded Python 3

File details

Details for the file rmellipse-0.4.3a2.tar.gz.

File metadata

  • Download URL: rmellipse-0.4.3a2.tar.gz
  • Upload date:
  • Size: 99.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rmellipse-0.4.3a2.tar.gz
Algorithm Hash digest
SHA256 6922a0758f42637bd7f4031be74f6d60b7f8a23495d74def9d54ec3730d1ac4e
MD5 102264687fcf2bdce7964fb83e9e66f2
BLAKE2b-256 3ea350b0f6d0589570c168e93feb52f2399d0e3354ee78be15cc4b8e7a7adc9c

See more details on using hashes here.

File details

Details for the file rmellipse-0.4.3a2-py3-none-any.whl.

File metadata

  • Download URL: rmellipse-0.4.3a2-py3-none-any.whl
  • Upload date:
  • Size: 101.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rmellipse-0.4.3a2-py3-none-any.whl
Algorithm Hash digest
SHA256 e6d88ffef27058aeea5c8911a95291e9fab7f06549dbded7997f93640396ffb6
MD5 9a1a1fb57581fe7f0b7b1523600da2a4
BLAKE2b-256 4c405bca2b1d4b2d8eea093ecb03da4c5a8cd66ed02252e4eee520fbc45d0ba1

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