Multi-Patch

Multi-Patch Reconstruction

For multi-patch reconstruction the method proposed by Szwargulski et al. is implemented in MPIReco. It is generalized however.

We first discuss the measurements for the multi-patch case. On modern MPI scanners the BrukerFile or MDFFile can be used as is. However, the data that we use in our unit tests consists of several single-patch measurements. to combine these measurements we call

b = MultiMPIFile(["dataMP01", "dataMP02", "dataMP03", "dataMP04"])

b now can be uses as if were a multi-patch file.

Now we get to the system matrix. The most simple approach is to use a single system matrix that was measured at the center. This can be done using

bSF = MultiMPIFile(["SF_MP"])

c = reconstruction(bSF, b; SNRThresh=5, frames=1, minFreq=80e3,
                   recChannels=1:2, iterations=1, spectralLeakageCorrection=false)

The reconstruction parameters are not special here but are the same as discussed in the Parameters section.

It is also possible to use multiple system matrices, which is currently the best way to take field imperfection into account. Our test data has four patches and we therefore can use

bSF = MultiMPIFile(["SF_MP01", "SF_MP02", "SF_MP03", "SF_MP04"])

c = reconstruction(bSF, b; SNRThresh=5, frames=1, minFreq=80e3,
                   recChannels=1:2, iterations=1, spectralLeakageCorrection=false)

Now we want somewhat more flexibility and

All those thing can be done as is shown in the following example

bSFs = MultiMPIFile(["SF_MP01", "SF_MP02", "SF_MP03", "SF_MP04"])
mapping = [1,2,3,4]
freq = filterFrequencies(bSFs, SNRThresh=5, minFreq=80e3)
S = [getSF(SF,freq,nothing,"kaczmarz", bgcorrection=false)[1] for SF in bSFs]
SFGridCenter = zeros(3,4)
FFPos = zeros(3,4)
FFPos[:,1] = [-0.008, 0.008, 0.0]
FFPos[:,2] = [-0.008, -0.008, 0.0]
FFPos[:,3] = [0.008, 0.008, 0.0]
FFPos[:,4] = [0.008, -0.008, 0.0]
c4 = reconstruction(bSFs, b; SNRThresh=5, frames=1, minFreq=80e3,
        recChannels=1:2,iterations=1, spectralLeakageCorrection=false,
        mapping=mapping, systemMatrices = S, SFGridCenter=SFGridCenter,
        FFPos=FFPos, FFPosSF=FFPos)