Original:(start,end, step), new:(start,end, step)
Ori(4.2,7.0, 0.1) -> new(4.2,6.2, 0.1)
Ori(4.2,7.0, 0.05) -> new(4.2,6.2, 0.05) If wf<6.2 Ori(4.2,7.0, 0.05) -> new(4.2,6.2, 0.1) If wf<6.2 Ori(4.2,7.0, 0.05) -> new(5.0,7.0, 0.05) If wf>5.0 Ori(4.2,7.0, 0.05) -> new(5.0,7.0, 0.1) If wf>5.0
Ori(4.2,6.2, 0.05) -> new(4.2,6.2, 0.1)
import os
# import time
# from datetime import datetime
# from pprint import pprint
import pandas as pd
from pandas import Series, DataFrame
# import scipy as sp
# from scipy.optimize import leastsq
import numpy as np
# import matplotlib.pyplot as plt
# import seaborn as sns
# sns.set_style('whitegrid')
# %matplotlib inline
# #高解像度の設定(きれいな図が出力されますがファイルサイズが大きくなります)
# %config InlineBackend.figure_formats = {'png', 'retina'}
# from sklearn.externals import joblib
df_original= pd.read_excel('./validation_data_MDR.xlsx')
def modify_range(df):
"""
df:dataframe
1: 分割数を少なくする
2,3:分析範囲を小さくする
"""
df_new=df.copy()
for i in df.index:
start = eval(df["energy_range"][i])[0]
end = eval(df["energy_range"][i])[1]
step = eval(df["energy_range"][i])[2]
est_wf = df["estimate_wf"][i]
data_= np.array(eval(df["n_pys"][i])).flatten()
ene_= np.array(eval(df["ene"][i])).flatten()
sample_name_=df["Sample_name"][i]
power_=df["photon_power"][i]
#print('energy range:',start,end,step)
if start == 4 and end == 7 and step == 0.05:
#0.1eV
temp_data=data_[::2].flatten()
temp_ene=ene_[::2].flatten()
temp_enerange=(4,7,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_s',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
if 4.2 < est_wf < 6.2:
end_ind=np.where(ene_==6.2)[0][0]
start_ind=np.where(ene_==4.2)[0][0]
temp_data=data_[start_ind:end_ind+1:1].flatten()
temp_ene=ene_[start_ind:end_ind+1:1].flatten()
temp_enerange=(4.2,6.2,0.05)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_r',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
#0.1eV
temp_data=data_[start_ind:end_ind+1:2].flatten()
temp_ene=ene_[start_ind:end_ind+1:2].flatten()
temp_enerange=(4.2,6.2,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_rs',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
if est_wf > 5.0:
end_ind=np.where(ene_==7.0)[0][0]
start_ind=np.where(ene_==5.0)[0][0]
temp_data=data_[start_ind:end_ind+1:1].flatten()
temp_ene=ene_[start_ind:end_ind+1:1].flatten()
temp_enerange=(5.0,7.0,0.05)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_hr',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
#0.1eV
temp_data=data_[start_ind:end_ind+1:2].flatten()
temp_ene=ene_[start_ind:end_ind+1:2].flatten()
temp_enerange=(5.0,7.0,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_hrs',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
elif start == 4 and end == 7 and step == 0.1 :
if 4.2 < est_wf < 6.2:
end_ind=np.where(ene_==6.2)[0][0]
start_ind=np.where(ene_==4.2)[0][0]
temp_data=data_[start_ind:end_ind+1:1].flatten()
temp_ene=ene_[start_ind:end_ind+1:1].flatten()
temp_enerange=(4.2,6.2,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_r',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
if est_wf > 5.0:
end_ind=np.where(ene_==7.0)[0][0]
start_ind=np.where(ene_==5.0)[0][0]
temp_data=data_[start_ind:end_ind+1:1].flatten()
temp_ene=ene_[start_ind:end_ind+1:1].flatten()
temp_enerange=(5.0,7.0,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_hr',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
else:
pass
elif start == 4.2 and end == 6.2 and step == 0.05:
#0.1eV
end_ind=np.where(ene_==6.2)[0][0]
start_ind=np.where(ene_==4.2)[0][0]
temp_data=data_[start_ind:end_ind+1:2].flatten()
temp_ene=ene_[start_ind:end_ind+1:2].flatten()
temp_enerange=(4.2,6.2,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_s',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
elif start == 4.2 and end == 7.0 and step == 0.1:
#0.1eV
end_ind=np.where(ene_==6.2)[0][0]
start_ind=np.where(ene_==4.2)[0][0]
temp_data=data_[start_ind:end_ind+1:1].flatten()
temp_ene=ene_[start_ind:end_ind+1:1].flatten()
temp_enerange=(4.2,6.2,0.1)
temp_dic={"ene":temp_ene.tolist(),"n_pys":temp_data.tolist(),"energy_range":temp_enerange,
"Sample_name":sample_name_+'_r',"estimate_wf":est_wf,"photon_power":power_}
temp_se = pd.Series(temp_dic)
df_new=df_new.append(temp_se, ignore_index=True)
else:
pass
return df_new
df_new=modify_range(df_original)
#df_new.to_csv('./validation_data_MDR_modify.csv', index=False)
df_new.to_excel('./validation_data_MDR_modify.xlsx')