Exemple #1
0
# Read mask
if maskFile is not None:
    if cfg.general.fileFormat == 'bin':
        mask = np.fromfile(maskFile, np.int32)
    else:
        mask = np.loadtxt(maskFile, np.int32)
else:
    mask = np.arange(N)
NFilled = np.max(mask[mask < N]) + 1

# Read transfer operator spectrum from file and create a bi-orthonormal basis
# of eigenvectors and backward eigenvectors:
print('Readig spectrum for tau = {:.3f}...'.format(tau))
if direct == 'Forward':
    (eigVal, eigVec) \
        = ergoPlot.readSpectrum(eigValForwardFile=eigValFile,
                                eigVecForwardFile=eigVecFile)
if direct == 'Backward':
    (eigVal, eigVec) \
        = ergoPlot.readSpectrum(eigValBackwardFile=eigValFile,
                                eigVecBackwardFile=eigVecFile)
eigVec = eigVec.T
nev = eigVal.shape[0]
eigValGen = np.log(eigVal) / (tau * pdim['tadim2year'])

# Sort
isort = np.argsort(-np.abs(eigVal))
eigVal = eigVal[isort]
eigVec = eigVec[:, isort]

# Plot eigenvectors of transfer operator
alpha = 0.0
Exemple #2
0
# Read mask
if maskFile is not None:
    if fileFormat == 'bin':
        mask = np.fromfile(maskFile, np.int32)
    else:
        mask = np.loadtxt(maskFile, np.int32)
else:
    mask = np.arange(N)
NFilled = np.max(mask[mask < N]) + 1

# Read transfer operator spectrum from file and create a bi-orthonormal basis
# of eigenvectors and backward eigenvectors:
print('Readig spectrum for tauDim = {:.3f}...'.format(tauDim))
(eigValForward, eigValBackward, eigVecForward, eigVecBackward) \
    = ergoPlot.readSpectrum(eigValForwardFile, eigValBackwardFile,
                            eigVecForwardFile, eigVecBackwardFile,
                            makeBiorthonormal=~cfg.spectrum.makeBiorthonormal,
                            fileFormat=fileFormat)

print('Getting conditionning of eigenvectors...')
eigenCondition = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward)

# Get generator eigenvalues
eigValGen = (np.log(np.abs(eigValForward)) +
             np.angle(eigValForward) * 1j) / tau

# Plot eigenvectors of transfer operator
alpha = 0.05
csfilter = 0.5
os.makedirs('{}/spectrum/eigvec'.format(cfg.general.plotDir), exist_ok=True)
os.makedirs('{}/spectrum/reconstruction'.format(cfg.general.plotDir),
            exist_ok=True)
# Read mask
if maskFile is not None:
    if fileFormat == 'bin':
        mask = np.fromfile(maskFile, np.int32)
    else:
        mask = np.loadtxt(maskFile, np.int32)
else:
    mask = np.arange(N)
NFilled = np.max(mask[mask < N]) + 1

# Read transfer operator spectrum from file and create a bi-orthonormal basis
# of eigenvectors and backward eigenvectors:
print('Readig spectrum for tauDim = {:.3f}...'.format(tauDim))
(eigValForward, eigValBackward, eigVecForward, eigVecBackward) \
    = ergoPlot.readSpectrum(eigValForwardFile, eigValBackwardFile,
                            eigVecForwardFile, eigVecBackwardFile,
                            makeBiorthonormal=makeBiorthonormal,
                            fileFormat=fileFormat)
eigenCondition = ergoPlot.getEigenCondition(eigVecForward, eigVecBackward,
                                            statDist)

eigValGenOrig = ergoPlot.eig2Generator(eigValForward, tau)

# Read unfolding eigenvalues
# eigValForwardUnfold = None
st = statDist.copy()
st2 = np.concatenate((st, st))
alpha = 0.05
if unfold:
    print('Readig spectrum for tauDimUnfold = {:.3f} to unfold...'.format(
        tauDimUnfold))
    (eigValForwardUnfold, eigValBackwardUnfold,