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)