The purpose of this repo is to have a working example of a data model for PET imaging (list mode data). This is not complete.
The Emission Tomography Standardization Initiative (ETSI) is working towards establishing a standard for PET Raw Data, called PETSIRD ("PET ETSI Raw Data").
The specification uses the yardl tool to define the model.
yardl can be used to read the specification (in the model directory) and
generate an SDK for both C++ and Python to read/write PETSIRD data.
If you don't want to modify the yardl model, just pip install petsird. More detail is in the python/README.md.
You can use conda install conda-forge::libpetsird.
-
Open this repo in GitHub Codespaces or in a VS Code devcontainer. This codespace/container will contain all necessary tools, including
yardlitself, as well as the current repository. Alternatively, you can also create a conda environment, run theinstall_yardl.shscript, and add$PWD/yardlto yourPATH. -
Browse the
modeldirectory. -
Use
yardlto generate C++ and Python code for the model and compile/install:cd /wherever/PETSIRD just build -
Have a look at (and try!) the examples in the
cppand/orpythondirectories.
-
Use
pre-commitbefore you push to GitHub. -
If it is necessary to update
yardl, edit theinstall_yardl.shscript. -
When creating a new release, you need to
- update the version in
cpp/CMakeLists.txt(sorry) - merge to
main - run
VER=vx.x.x git tag -a ${VER} -m ${VER} git push origin ${VER}
- edit the draft release automatically created on GitHub and publish it
- update the version in