From b1dd679faf3175ba9258f76440fa1d9ba51a9875 Mon Sep 17 00:00:00 2001 From: Casper da Costa-Luis Date: Wed, 31 Jul 2024 18:34:57 +0100 Subject: [PATCH] misc tidy & import fixes --- SIRF_data_preparation/__init__.py | 0 SIRF_data_preparation/evaluation_utilities.py | 6 +++--- SIRF_data_preparation/plot_BSREM_metrics.py | 5 +++-- SIRF_data_preparation/prepare_mMR_NEMA_IQ_data.py | 2 +- petric.py | 3 ++- 5 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 SIRF_data_preparation/__init__.py diff --git a/SIRF_data_preparation/__init__.py b/SIRF_data_preparation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/SIRF_data_preparation/evaluation_utilities.py b/SIRF_data_preparation/evaluation_utilities.py index 29cf75b..a9740c8 100644 --- a/SIRF_data_preparation/evaluation_utilities.py +++ b/SIRF_data_preparation/evaluation_utilities.py @@ -1,7 +1,7 @@ """Some utilities for plotting objectives and metrics.""" import csv from pathlib import Path -from typing import Iterator +from typing import Iterable, Iterator import matplotlib.pyplot as plt import numpy as np @@ -19,7 +19,7 @@ def read_objectives(datadir='.'): return np.asarray([tuple(map(float, row)) for row in reader]) -def get_metrics(qm: QualityMetrics, iters: Iterator[int], srcdir='.'): +def get_metrics(qm: QualityMetrics, iters: Iterable[int], srcdir='.'): """Read 'iter_{iter_glob}.hv' images from datadir, compute metrics and return as 2d array""" return np.asarray([ list(qm.evaluate(STIR.ImageData(str(Path(srcdir) / f'iter_{i:04d}.hv'))).values()) for i in iters]) @@ -40,7 +40,7 @@ def pass_index(metrics: np.ndarray, thresh: Iterator, window: int = 1) -> int: return np.where(res)[0][0] -def plot_metrics(iters: Iterator[int], m: np.ndarray, labels=None, suffix=""): +def plot_metrics(iters: Iterable[int], m: np.ndarray, labels=None, suffix=""): """Make 2 subplots of metrics""" if labels is None: labels = [""] * m.shape[1] diff --git a/SIRF_data_preparation/plot_BSREM_metrics.py b/SIRF_data_preparation/plot_BSREM_metrics.py index 60902e3..5240416 100644 --- a/SIRF_data_preparation/plot_BSREM_metrics.py +++ b/SIRF_data_preparation/plot_BSREM_metrics.py @@ -7,9 +7,10 @@ import numpy import sirf.STIR as STIR -import SIRF_data_preparation.data_QC as data_QC from petric import OUTDIR, SRCDIR, QualityMetrics, get_data -from SIRF_data_preparation.evaluation_utilities import get_metrics, pass_index, plot_metrics, read_objectives + +from . import data_QC +from .evaluation_utilities import get_metrics, pass_index, plot_metrics, read_objectives if not all((SRCDIR.is_dir(), OUTDIR.is_dir())): PETRICDIR = Path('~/devel/PETRIC').expanduser() diff --git a/SIRF_data_preparation/prepare_mMR_NEMA_IQ_data.py b/SIRF_data_preparation/prepare_mMR_NEMA_IQ_data.py index c22f824..6f301e6 100644 --- a/SIRF_data_preparation/prepare_mMR_NEMA_IQ_data.py +++ b/SIRF_data_preparation/prepare_mMR_NEMA_IQ_data.py @@ -2,7 +2,7 @@ import logging import os -from data_utilities import prepare_challenge_Siemens_data, the_data_path +from .data_utilities import prepare_challenge_Siemens_data, the_data_path this_directory = os.path.dirname(__file__) # sys.path.append(this_directory) diff --git a/petric.py b/petric.py index 1393a39..0222877 100755 --- a/petric.py +++ b/petric.py @@ -20,7 +20,6 @@ from dataclasses import dataclass from pathlib import Path from time import time -from traceback import print_exc import numpy as np from skimage.metrics import mean_squared_error as mse @@ -261,6 +260,8 @@ def get_image(fname): data = get_data(srcdir=srcdir, outdir=outdir) metrics[0].reset() else: + from traceback import print_exc + from docopt import docopt args = docopt(__doc__) logging.basicConfig(level=getattr(logging, args["--log"].upper()))