Skip to content
Snippets Groups Projects
writer.py 1.54 KiB
Newer Older
Simon Wittl's avatar
dev
Simon Wittl committed
import numpy as np
import json
from pathlib import Path
from ...common import PyProjectionGeometry, PyProjection, PyRegionOfIntrest


class BaseDataWriter():
    def __init__(self, 
                 porjection_geometry_suffix: str, 
                 projection_suffix: str,
                 region_of_intrest_suffix: str):
        
        self.porjection_geometry_suffix = porjection_geometry_suffix
        self.projection_suffix = projection_suffix
        self.region_of_intrest_suffix = region_of_intrest_suffix

    def write_projection_geometry(self, save_path: Path, projection_geometry: PyProjectionGeometry):
        raise NotImplementedError
    
    def write_projection(self, save_path: Path, projection: PyProjection):
        raise NotImplementedError
    
    def write_region_of_intrest(self, save_path: Path, region_of_intrest: PyRegionOfIntrest):
        raise NotImplementedError
    
    def get_projection_geometry_geometry_save_path(self, save_folder: Path, save_name: str) -> Path:
        raise NotImplementedError
    
    def get_projection_geometry_save_path(self, save_folder: Path, save_name: str) -> Path:
        raise NotImplementedError
    
    def get_region_of_intrest_save_path(self, save_folder: Path, save_name: str) -> Path:
        raise NotImplementedError
    
    def number_of_projection_geometries(self, folder: Path) -> int:
        return len(list(folder.glob(f'*{self.porjection_geometry_suffix}')))
    
    def number_of_projections(self, folder: Path) -> int:
        return self.number_of_projection_geometries(folder)