feat(utils/opatio): added python module for interfacing with opat files

A python module (opatio) has been written to make the creation and reading of opat files straight forward
This commit is contained in:
2025-02-15 11:50:39 -05:00
parent 6b777b220a
commit 4ec8293088
5 changed files with 340 additions and 0 deletions

46
utils/opatio/readme.md Normal file
View File

@@ -0,0 +1,46 @@
# opatIO python module
This module defines a set of tools to build, write, and read OPAT files.
The OPAT fileformat is a custom file format designed to efficiently store
opacity information for a variety of compositions.
## Installation
You can install this module with pip
```bash
git clone <repo>
cd 4DSSE/utils/opat
pip install .
```
## General Usage
The general way that this module is mean to be used is to first build a schema for the opaticy table and then save that to disk. The module will handle all the byte aligment and lookup table construction for you.
A simple example might look like the following
```python
from opatio import OpatIO
opacityFile = OpatIO()
opacityFile.set_comment("This is a sample opacity file")
opaticyFile.set_source("OPLIB")
# some code to get a logR, logT, and logKappa table
# where logKappa is of size (n,m) if logR is size n and
# logT is size m
opacityFile.add_table(X, Z, logR, logT, logKappa)
opacityFile.save("opacity.opat")
```
You can also read opat files which have been generated with the loadOpat function
```python
from opatio import loadOpat
opacityFile = loadOpat("opacity.opat")
print(opacityFile.header)
print(opaticyFile.tables[0])
```
## Problems
If you have problems feel free to either submit an issue to the root github repo (tagged as utils/opatio) or email Emily Boudreaux at emily.boudreaux@dartmouth.edu