In [1]:
# import numpy as np

# # !/usr/bin/env python3
# # -*- coding: utf-8 -*-
# """
# Created on 20181219

# @author: zhangji

# Trajection of a ellipse, Jeffery equation. 
# """

# %pylab inline
# pylab.rcParams['figure.figsize'] = (25, 11)
# fontsize = 40

# import numpy as np
# import scipy as sp
# from scipy.optimize import leastsq, curve_fit
# from scipy import interpolate
# from scipy.interpolate import interp1d
# from scipy.io import loadmat, savemat
# # import scipy.misc

# import matplotlib
# from matplotlib import pyplot as plt
# from matplotlib import animation, rc
# import matplotlib.ticker as mtick
# from mpl_toolkits.axes_grid1.inset_locator import inset_axes, zoomed_inset_axes
# from mpl_toolkits.mplot3d import Axes3D, axes3d

# from sympy import symbols, simplify, series, exp
# from sympy.matrices import Matrix
# from sympy.solvers import solve

# from IPython.display import display, HTML
# from tqdm import tqdm_notebook as tqdm
# import pandas as pd
# import re
# from scanf import scanf
# import os
# import glob

# from codeStore import support_fun as spf
# from src.support_class import *
# from src import stokes_flow as sf

# rc('animation', html='html5')
# PWD = os.getcwd()
# font = {'size': 20}
# matplotlib.rc('font', **font)
# np.set_printoptions(linewidth=90, precision=5)

%load_ext autoreload
%autoreload 2

from tqdm.notebook import tqdm as tqdm_notebook
import os
import glob
import natsort 
import numpy as np
import scipy as sp
from scipy.optimize import leastsq, curve_fit
from scipy import interpolate, integrate
from scipy import spatial, signal
# from scipy.interpolate import interp1d
from scipy.io import loadmat, savemat
# import scipy.misc
import importlib
from IPython.display import display, HTML
import pandas as pd
import pickle
import re
from scanf import scanf

import matplotlib
# matplotlib.use('agg')
from matplotlib import pyplot as plt
import matplotlib.colors as colors
from matplotlib import animation, rc
import matplotlib.ticker as mtick
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, zoomed_inset_axes
from mpl_toolkits.mplot3d import Axes3D, axes3d
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
from mpl_toolkits.mplot3d.art3d import Line3DCollection
from matplotlib import cm

from tqdm import tqdm, tqdm_notebook
from time import time
from src.support_class import *
from src import jeffery_model as jm
from codeStore import support_fun as spf
from codeStore import support_fun_table as spf_tb

# %matplotlib notebook
%matplotlib inline
rc('animation', html='html5')
fontsize = 40
PWD = os.getcwd()

In [2]:
fig = plt.figure(figsize=(2, 2))
fig.patch.set_facecolor('white')
ax0 = fig.add_subplot(1, 1, 1)



In [3]:
job_dir = 'ecoC01B05_wt0.1_psi-0a'
table_name = 'ecoC01B05_tao1_wm0.1'

In [12]:
# show phase map of theta-phi, load date
importlib.reload(spf_tb)

t_headle = '(.*?).pickle'
t_path = os.listdir(os.path.join(PWD, job_dir))
filename_list = [filename for filename in os.listdir(os.path.join(PWD, job_dir)) 
                 if re.match(t_headle, filename) is not None]
ini_theta_list = []
ini_phi_list = []
lst_eta_list = []
theta_max_fre_list = []
phi_max_fre_list = []
psi_max_fre_list = []
eta_max_fre_list = []
pickle_path_list = []
idx_list = []
for i0, tname in enumerate(tqdm_notebook(filename_list[:])):
    tpath = os.path.join(PWD, job_dir, tname)
    with open(tpath, 'rb') as handle:
        tpick = pickle.load(handle)
    ini_theta_list.append(tpick['ini_theta'])
    ini_phi_list.append(tpick['ini_phi'])
    lst_eta_list.append(tpick['Table_eta'][-1])
    pickle_path_list.append(tpath)
    idx_list.append(i0)
    
    # fft rule
    tx = tpick['Table_t']
    tmin = np.max((0, tx.max() - 1000))
    idx = tx > tmin    
    freq_pk = spf_tb.get_major_fre(tx[idx], tpick['Table_theta'][idx])
    idx = tx > (tx.max() - 1 / freq_pk * 10)
    theta_max_fre_list.append(spf_tb.get_major_fre(tx[idx], tpick['Table_theta'][idx]))
    phi_max_fre_list.append(spf_tb.get_major_fre(tx[idx], tpick['Table_phi'][idx]))
    psi_max_fre_list.append(spf_tb.get_major_fre(tx[idx], tpick['Table_psi'][idx]))
    eta_max_fre_list.append(spf_tb.get_major_fre(tx[idx], tpick['Table_eta'][idx]))

data0 = pd.DataFrame({'ini_theta': np.around(ini_theta_list, 3), 
                 'ini_phi': np.around(ini_phi_list, 3), 
                 'lst_eta': np.around(lst_eta_list, 3), 
                 'theta_max_fre': theta_max_fre_list, 
                 'phi_max_fre': phi_max_fre_list, 
                 'psi_max_fre': psi_max_fre_list, 
                 'eta_max_fre': eta_max_fre_list, 
                 'data_idx': idx_list })
data = data0.pivot_table(index=['ini_theta'], columns=['ini_phi'])
lst_eta = data.lst_eta
theta_max_fre = data.theta_max_fre
phi_max_fre = data.phi_max_fre
psi_max_fre = data.psi_max_fre
eta_max_fre = data.eta_max_fre
data_idx = data.data_idx.fillna(-1).astype(int)


/anaconda3/envs/py35/lib/python3.5/site-packages/ipykernel_launcher.py:17: TqdmDeprecationWarning: This function will be removed in tqdm==5.0.0
Please use `tqdm.notebook.tqdm` instead of `tqdm.tqdm_notebook`


In [5]:
# check if the 3D parameter space is been traversed or not 
do_check = False
if do_check:
    t_headle = '(.*?).pickle'
    t_path = os.listdir(os.path.join(PWD, job_dir))
    filename_list = [filename for filename in os.listdir(os.path.join(PWD, job_dir)) 
                     if re.match(t_headle, filename) is not None]
    ttheta = []
    tphi = []
    tpsi = []
    for i0, tname in enumerate(tqdm_notebook(filename_list[:])):
        tpath = os.path.join(PWD, job_dir, tname)
        with open(tpath, 'rb') as handle:
            tpick = pickle.load(handle)
        ttheta.append(tpick['Table_theta'])
        tphi.append(tpick['Table_phi'])
        tpsi.append(tpick['Table_psi'])

    ttheta, tphi, tpsi = np.hstack(ttheta), np.hstack(tphi), np.hstack(tpsi)
    from evtk.hl import pointsToVTK
    vtu_name = '/home/zhangji/check_th_ph_ps_%s' % job_dir
    pointsToVTK(vtu_name, 
                ttheta, tphi, tpsi, 
                data={'th_ph_ps': ttheta})
    print('save theta_phi_psi infomation to %s' % vtu_name)

In [6]:
# sort phase map of theta-phi using the name beging with pick frequience
importlib.reload(spf_tb)
do_sort = False

if do_sort:
    # clear dir
    dirpath = os.path.join(PWD, job_dir, 'th_ph_fft')
    if os.path.exists(dirpath) and os.path.isdir(dirpath):
        import shutil
        shutil.rmtree(dirpath)
        print('remove folder %s' % dirpath)
    os.makedirs(dirpath)
    print('make folder %s' % dirpath)
    
    t_headle = '(.*?).pickle'
    t_path = os.listdir(os.path.join(PWD, job_dir))
    filename_list = [filename for filename in os.listdir(os.path.join(PWD, job_dir)) 
                     if re.match(t_headle, filename) is not None]
    for tname in tqdm_notebook(filename_list[:]):
        tpath = os.path.join(PWD, job_dir, tname)
        with open(tpath, 'rb') as handle:
            tpick = pickle.load(handle)
        Table_t = tpick['Table_t']
        Table_dt = tpick['Table_dt']
        Table_X = tpick['Table_X']
        Table_P = tpick['Table_P']
        Table_P2 = tpick['Table_P2']
        Table_theta = tpick['Table_theta']
        Table_phi = tpick['Table_phi']
        Table_psi = tpick['Table_psi']
        Table_eta = tpick['Table_eta']

        tmin = np.max((0, Table_t.max() - 1000))
        idx = Table_t > tmin    
        freq_pk = spf_tb.get_major_fre(Table_t[idx], Table_theta[idx])
        idx = Table_t > (Table_t.max() - 1 / freq_pk * 10)
        save_name = 'fre%.5f_%s.jpg' % (freq_pk, os.path.splitext(os.path.basename(tname))[0])
        fig = spf_tb.light_save_theta_phi(os.path.join(dirpath, save_name), 
                                    Table_t[idx], Table_dt[idx], Table_X[idx], Table_P[idx], Table_P2[idx], 
                                    Table_theta[idx], Table_phi[idx], Table_psi[idx], Table_eta[idx])
        plt.close(fig)

In [8]:
importlib.reload(spf_tb)
theta, phi = 0, 0

tpick, _ = spf_tb.load_table_date_pickle(job_dir, theta, phi)
Table_t = tpick['Table_t']
Table_dt = tpick['Table_dt']
Table_X = tpick['Table_X']
Table_P = tpick['Table_P']
Table_P2 = tpick['Table_P2']
Table_theta = tpick['Table_theta']
Table_phi = tpick['Table_phi']
Table_psi = tpick['Table_psi']
Table_eta = tpick['Table_eta']
print('-ini_theta %f -ini_phi %f -ini_psi %f' % 
      (tpick['Table_theta'][0], tpick['Table_phi'][0], tpick['Table_psi'][0]))

# freq_pk = spf_tb.get_major_fre(Table_t, Table_theta)
# idx = Table_t > Table_t.max() - 1 / freq_pk * 10
idx = Table_t < 1000
# spf_tb.show_table_result(Table_t[idx], Table_dt[idx], Table_X[idx], Table_P[idx], Table_P2[idx], 
#                          Table_theta[idx], Table_phi[idx], Table_psi[idx], Table_eta[idx], save_every)
spf_tb.show_theta_phi(Table_t[idx], Table_dt[idx], Table_X[idx], Table_P[idx], Table_P2[idx], 
                      Table_theta[idx], Table_phi[idx], Table_psi[idx], Table_eta[idx], show_back_direction=0)
# spf_tb.show_theta_phi_psi_eta(Table_t[idx], Table_dt[idx], Table_X[idx], Table_P[idx], Table_P2[idx], 
#                               Table_theta[idx], Table_phi[idx], Table_psi[idx], Table_eta[idx])
# spf_tb.show_center_X(Table_t[idx], Table_dt[idx], Table_X[idx], Table_P[idx], Table_P2[idx], 
#                      Table_theta[idx], Table_phi[idx], Table_psi[idx], Table_eta[idx], 
#                      table_name=table_name)


-ini_theta 0.000000 -ini_phi 0.000000 -ini_psi 0.000000
/anaconda3/envs/py35/lib/python3.5/site-packages/matplotlib/figure.py:2369: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.
  warnings.warn("This figure includes Axes that are not compatible "
Out[8]:
True

In [ ]:
theta_phi_list = ((0.000, 1.714), (0.428, 4.141), (0.714, 3.998), (1.000, 4.570), (3.142, 5.998))
# theta_phi_list = ((0.143, 0.143), (0.143, 1.000), (0.143, 2.142), (2.285, 5.284), (2.285, 3.570))
# theta_phi_list = ((0.000, 0.000), (0.286, 5.855), (0.857, 1.571), (1.571, 0.714), (2.285, 5.855))

label_list = ('0', '1', '2', '3', )
Table_t_range = (0, 1000)
spf_tb.show_table_theta_phi_list(theta_phi_list, job_dir, Table_t_range=Table_t_range, 
                                 figsize=np.array((20, 20)), dpi=100)


Table_t_range = np.array((0, 300))
spf_tb.show_table_result_list(theta_phi_list, job_dir, Table_t_range=Table_t_range, figsize=np.array((16, 9)), dpi=100)

In [11]:
theta_phi_list = ((0.000, 1.714), (1.999, 6.140), (0.000, 0.000), (0.143, 1.856))
Table_t_range = np.array((4500, np.inf))
figsize = np.array((16, 9))
dpi = 100

label_list = np.arange(len(theta_phi_list))
spf_tb.show_table_theta_phi_psi_fft_list(theta_phi_list, job_dir, label_list=label_list, figsize=figsize, dpi=dpi)
spf_tb.show_table_result_list(theta_phi_list, job_dir, label_list=label_list, Table_t_range=Table_t_range,
                              figsize=figsize, dpi=dpi)


Out[11]:
True

In [13]:
with pd.option_context('display.max_rows', 100, 'display.max_columns', 100):
    display(data.theta_max_fre)


ini_phi 0.000 0.143 0.286 0.428 0.571 0.714 0.857 1.000 1.142 1.285 1.428 1.571 1.714 1.856 1.999 2.142 2.285 2.428 2.570 2.713 2.856 2.999 3.142 3.284 3.427 3.570 3.713 3.856 3.998 4.141 4.284 4.427 4.570 4.712 4.855 4.998 5.141 5.284 5.426 5.569 5.712 5.855 5.998 6.140 6.283
ini_theta
0.000 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999 0.018999
0.143 0.018997 0.018997 0.019001 0.019001 0.018997 0.018998 0.018996 0.018997 0.018999 0.018997 0.018999 0.019000 0.018998 0.020307 0.019001 0.018997 0.018998 0.018998 0.019002 0.015999 0.016000 0.016003 0.016000 0.015997 0.015998 0.016003 0.016003 0.016005 0.016000 0.015998 0.016002 0.015999 0.016005 0.016000 0.016001 0.015999 0.016000 0.016001 0.015997 0.019000 0.019000 0.018999 0.019000 0.020470 0.018997
0.286 0.018999 0.019000 0.018997 0.018998 0.018998 0.019000 0.018997 0.019000 0.019000 0.018998 0.020373 0.018997 0.020397 0.020421 0.018998 0.020306 0.018999 0.018998 0.015998 0.015998 0.015997 0.015998 0.016002 0.016000 0.015998 0.015999 0.016002 0.016000 0.016001 0.016006 0.016001 0.015999 0.016002 0.016000 0.016000 0.015997 0.015998 0.018999 0.019001 0.018997 0.020374 0.018997 0.018997 0.018997 0.018997
0.428 0.019002 0.018999 0.018998 0.018998 0.019003 0.018998 0.020455 0.018998 0.018998 0.020337 0.020436 0.018998 0.018997 0.020442 0.018998 0.018998 0.018999 0.019002 0.015999 0.016001 0.015998 0.016001 0.016000 0.016003 0.016001 0.015999 0.016001 0.016000 0.016000 0.016003 0.016001 0.016000 0.016004 0.016002 0.016001 0.015999 0.018998 0.020389 0.020383 0.019001 0.018999 0.018999 0.020499 0.019001 0.019002
0.571 0.018998 0.019000 0.018999 0.019000 0.018996 0.018999 0.018998 0.020361 0.020385 0.020504 0.020436 0.020306 0.018999 0.018998 0.018999 0.018999 0.019001 0.018997 0.015999 0.015998 0.015999 0.015997 0.016001 0.016000 0.015998 0.016000 0.016003 0.016003 0.016002 0.016001 0.016002 0.016004 0.016000 0.015998 0.015999 0.016003 0.019000 0.018998 0.018998 0.018997 0.018998 0.018999 0.018997 0.020408 0.018999
0.714 0.018998 0.018997 0.019001 0.018999 0.018997 0.019001 0.020397 0.020559 0.020338 0.020420 0.018998 0.018998 0.019000 0.018996 0.018998 0.018999 0.018998 0.016000 0.015999 0.015997 0.015998 0.015999 0.015999 0.016001 0.016001 0.016002 0.015999 0.015999 0.016001 0.016006 0.016000 0.016001 0.016002 0.016001 0.016000 0.016001 0.020533 0.020468 0.018998 0.019001 0.018998 0.018998 0.019659 0.018998 0.018997
0.857 0.018998 0.018998 0.018999 0.018997 0.019001 0.020392 0.018998 0.019000 0.019001 0.019886 0.018999 0.018999 0.018997 0.015997 0.016003 0.015998 0.016002 0.016000 0.015999 0.015997 0.015997 0.016000 0.016002 0.016000 0.015997 0.015998 0.016000 0.016002 0.016004 0.016001 0.016002 0.016004 0.016002 0.015999 0.015998 0.016000 0.018997 0.018999 0.018998 0.019001 0.018999 0.020350 0.018998 0.018999 0.019001
1.000 0.018999 0.018997 0.020259 0.018998 0.019003 0.020444 0.020384 0.018999 0.019001 0.016001 0.015997 0.016001 0.018999 0.018999 0.018997 0.015999 0.015999 0.015999 0.015997 0.015999 0.016001 0.016000 0.016002 0.016001 0.015998 0.015998 0.015998 0.016002 0.016002 0.016000 0.016001 0.015999 0.016002 0.015998 0.015998 0.015999 0.018999 0.018997 0.019000 0.020402 0.018999 0.020397 0.018999 0.020680 0.018999
1.142 0.019001 0.018997 0.018998 0.020536 0.018998 0.019000 0.019005 0.015999 0.015999 0.018999 0.020349 0.020591 0.020534 0.018998 0.018999 0.019001 0.020463 0.020309 0.020490 0.018999 0.020406 0.015998 0.016003 0.016000 0.016000 0.016000 0.016000 0.016000 0.016000 0.015999 0.016001 0.016001 0.016000 0.020399 0.018998 0.019000 0.018997 0.018998 0.018998 0.019000 0.018998 0.018999 0.019000 0.019000 0.018999
1.285 0.020609 0.020639 0.018998 0.018998 0.015997 0.016002 0.020269 0.020494 0.018999 0.018998 0.018998 0.020392 0.016002 0.018999 0.018997 0.018999 0.015998 0.015999 0.020265 0.018999 0.019000 0.018999 0.015998 0.016004 0.015997 0.016001 0.015998 0.016003 0.018998 0.018998 0.019001 0.019002 0.019002 0.019002 0.019001 0.018997 0.018997 0.020335 0.020267 0.020366 0.020319 0.018999 0.020363 0.020408 0.018998
1.428 0.018999 0.020499 0.020448 0.019000 0.020385 0.020612 0.015997 0.018998 0.019000 0.020359 0.018998 0.015997 0.015998 0.018998 0.018998 0.018997 0.018997 0.020348 0.015997 0.018997 0.019002 0.019002 0.016000 0.015998 0.019002 0.019002 0.020343 0.018998 0.018998 0.019000 0.020444 0.020521 0.020511 0.020654 0.020068 0.020593 0.018998 0.019001 0.019003 0.018998 0.019000 0.020553 0.018999 0.018999 0.018999
1.571 0.018999 0.020419 0.020466 0.018998 0.016001 0.018997 0.016000 0.018998 0.018997 0.018998 0.020304 0.068254 0.020350 0.018998 0.020286 0.015999 0.018998 0.018998 0.018997 0.018999 0.015998 0.019003 0.015999 0.018998 0.019000 0.019001 0.018999 0.020508 0.020534 0.020575 0.020573 0.020622 0.020663 0.058661 0.019670 0.019807 0.019931 0.020078 0.020237 0.020427 0.020509 0.019000 0.019000 0.018998 0.018998
1.714 0.020419 0.020364 0.015999 0.018998 0.020384 0.015999 0.018997 0.018998 0.018998 0.018998 0.015998 0.015998 0.020294 0.016000 0.018997 0.020368 0.018998 0.018999 0.018998 0.015998 0.019000 0.020412 0.015998 0.019784 0.019000 0.018997 0.018998 0.018997 0.018999 0.018997 0.020560 0.020606 0.020474 0.020510 0.020432 0.020407 0.020371 0.018999 0.018999 0.019000 0.018998 0.019000 0.019001 0.018999 0.020453
1.856 0.018998 0.020330 0.016003 0.019000 0.018997 0.018999 0.018998 0.015998 0.016004 0.018998 0.018997 0.015998 0.020523 0.019001 0.015997 0.015999 0.019000 0.019001 0.018998 0.018998 0.016003 0.019000 0.015998 0.016001 0.018998 0.018998 0.018999 0.018998 0.018998 0.018998 0.018997 0.018999 0.018997 0.018998 0.019001 0.018998 0.019000 0.018999 0.019984 0.018997 0.019000 0.019000 0.018998 0.018998 0.018999
1.999 0.018999 0.018998 0.020447 0.018999 0.018997 0.015998 0.015999 0.015998 0.016000 0.016001 0.018998 0.018998 0.015998 0.018998 0.019001 0.018997 0.018999 0.018998 0.020321 0.015999 0.015999 0.016003 0.015998 0.015997 0.019001 0.019001 0.018999 0.018997 0.019004 0.018998 0.018998 0.020581 0.020548 0.019001 0.018999 0.018999 0.018998 0.018998 0.018997 0.018999 0.019000 0.018997 0.019000 0.016999 0.018999
2.142 0.018997 0.018998 0.020515 0.019789 0.018997 0.019000 0.020510 0.020440 0.018999 0.019743 0.020105 0.018997 0.018999 0.019003 0.020121 0.020444 0.018997 0.016001 0.015998 0.015997 0.016000 0.016003 0.016003 0.016001 0.018999 0.018998 0.020335 0.020442 0.020490 0.019001 0.020505 0.018999 0.018997 0.020683 0.018999 0.019001 0.018998 0.019001 0.018997 0.019000 0.018997 0.019001 0.018999 0.019000 0.019000
2.285 0.019002 0.020382 0.020479 0.019954 0.019001 0.018999 0.019006 0.019001 0.018998 0.018998 0.018999 0.019003 0.018997 0.020005 0.018998 0.015998 0.015999 0.016001 0.016000 0.015999 0.016002 0.015999 0.016001 0.016001 0.016002 0.018997 0.020620 0.018997 0.019002 0.019001 0.018998 0.018998 0.018998 0.018998 0.019001 0.018999 0.018997 0.019000 0.018997 0.018996 0.018999 0.019001 0.018998 0.018997 0.020219
2.428 0.019001 0.020349 0.018998 0.020318 0.020480 0.019002 0.018999 0.018998 0.018999 0.019001 0.020419 0.018998 0.019000 0.016001 0.015999 0.016001 0.016002 0.016001 0.016004 0.016003 0.016004 0.016001 0.016005 0.016003 0.015999 0.018999 0.020324 0.018997 0.018998 0.018998 0.018998 0.018999 0.018997 0.018997 0.018998 0.018998 0.018998 0.018999 0.018997 0.018999 0.018998 0.020445 0.018997 0.018997 0.019001
2.570 0.018999 0.018999 0.018997 0.018997 0.018998 0.020357 0.020322 0.018997 0.019002 0.020499 0.015998 0.015997 0.015998 0.015996 0.016002 0.015997 0.016002 0.016001 0.015999 0.016001 0.016003 0.015999 0.016005 0.016000 0.015997 0.019001 0.020465 0.018997 0.020329 0.018998 0.018997 0.018999 0.019000 0.019001 0.019001 0.019000 0.018997 0.018998 0.018997 0.016997 0.019000 0.019002 0.019000 0.018999 0.018998
2.713 0.018998 0.018998 0.018998 0.019006 0.019003 0.019002 0.020375 0.018997 0.016001 0.015999 0.016000 0.015998 0.015997 0.016000 0.016000 0.016001 0.016000 0.016000 0.016002 0.016001 0.016002 0.016004 0.016004 0.016004 0.015999 0.019000 0.018997 0.020337 0.019000 0.019001 0.018997 0.018997 0.019002 0.018998 0.018998 0.018999 0.020310 0.018998 0.018998 0.019000 0.019000 0.020399 0.018999 0.018999 0.018998
2.856 0.018997 0.019907 0.018997 0.019000 0.018997 0.020334 0.020433 0.015999 0.015997 0.016001 0.015998 0.015998 0.015997 0.015998 0.015998 0.015999 0.016001 0.016002 0.015997 0.016003 0.016002 0.016005 0.016001 0.016000 0.015999 0.016000 0.018998 0.018997 0.018997 0.018998 0.019000 0.018999 0.018999 0.019001 0.018999 0.018998 0.018997 0.018999 0.018998 0.019001 0.020375 0.018999 0.018998 0.018997 0.018998
2.999 0.018999 0.020642 0.019002 0.020267 0.018997 0.018999 0.015998 0.015998 0.015997 0.015999 0.015996 0.016002 0.016001 0.016002 0.015999 0.015999 0.015999 0.015999 0.016005 0.015998 0.016001 0.016003 0.016001 0.016002 0.015998 0.016001 0.019003 0.018998 0.020418 0.018998 0.018998 0.020499 0.020302 0.018998 0.019001 0.018998 0.020333 0.019001 0.018999 0.020595 0.018997 0.018998 0.018999 0.018997 0.018998
3.142 0.016002 0.016005 0.015998 0.015998 0.019000 0.018999 0.018998 0.020389 0.018998 0.018999 0.018999 0.018999 0.018999 0.018998 0.019000 0.019001 0.018998 0.018997 0.018999 0.018996 0.018998 0.018997 0.018998 0.019987 0.018998 0.019002 0.018999 0.019000 0.016001 0.016000 0.015999 0.015999 0.015999 0.015997 0.016000 0.015998 0.016000 0.016000 0.016000 0.016005 0.016001 0.015998 0.016000 0.015998 0.015997

In [14]:
# sort all frequrents
with np.printoptions(precision=10, suppress=True, threshold=1e10):
    print(np.flipud(np.sort(data.theta_max_fre.values.flatten())))


[0.068254267  0.0586605145 0.0206826103 0.0206797877 0.0206625628 0.0206536615
 0.0206417512 0.0206393922 0.0206219575 0.0206198636 0.0206124589 0.0206093356
 0.0206058682 0.0205954394 0.0205927342 0.0205905679 0.0205809703 0.02057499
 0.0205729064 0.0205595241 0.0205586433 0.0205533853 0.0205480273 0.0205359495
 0.0205337571 0.0205336987 0.0205332124 0.0205232614 0.0205208279 0.0205145767
 0.0205113985 0.0205103503 0.0205097386 0.0205087672 0.0205078573 0.0205051652
 0.020503653  0.0204994398 0.0204990942 0.0204990712 0.0204990296 0.0204936705
 0.0204902889 0.020490214  0.0204798011 0.0204792385 0.0204738972 0.0204695026
 0.0204677492 0.0204657886 0.0204649897 0.0204626234 0.0204549791 0.0204528295
 0.0204476276 0.0204472433 0.0204445706 0.0204443395 0.0204439012 0.0204436152
 0.0204418228 0.0204416308 0.0204404514 0.0204362001 0.020435965  0.0204333201
 0.0204319713 0.0204273595 0.020421091  0.0204201072 0.0204190146 0.0204189978
 0.0204186863 0.0204183902 0.0204116977 0.020408393  0.0204082305 0.0204074535
 0.0204057507 0.0204023901 0.0203994237 0.0203993824 0.0203974679 0.0203973017
 0.0203971328 0.0203923751 0.0203923481 0.0203894587 0.0203888969 0.0203848292
 0.0203847344 0.0203842713 0.0203836505 0.0203828333 0.0203824205 0.0203751733
 0.0203748102 0.0203735855 0.0203731359 0.0203713169 0.0203682913 0.0203655132
 0.0203640063 0.0203625283 0.0203607419 0.0203591435 0.0203569658 0.0203499291
 0.0203499261 0.0203491416 0.0203490075 0.0203478871 0.0203432204 0.0203384374
 0.0203368099 0.0203365098 0.0203349293 0.0203347    0.0203339149 0.0203325868
 0.0203296881 0.0203289734 0.0203242205 0.0203216327 0.0203214225 0.0203191588
 0.020317703  0.0203100145 0.020309003  0.0203065581 0.0203064214 0.020305584
 0.0203040823 0.0203015317 0.0202942846 0.020285742  0.0202688799 0.0202669935
 0.0202668959 0.0202654509 0.0202586526 0.0202366704 0.0202194698 0.020120812
 0.0201050334 0.0200775362 0.0200681531 0.0200053123 0.0199872292 0.0199841297
 0.0199541749 0.0199313536 0.0199069735 0.0198864165 0.0198073898 0.0197892373
 0.0197838073 0.0197434923 0.019670487  0.0196587568 0.019005542  0.0190055291
 0.0190046669 0.0190037449 0.0190033781 0.0190031865 0.0190030272 0.0190029852
 0.0190028399 0.0190028224 0.019002653  0.0190025465 0.0190024944 0.0190024784
 0.0190024718 0.0190024279 0.0190023688 0.0190023666 0.0190023341 0.019002179
 0.019002173  0.0190021598 0.0190020976 0.0190019362 0.0190017516 0.0190016867
 0.0190016827 0.0190016032 0.0190015796 0.0190015705 0.0190015503 0.0190015209
 0.0190014378 0.0190014271 0.019001411  0.0190013643 0.0190013612 0.0190013352
 0.0190013288 0.0190013244 0.0190013126 0.0190013073 0.0190012999 0.019001297
 0.0190012583 0.0190012124 0.0190012115 0.0190011791 0.019001136  0.0190011263
 0.0190010971 0.0190010539 0.0190010459 0.0190010398 0.0190010117 0.0190009213
 0.0190008715 0.019000849  0.0190008345 0.0190008309 0.0190008288 0.0190008046
 0.0190007714 0.0190007639 0.0190007318 0.0190007182 0.0190007177 0.0190006471
 0.0190006403 0.0190006313 0.0190006291 0.0190006034 0.0190005975 0.0190005959
 0.0190005689 0.0190005579 0.0190005377 0.0190005364 0.0190005214 0.0190005172
 0.0190005117 0.0190005048 0.0190004873 0.0190004724 0.0190004453 0.0190004327
 0.0190004257 0.0190004139 0.0190003803 0.0190003531 0.0190002813 0.0190002584
 0.0190002341 0.0190001822 0.0190001691 0.0190001682 0.0190001611 0.0190000643
 0.01900004   0.0190000154 0.0190000024 0.018999989  0.0189999745 0.0189999501
 0.0189999419 0.0189999138 0.0189998959 0.0189998624 0.0189998322 0.018999831
 0.018999819  0.018999802  0.0189997833 0.0189997771 0.0189997758 0.0189997646
 0.0189997493 0.0189997472 0.0189997314 0.0189997259 0.0189997157 0.0189997091
 0.0189997059 0.0189997028 0.0189997002 0.0189996962 0.0189996929 0.0189996885
 0.0189996793 0.0189996625 0.0189996577 0.0189996532 0.0189996456 0.018999626
 0.0189995947 0.0189995925 0.018999559  0.0189995494 0.0189995343 0.0189995142
 0.0189994768 0.0189994711 0.018999455  0.0189994173 0.0189993973 0.0189993882
 0.0189993846 0.0189993831 0.0189993781 0.0189993487 0.0189993475 0.0189993349
 0.0189993069 0.0189993025 0.0189992941 0.0189992886 0.0189992817 0.0189992732
 0.0189992707 0.0189992468 0.0189992441 0.0189992415 0.018999232  0.0189992315
 0.0189992264 0.0189992222 0.0189992122 0.0189991732 0.0189991639 0.0189991631
 0.0189991427 0.0189991426 0.018999137  0.0189991262 0.0189991182 0.0189990937
 0.0189990924 0.018999091  0.018999079  0.0189990753 0.0189990738 0.0189990435
 0.0189990381 0.0189990357 0.0189990335 0.0189990175 0.0189990043 0.0189989824
 0.0189989699 0.0189989579 0.0189989261 0.0189989221 0.0189988936 0.0189988907
 0.0189988899 0.0189988647 0.0189988533 0.0189988499 0.018998843  0.0189988283
 0.0189988251 0.0189988216 0.0189988175 0.0189988152 0.0189987997 0.0189987986
 0.0189987908 0.0189987608 0.0189987572 0.018998754  0.0189987473 0.0189987206
 0.0189987187 0.0189987182 0.0189987067 0.0189986916 0.0189986914 0.0189986913
 0.0189986887 0.0189986789 0.0189986768 0.0189986762 0.0189986734 0.0189986578
 0.0189986561 0.0189986542 0.0189986513 0.0189986451 0.0189986406 0.0189986405
 0.0189986391 0.0189986363 0.0189986145 0.0189986069 0.0189986059 0.0189985829
 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821
 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821
 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821
 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821 0.0189985821
 0.0189985736 0.0189985713 0.0189985654 0.0189985642 0.0189985635 0.0189985523
 0.0189985406 0.0189985403 0.0189985321 0.0189985132 0.0189985084 0.0189985039
 0.0189984845 0.0189984816 0.0189984637 0.0189984452 0.0189984383 0.0189984379
 0.0189984356 0.0189984288 0.0189984276 0.0189984254 0.0189984127 0.0189984041
 0.0189984035 0.0189984015 0.0189983971 0.0189983903 0.0189983868 0.0189983784
 0.0189983768 0.0189983753 0.0189983744 0.0189983647 0.0189983645 0.0189983626
 0.0189983546 0.0189983543 0.0189983536 0.0189983506 0.0189983487 0.0189983264
 0.0189983262 0.0189983227 0.0189983163 0.0189983114 0.0189983097 0.0189983068
 0.0189983066 0.0189982979 0.0189982943 0.0189982906 0.0189982855 0.0189982839
 0.0189982668 0.0189982648 0.0189982635 0.0189982628 0.0189982625 0.0189982592
 0.0189982534 0.0189982524 0.0189982395 0.0189982382 0.0189982314 0.0189982188
 0.0189982089 0.0189982079 0.018998163  0.0189981555 0.0189981499 0.0189981434
 0.0189981348 0.0189981316 0.0189981261 0.0189981074 0.0189981057 0.0189981042
 0.0189981017 0.0189980918 0.0189980893 0.0189980871 0.018998077  0.0189980722
 0.0189980692 0.0189980611 0.0189980543 0.0189980507 0.0189980495 0.0189980402
 0.0189980329 0.0189980204 0.0189980116 0.0189979771 0.018997977  0.0189979587
 0.018997956  0.0189979377 0.018997937  0.018997928  0.0189979209 0.0189979157
 0.0189979088 0.0189979068 0.018997905  0.018997904  0.0189978985 0.0189978933
 0.0189978933 0.0189978841 0.0189978828 0.0189978823 0.0189978792 0.0189978749
 0.0189978712 0.0189978707 0.0189978598 0.0189978522 0.0189978503 0.0189978351
 0.0189978266 0.0189978249 0.0189978189 0.0189978109 0.0189977928 0.0189977831
 0.0189977816 0.0189977785 0.018997777  0.0189977744 0.0189977738 0.0189977736
 0.0189977665 0.0189977594 0.0189977493 0.0189977415 0.0189977371 0.0189977226
 0.0189977214 0.0189977106 0.0189977097 0.0189976937 0.0189976928 0.0189976683
 0.0189976626 0.0189976485 0.0189976466 0.0189976218 0.018997615  0.0189976107
 0.0189976073 0.0189976033 0.0189975948 0.0189975714 0.0189975685 0.0189975633
 0.018997553  0.0189975404 0.0189975344 0.0189975328 0.0189975238 0.0189975172
 0.018997512  0.0189975107 0.0189975064 0.0189975024 0.0189974929 0.0189974801
 0.0189974791 0.0189974782 0.0189974616 0.0189974582 0.0189974448 0.0189974401
 0.0189974347 0.018997433  0.0189974329 0.0189974305 0.0189974115 0.0189974062
 0.0189974045 0.0189974041 0.0189974031 0.0189973989 0.0189973873 0.0189973836
 0.0189973725 0.0189973685 0.0189973662 0.0189973636 0.0189973556 0.0189973388
 0.018997327  0.0189973183 0.0189973061 0.0189973036 0.0189973025 0.0189972936
 0.0189972897 0.0189972889 0.0189972858 0.0189972812 0.0189972792 0.0189972634
 0.0189972634 0.018997237  0.0189972231 0.0189972227 0.0189972131 0.0189971982
 0.0189971859 0.0189971857 0.0189971753 0.0189971701 0.0189971443 0.0189971216
 0.0189971076 0.0189971043 0.0189970826 0.0189970686 0.0189970654 0.0189970562
 0.0189970239 0.0189970222 0.0189970203 0.0189970089 0.0189970079 0.0189970068
 0.0189970016 0.0189969658 0.0189969607 0.0189969509 0.0189969376 0.0189969376
 0.0189969322 0.0189969305 0.0189969195 0.018996901  0.0189969003 0.0189968918
 0.0189968651 0.0189968651 0.0189968634 0.0189968583 0.0189968562 0.018996843
 0.0189967909 0.0189967764 0.0189967588 0.0189967562 0.0189967456 0.0189967355
 0.0189967204 0.0189967193 0.0189967167 0.018996713  0.0189966785 0.0189966511
 0.0189966453 0.0189966364 0.0189966206 0.0189965607 0.0189964746 0.0189964482
 0.018996428  0.0189964041 0.0189962434 0.016999276  0.0169968398 0.0160062452
 0.0160062087 0.0160052584 0.0160051508 0.0160050928 0.0160050489 0.0160049108
 0.0160048603 0.0160048061 0.016004596  0.0160044485 0.0160044016 0.01600439
 0.0160043378 0.0160041577 0.0160040046 0.0160039601 0.0160039559 0.0160035795
 0.01600357   0.01600353   0.0160034589 0.0160034223 0.0160033389 0.0160032735
 0.0160032254 0.0160031678 0.0160031671 0.0160030978 0.0160030864 0.0160030753
 0.0160029835 0.0160029221 0.0160028605 0.0160027318 0.0160026995 0.0160026816
 0.0160025831 0.0160025766 0.0160025443 0.0160025244 0.0160025242 0.0160024888
 0.0160024771 0.0160023694 0.0160023076 0.0160022587 0.0160021982 0.0160021653
 0.0160021508 0.0160021331 0.0160021029 0.0160020724 0.016002039  0.0160019949
 0.016001896  0.0160018868 0.0160018822 0.0160018676 0.0160018434 0.0160018376
 0.0160018161 0.0160018022 0.0160017861 0.0160017726 0.016001755  0.0160016971
 0.01600167   0.0160016561 0.0160016546 0.0160016478 0.016001643  0.0160016377
 0.0160015946 0.0160015004 0.0160014421 0.0160014385 0.0160014268 0.0160014113
 0.0160013112 0.0160012539 0.0160012453 0.0160012253 0.0160012232 0.0160012229
 0.0160012193 0.0160011875 0.0160011765 0.0160011612 0.0160011594 0.0160011432
 0.0160011156 0.016001108  0.0160010861 0.0160010736 0.0160010546 0.0160010208
 0.0160010092 0.0160009856 0.0160009581 0.0160009517 0.0160009433 0.0160009346
 0.0160009183 0.0160008271 0.0160007825 0.0160007725 0.0160007561 0.0160007533
 0.0160007413 0.0160007238 0.0160006988 0.0160006734 0.0160006689 0.0160006679
 0.0160006601 0.0160006532 0.0160006459 0.0160006389 0.0160005975 0.0160005911
 0.0160005903 0.0160005633 0.0160005437 0.0160005409 0.0160005377 0.016000512
 0.0160005069 0.0160004906 0.0160004811 0.0160004447 0.0160004271 0.016000388
 0.016000355  0.0160003291 0.0160002858 0.0160002748 0.0160002745 0.0160002673
 0.0160002499 0.0160002467 0.0160002372 0.0160001877 0.0160001743 0.0160001613
 0.0160001479 0.0160001337 0.0160001242 0.0160001206 0.0160001041 0.0160000891
 0.0160000816 0.0160000452 0.0160000366 0.0160000319 0.0159999687 0.0159999448
 0.0159999232 0.0159998861 0.0159998801 0.0159998546 0.0159998168 0.0159998073
 0.0159997887 0.0159997801 0.0159997735 0.0159997409 0.0159997283 0.015999698
 0.0159996976 0.0159996863 0.0159996744 0.0159996613 0.0159996317 0.0159996317
 0.0159996317 0.0159996317 0.0159996317 0.0159996317 0.0159996317 0.0159996317
 0.0159996317 0.0159996317 0.0159996317 0.0159996317 0.0159996317 0.0159996317
 0.0159996317 0.0159996317 0.0159996317 0.0159996317 0.0159996317 0.0159996317
 0.0159996317 0.0159996066 0.0159996031 0.0159995946 0.0159995943 0.0159995668
 0.0159995623 0.0159995235 0.0159995002 0.015999482  0.0159994818 0.0159994783
 0.0159994629 0.0159994614 0.0159994589 0.0159994524 0.0159994404 0.0159993947
 0.0159993814 0.0159993773 0.0159993455 0.0159993178 0.0159993116 0.0159992917
 0.0159992245 0.0159991897 0.0159991559 0.0159991455 0.0159991251 0.0159990657
 0.0159990593 0.015999041  0.0159990264 0.0159990198 0.0159990083 0.015999005
 0.0159989841 0.0159989732 0.0159989451 0.0159989281 0.0159989141 0.0159988961
 0.0159988875 0.0159988774 0.0159988637 0.0159988618 0.0159988542 0.0159988263
 0.0159987979 0.0159987769 0.0159987685 0.0159987488 0.0159987184 0.0159987168
 0.0159987054 0.0159986756 0.0159986749 0.0159986715 0.0159986611 0.0159986341
 0.0159986064 0.0159985894 0.015998532  0.0159985305 0.0159985135 0.0159984981
 0.0159984957 0.0159984893 0.0159984779 0.0159984613 0.0159984478 0.015998437
 0.0159984349 0.0159984293 0.0159984193 0.0159984043 0.0159983852 0.0159983814
 0.0159983637 0.015998355  0.0159983514 0.0159983221 0.0159983129 0.0159982692
 0.015998246  0.0159982319 0.0159981803 0.015998177  0.0159981711 0.0159981608
 0.0159981551 0.0159981516 0.015998135  0.0159981224 0.0159981134 0.0159981042
 0.0159981    0.0159980964 0.0159980947 0.0159980838 0.0159980734 0.0159980729
 0.0159980332 0.0159980305 0.0159979989 0.0159979755 0.0159979225 0.015997868
 0.0159978467 0.015997809  0.0159978036 0.0159978013 0.015997797  0.0159976911
 0.0159976881 0.015997687  0.0159976679 0.015997643  0.015997617  0.0159975941
 0.0159975528 0.0159974914 0.0159974373 0.015997428  0.0159974087 0.0159973511
 0.0159973465 0.0159973217 0.0159973202 0.0159973095 0.0159972297 0.0159972211
 0.0159971882 0.0159971662 0.0159971605 0.0159971342 0.0159971153 0.0159970961
 0.0159970875 0.015997058  0.0159970303 0.0159969493 0.0159969212 0.0159968589
 0.0159968522 0.0159967387 0.0159967275 0.0159967028 0.0159966582 0.0159965893
 0.0159965118 0.0159964607 0.0159962407]

In [10]:
spf_tb.show_traj_phase_map_fre(theta_max_fre)
# spf_tb.show_traj_phase_map_fre(phi_max_fre)
# spf_tb.show_traj_phase_map_fre(psi_max_fre)
# spf_tb.show_traj_phase_map_fre(eta_max_fre)


Out[10]:
True

In [1]:
# put images with same frequence into a subdirect
def t_show_idx(iidx):
    theta = type_fre.index.values[iidx[0][0]]
    phi = type_fre.columns.values[iidx[1][0]]
    print(theta, phi)
    tipical_th_ph_list.append((theta, phi))
    spf_tb.show_pickle_results(job_dir, theta, phi, table_name)
    return True

def t_show_idx_list(iidx, nshow=5, Table_t_range1=np.array((0, np.inf)), Table_t_range2=np.array((0, np.inf))):
    nshow = int(np.min((nshow, iidx[0].size)))
    tidx = np.random.choice(iidx[0].size, nshow, replace=False)
    theta = type_fre.index.values[iidx[0][tidx]]
    phi = type_fre.columns.values[iidx[1][tidx]]
    theta_phi_list = np.vstack((theta, phi)).T
#     spf_tb.show_table_theta_phi_list(theta_phi_list, job_dir, Table_t_range=Table_t_range1, figsize=np.array((20, 20)), dpi=100)
    spf_tb.show_table_result_list(theta_phi_list, job_dir, Table_t_range=Table_t_range2, figsize=np.array((16, 9)), dpi=100)
    return True

tfre = theta_max_fre.copy()
check_fre_list = [0.0160, 0.0170, 0.0190]
atol_fre_list =  [0.0002, 0.0002, 0.0002]
Table_t_range1 = np.array((0, 1000))
Table_t_range2 = np.array((4500, np.inf))
nshow = np.inf

tipical_th_ph_list = []
type_fre = tfre.copy()
type_fre.iloc[:, :] = len(check_fre_list) 
for i0, (check_fre, atol_fre) in enumerate(zip(check_fre_list, atol_fre_list)):
    use_idx = np.isclose(tfre, check_fre, rtol=0, atol=atol_fre)
    type_fre.iloc[use_idx] = i0
    iidx = np.where(use_idx)
#     t_show_idx(iidx)
#     t_show_idx_list(iidx, nshow=nshow, Table_t_range1=Table_t_range1, Table_t_range2=Table_t_range2)

# plot one of the remaind cases
if np.any(type_fre.values == len(check_fre_list)):
    iidx = np.where(type_fre.values == len(check_fre_list))
#     t_show_idx(iidx)
#     t_show_idx_list(iidx, nshow=nshow, Table_t_range1=Table_t_range1, Table_t_range2=Table_t_range2)


spf_tb.show_traj_phase_map_type(type_fre)
# spf_tb.save_separate_angleList_fft(job_dir, tfre, check_fre_list, atol_fre_list)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-5839dc9b0855> in <module>
      1 # put images with same frequence into a subdirect
----> 2 importlib.reload(spf_tb)
      3 def t_show_idx(iidx):
      4     theta = type_fre.index.values[iidx[0][0]]
      5     phi = type_fre.columns.values[iidx[1][0]]

NameError: name 'importlib' is not defined

In [43]:
# theta_phi_list = ((0.000, 1.714), (1.999, 6.140), (0.000, 0.000), (0.143, 1.856))
Table_t_range = np.array((4500, np.inf))
figsize = np.array((16, 9))
dpi = 100

label_list = np.arange(len(theta_phi_list))
spf_tb.show_table_theta_phi_psi_fft_list(theta_phi_list, job_dir, label_list=label_list, figsize=figsize, dpi=dpi)
spf_tb.show_table_result_list(theta_phi_list, job_dir, label_list=label_list, Table_t_range=Table_t_range,
                              figsize=figsize, dpi=dpi)


Out[43]:
True

In [ ]:
# create phase map
importlib.reload(spf_tb)
def tget_ax0():
    n_xticks = 32
    xticks = np.arange(n_xticks)
    fig = plt.figure(figsize=(20, 20))
    fig.patch.set_facecolor('white')
    axs = []
    axs.append(fig.add_subplot(221, polar=True))
    axs.append(fig.add_subplot(222, polar=True))
    axs.append(fig.add_subplot(223, polar=True))
    axs.append(fig.add_subplot(224, polar=True))
    for ax0 in axs:
        ax0.set_xticks(xticks / n_xticks * 2 * np.pi)
        ax0.set_xticklabels(['$\dfrac{%d}{%d}2\pi$' % (i0, n_xticks) for i0 in xticks])
        ax0.set_yticklabels([])
        ax0.set_ylim(0, np.pi)
    plt.tight_layout()
    return fig, axs

check_fre_list = [1.000, 0.0220, 1.0000, 0.0540]
atol_list =      [0.004, 0.0005, 0.0005, 0.0005]
color_list =     ['b',   'g',    'r',    'c',   'm', 'y', 'k']
psi_lim_fct = 20
resampling_fct = 10

data0['use_max_fre'] = data0.theta_max_fre
case_path_list = spf_tb.separate_fre_path(check_fre_list, atol_list, data0, pickle_path_list)
for idx, psi_lim1 in enumerate(np.linspace(0, 2 * np.pi, psi_lim_fct * 16, 
                                           endpoint=False)[::psi_lim_fct]):
    fig, (ax0, ax1, ax2, ax3) = tget_ax0()
    ax_list = [ax0, ax0, ax1, ax2, ax3]
    psi_lim = (psi_lim1, psi_lim1 + 2 * np.pi / (psi_lim_fct * 16))
    desc = '$\psi\in[%.3f\pi, %.3f\pi)$' % ((psi_lim[0] / np.pi), (psi_lim[1] / np.pi))
    fig.suptitle(desc, fontsize=fontsize*0.8)
    for check_fre, case_path, color, axi in zip(check_fre_list, case_path_list, color_list, ax_list):
        thandle = '%f' % check_fre
        spf_tb.draw_phase_map_theta(case_path, color, psi_lim, axs=(axi, ax_list[-1]), thandle=thandle, 
                                    resampling=True, resampling_fct=resampling_fct)
    tdir = os.path.join(PWD, job_dir, 'phase_mape_fre')
    if not os.path.exists(tdir):
        os.makedirs(tdir)
    figname = os.path.join(tdir, '%04d.png' % (idx))
    fig.savefig(os.path.join(tdir, figname))
    print('save to %s' % figname)
    plt.close(fig)

In [ ]:

calculate the phase map of stable trajectory using the KMeans method.


In [ ]:
# show phase map of theta-phi, part 1
importlib.reload(spf_tb)
job_dir = 'ecoC01B05_T0.01_psi-0a'
table_name = 'ecoC01B05_T0.01'

t_headle = '(.*?).pickle'
t_path = os.listdir(os.path.join(PWD, job_dir))
filename_list = [filename for filename in os.listdir(os.path.join(PWD, job_dir)) 
                 if re.match(t_headle, filename) is not None]
ini_theta_list = []
ini_phi_list = []
lst_eta_list = []
pickle_path_list = []
idx_list = []
theta_primary_fre_list = []
phi_primary_fre_list = []
psi_primary_fre_list = []
for i0, tname in enumerate(tqdm_notebook(filename_list[:])):
    tpath = os.path.join(PWD, job_dir, tname)
    with open(tpath, 'rb') as handle:
        tpick = pickle.load(handle)
    ini_theta_list.append(tpick['ini_theta'])
    ini_phi_list.append(tpick['ini_phi'])
    lst_eta_list.append(tpick['Table_eta'][-1])
    pickle_path_list.append(tpath)
    idx_list.append(i0)
    
    # fft rule
    tx = tpick['Table_t']
    tmin = np.max((0, tx.max() - 1000))
    idx = tx > tmin
    # the last frequence is the major frequence. 
    use_fft_number = 3
    t1 = -use_fft_number - 1
    theta_primary_fre_list.append(spf_tb.get_primary_fft_fre(tx[idx], tpick['Table_theta'][idx])[t1:-1])
    phi_primary_fre_list.append(spf_tb.get_primary_fft_fre(tx[idx], tpick['Table_phi'][idx])[t1:-1])
    psi_primary_fre_list.append(spf_tb.get_primary_fft_fre(tx[idx], tpick['Table_psi'][idx])[t1:-1])

In [ ]:
# show phase map of theta-phi, part 2
def show_phase_map(tuse):
    fig = plt.figure(figsize=(20, 12), dpi=300)
    fig.patch.set_facecolor('white')
    ax0 = fig.add_subplot(111, polar=True)
    n_xticks = 32
    xticks = np.arange(n_xticks)
    ax0.set_xticks(xticks / n_xticks * 2 * np.pi)
    ax0.set_xticklabels(['$\dfrac{%d}{%d}2\pi$' % (i0, n_xticks) for i0 in xticks])
    ax0.set_yticklabels([])
    ax0.set_ylim(0, np.pi)
    tdata = tuse.values
    im = ax0.pcolor(tuse.columns.values, tuse.index.values, tdata, 
                    cmap=plt.get_cmap('Set2', np.nanmax(tdata)+1), 
                    vmin=np.nanmin(tdata)-.5, vmax=np.nanmax(tdata)+.5)
    ticks = np.arange(np.nanmin(tdata), np.nanmax(tdata)+1)
    fig.colorbar(im, ax=ax0, orientation='vertical', ticks=ticks).ax.tick_params(labelsize=fontsize)

In [ ]:
np.around(np.pi, 3)

In [ ]:
from sklearn.cluster import KMeans
from sklearn.mixture import GaussianMixture

use_data = np.hstack((np.vstack(theta_primary_fre_list)[:, 1:], 
                      np.vstack(phi_primary_fre_list)[:, 1:]))
#KMeans
km = KMeans(n_clusters=6, n_init=10, max_iter=1000, tol=1e-9, precompute_distances=True, n_jobs=-1, random_state=0)
km.fit(use_data)
km.predict(use_data)
tlabels = km.labels_

# # personal process
# tlabels[tlabels == 4] = 3

tdata1 = pd.DataFrame({'ini_theta': np.around(ini_theta_list, 3), 
                      'ini_phi': np.around(ini_phi_list, 3), 
                      'lst_eta': np.around(lst_eta_list, 3), 
                      'use_fre': tlabels, 
                      'data_idx': idx_list })
tdata1 = tdata1.pivot_table(index=['ini_theta'], columns=['ini_phi'])
show_phase_map(tdata1.use_fre)

In [ ]:
np.array(ini_theta_list)[tlabels==show_tlabel]

In [ ]:
importlib.reload(spf_tb)
show_tlabel = 0

for theta, phi in zip(np.array(ini_theta_list)[tlabels==show_tlabel][:10], 
                         np.array(ini_phi_list)[tlabels==show_tlabel][:10]): 
    spf_tb.show_pickle_results(job_dir, theta, phi, table_name, fast_mode=1)

In [ ]:
importlib.reload(spf_tb)

for show_tlabel in np.arange(tlabels.max()+1): 
    theta = np.array(ini_theta_list)[tlabels==show_tlabel][0]
    phi = np.array(ini_phi_list)[tlabels==show_tlabel][0]
    spf_tb.show_pickle_results(job_dir, theta, phi, table_name, fast_mode=2)

In [ ]:
tlabels=