safe_write_tac#

petpal.utils.time_activity_curve.safe_write_tac(filename: str, tac_data: numpy.ndarray, col_names: list[str] = None)#

Writes the data in a time-activity curve (TAC) to a file. Assumes the TAC data consists of a contiguous numpy array with two or three columns: time, activity, and (optionally) uncertainty.

Parameters:
  • filename (str) – Path to the file the data will be saved as.

  • tac_data (np.ndarray) – Numpy array containing the data for the TAC. Assumes the TAC data consists of a contiguous numpy array with two or three columns: time, activity, and (optionally) uncertainty.

  • col_names (list[str]) – List of column names assigned to the time, activity, and uncertainty columns in the TAC data, respectively. Must match number of columns in tac_data.

Raises:

ValueError – If the number of columns in tac_data is not two or three, or the number of columns in tac_data does not match the number of columns in col_names.

Example

import numpy as np
from petpal.utils.time_activity_curve import safe_load_tac, safe_write_tac

my_tac = safe_load_tac(filename='/path/to/tac.tsv')
my_tac_modified = np.zeros_like(my_tac)
my_tac_modified[0] = my_tac[0] / 60 # convert time units to hours
my_tac_modified[1] = my_tac[1] / 37000 # convert activity units to mCi
my_tac_modified[2] = my_tac[2] / 37000 # convert uncertainties like activity
safe_write_tac(filename='/path/to/new_tac.tsv',
               tac_data=my_tac_modified)