Source code for pytomography.metadata.PET.pet_sinogram_metadata
from __future__ import annotations
import pytomography
from pytomography.io.PET import shared
from .pet_tof_metadata import PETTOFMeta
[docs]class PETSinogramPolygonProjMeta():
"""PET Sinogram metadata class for polygonal scanner geometry
Args:
info (dict): PET geometry information dictionary
tof_meta (PETTOFMeta | None, optional): PET time of flight metadata. If None, then assumes no time of flight. Defaults to None.
"""
def __init__(
self,
info: dict,
tof_meta: PETTOFMeta | None = None
):
self.info = info
scanner_LUT = shared.get_scanner_LUT(info)
self.scanner_lut = scanner_LUT
self.detector_coordinates, self.ring_coordinates = shared.sinogram_to_spatial(info)
self.detector_coordinates = self.detector_coordinates.to(pytomography.device)
self.ring_coordinates = self.ring_coordinates.to(pytomography.device)
self.shape = [self.detector_coordinates.shape[0], self.detector_coordinates.shape[1], self.ring_coordinates.shape[0]]
self.N_angles = self.detector_coordinates.shape[0]
self.tof_meta = tof_meta