Newer
Older
import numpy as np
import json
from pathlib import Path
from ...common import PyProjectionGeometry, PyProjection, PyRegionOfIntrest
class BaseDataWriter():
projection_name: str = 'projection'
projection_geometry_name: str ='geometry'
region_of_intrest_name: str = 'roi'
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_next_projection_save_path(self, save_folder: Path) -> Path:
return self.get_projection_save_path_i(save_folder, self.number_of_projections(save_folder) + 1)
def get_projection_save_path_i(self, save_folder: Path, i) -> Path:
return save_folder / f'{self.projection_name}_{i:05}{self.projection_suffix}'
def get_next_projection_geometry_save_path(self, save_folder: Path) -> Path:
return self.get_projection_geometry_save_path_i(save_folder, self.number_of_projection_geometries(save_folder) + 1)
def get_projection_geometry_save_path_i(self, save_folder: Path, i) -> Path:
return save_folder / f'{self.projection_geometry_name}_{i:05}{self.porjection_geometry_suffix}'
def get_next_region_of_intrest_save_path(self, save_folder: Path) -> Path:
return self.get_region_of_intrest_save_path_i(save_folder, self.number_of_region_of_intrests(save_folder) + 1)
def get_region_of_intrest_save_path_i(self, save_folder: Path, i) -> Path:
return save_folder / f'{self.region_of_intrest_name}_{i:05}{self.region_of_intrest_suffix}'
return len(list(folder.glob(f'{self.projection_geometry_name}*{self.porjection_geometry_suffix}')))