# 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
# 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,