Skip to content

Commit

Permalink
some testing stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
CharlesC30 committed Feb 23, 2023
1 parent 816256c commit 44958d7
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,4 @@ target/

#Ipython Notebook
.ipynb_checkpoints
df_uid.ipynb
2 changes: 1 addition & 1 deletion xas/analysis.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import matplotlib

# matplotlib.use("TkAgg")
matplotlib.use("TkAgg")

import numpy as np
import pandas as pd
Expand Down
32 changes: 31 additions & 1 deletion xas/outliers.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
from sklearn.ensemble import IsolationForest
from sklearn.svm import OneClassSVM

from xas.analysis import standardize_energy_grid, prenormalize_data
from xas.analysis import standardize_energy_grid, prenormalize_data, check_scan
from xas.energy_calibration import compute_shift_between_spectra

TEST_PATH = "/home/charles/Desktop/test_data/outlier_muf.pkl"

Expand Down Expand Up @@ -316,3 +317,32 @@ def plot_scangroup(sg_df, channels=("mut", "muf", "mur")):
for ch in channels:
plt.plot(scan["data"]["energy"], scan["data"][ch])
plt.show()


def check_refs(sg_df_uid: pd.DataFrame) -> None:
sg_df_uid["mur_source"] = None
if all(sg_df_uid["mur_good"]):
return
if all(sg_df_uid["mur_good"]==False):
print("Failed. No good refs in scan group.")
return
#bad_ref_inds = sg_df_uid.index[sg_df_uid["mur_good"]==False]
bad_ref_df = sg_df_uid[sg_df_uid["mur_good"]==False]
good_ref_df = sg_df_uid[sg_df_uid["mur_good"]==True]

for i, scan_time in bad_ref_df["time"].items():
closest_time_idx = np.abs(scan_time - good_ref_df["time"]).idxmin()
source_mur = good_ref_df.loc[closest_time_idx, "data"]["mur"]
sg_df_uid.loc[i, "data"]["mur"] = source_mur
sg_df_uid.loc[i, "mur_source"] = good_ref_df.loc[closest_time_idx, "uid"]


def big_test(df_uid):
outlier_results = []
sg_dfs_out = []
for sg in df_uid.scan_group.unique()[1:2]:
sg_df_uid = df_uid[df_uid.scan_group == sg]
outlier_results.append(outlier_rejection(sg_df_uid.data.tolist(), sg_df_uid.uid.tolist()))
check_refs(sg_df_uid)
sg_dfs_out.append(sg_df_uid)
return outlier_results, sg_dfs_out

0 comments on commit 44958d7

Please sign in to comment.