Skip to main content

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. RMEMeas and RMEProp for correlated uncertainty propagation using XArray.

  2. AnnotatedArray to define xarray.DataArray structure specifications.

  3. GroupSaveable for serializing heirarchical objects to HDF5.

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

Install with pip

pip install rmellipse

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 new 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

Metadata

Release files for rmellipse 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rmellipse 0.5.1
File Size Uploaded Provenance Actions
rmellipse-0.5.1.tar.gz 63.2 kB Without provenance Details for rmellipse-0.5.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for rmellipse 0.5.1
File Interpreter ABI Platform Actions
rmellipse-0.5.1-py3-none-any.whl Python 3 none any Details for rmellipse-0.5.1-py3-none-any.whl

Total release size: 119.1 kB

Release files / rmellipse-0.5.1.tar.gz

Download URL rmellipse-0.5.1.tar.gz
Size 63.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c032b2643d00e2bf1e110867eb4c18322b4ffd8195469de933faaf619f69877f
BLAKE2b-256 checksum
How to use checksums
94c113f8c6c0f88c0445eca32c912feb0c77ce32d8565975c6bba47d6115ad6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

Release files / rmellipse-0.5.1-py3-none-any.whl

Download URL rmellipse-0.5.1-py3-none-any.whl
Size 55.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e2f334bec167320878f764d3fe63fffc12dccbb7a3144647a2cf8b25467310d
BLAKE2b-256 checksum
How to use checksums
bd0933b5a164b338f3b7d68655cecd5562511904886bd3a8f8b0f94364f3ddeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}

Security for rmellipse 0.5.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page