readSifData: Reloaded System Matrix

Description Usage Arguments Details Value Author(s) References Examples

View source: R/readSifData.r

Description

The function reloaded a system matrix stored by iradonIT.

Usage

1
readSifData(filename, DebugLevel = "Normal")

Arguments

filename

(character) filename gives the name of the ".sif"-file to read, including the pathname to the file.

DebugLevel

(character) This parameter controls the level of output. Defaults to DebugLevel="Normal" for a standard level output. Alternative implementations are "Detail" if it is desirable to show almost all output on screen or "HardCore" for no information at all.

Details

If fast iterative reconstruction methods (iradonIT with parameters UseFast = 1 and KernelFileSave = 1) are used, the system matrix will be saved with the name KernelFileName. See to help of iradonIT to get detail information about these parameters. The speed of the reconstruction can obviously be increased by using of an existing system matrix.

The system matrix will be stored as a binary ".sif"-file with the following structure: At first a header is defined, then the raw data follows. The form of the header is shown below. The raw data will be stored in a ".sif"-file in the following form:
At first M integers N_m, m=1,…,M are stored, which specify the number of value in each row m. Then the N_m indicies (integers) follow alternatingly for the appropriate columns and N_m accordingly (float) values for each row. Thus, a sparse matrix is defined, i.e. a (M,N)-matrix without zero-elements.

Header:

[1] XSamples (integer) [18] mode (integer)
[2] YSamples (integer) [19] UseFast (integer)
[3] DeltaX (float) [20] ConstrainMin (float)
[4] DeltaY (float) [21] ConstrainMax (float)
[5] Xmin (float) [22] Alpha (float)
[6] Ymin (float) [23] Beta (float)
[7] ThetaSamples (integer) [24] IterationType (integer)
[8] RhoSamples (integer) [25] KernelFileSave (integer)
[9] DeltaRho (float) [26] SaveIterations (integer)
[10] DeltaTheta (float) [27] RefFileName (200-byte character)
[11] ThetaMin (float) [28] KernelFileName (200-byte character)
[12] RhoMin (float) [29] InFileName (200-byte character)
[13] LowestALevel (float) [30] OutFileName (200-byte character)
[14] RadonKernel (integer) [31] SaveIterationsName (200-byte character)
[15] OverSamp (integer) [32] M (integer)
[16] Regularization (float) [33] N (integer)
[17] Iterations (integer)

M = RhoSamples*ThetaSamples, N = XSamples*YSamples, InFileName = "InputData" and OutFileName = "OutputData".
The other parameters are described in detail in the function iradonIT, but note that RadonKernel will be stored as an integer ("NN" = 1, "RNN" = 2, "RL" = 3, "P1" = 4 and "P2" = 5), mode will be stored as an integer ("ART" = 0, "EM" = 1, "CG" = 2) and IterationType will be stored as an integer ("random" = 0, "cyclic" = 1).

Value

MIndexNumber

A vector of M integers N_m, m=1,…,M, that specify the number of values in each row m.

SparseIndex

A list of N_m indicies (integers) for the appropriate columns.

SparseSignal

A list of N_m accordingly (float) values for each row.

Header

A list of all values defined above in Header.

Author(s)

Joern Schulz, jschulz78@web.de.

References

Toft, Peter, Ph.D. Thesis, The Radon Transform - Theory and Implementation, Department of Mathematical Modelling Section for Digital Signal Processing, Technical University of Denmark, 1996.

Schulz, Joern, Diploma Thesis: Analyse von PET Daten unter Einsatz adaptiver Glaettungsverfahren, Humboldt-Universitaet zu Berlin, Institut fuer Mathematik, 2006.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## Not run: 
P <- phantom(n=101)
rP <- markPoisson(P, nSample=1800000)
irP <- iradonIT(rP$rData, 101, 101, KernelFileSave=1, 
              KernelFileName="SystemMatrix.sif")
rm(irP,P,rP)

# reading the sif-matrix:
SysMat <- readSifData("SystemMatrix.sif")
names(SysMat)
SysMat$Header
rm(SysMat)

## End(Not run)

PET documentation built on May 2, 2019, 2:43 a.m.