From 6b414ba99ce93867bef2280ef2e438d0b57a42b0 Mon Sep 17 00:00:00 2001 From: jfsScience Date: Mon, 30 Nov 2020 16:20:06 +0100 Subject: [PATCH] start mit pandas save / load --- CCDpanelsetup.py | 2 ++ JFSphoto.py | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CCDpanelsetup.py b/CCDpanelsetup.py index 5eb8c20..0d6139b 100644 --- a/CCDpanelsetup.py +++ b/CCDpanelsetup.py @@ -258,6 +258,8 @@ class buildpanel(tk.Frame): self.jfsbase_absorption.grid(row=17,column=4) self.jfsbase_transmission = tk.Radiobutton(self,text="Transmision",variable=self.jf.abs_trans,value=1,state=tk.DISABLED,command=lambda CCDplot=CCDplot: self.updateplot(CCDplot)) self.jfsbase_transmission.grid(row=18,column=4) + self.jfspdsave = tk.Button(self,text='save Data',fg="blue", command=self.jf.save_pandas) + self.jfspdsave.grid(row=19,column=4) ### Callbacks for traces, buttons, etc ### def callback(self): diff --git a/JFSphoto.py b/JFSphoto.py index cdfae3d..21257c8 100644 --- a/JFSphoto.py +++ b/JFSphoto.py @@ -6,6 +6,7 @@ import tkinter as tk import csv import numpy as np from configparser import ConfigParser +import pandas as pd ####################################### object class Jfsphoto (object): @@ -29,7 +30,7 @@ class Jfsphoto (object): self.darkData16 = np.zeros(3694, np.float32) self.darkline_checked = tk.IntVar() self.darkline_checked.set(0) - ########## baseline of the lightsource + ########## baseline of the lightsource transmission or absorption self.baseData16 = np.zeros(3694, np.float32) self.baseline_checked = tk.IntVar() self.baseline_checked.set(0) @@ -38,6 +39,9 @@ class Jfsphoto (object): self.abs_trans= tk.IntVar() ########## set to transition self.abs_trans.set(1) + ########## dataframe to load and save photometer data + self.pandas_count = 0 + self.df = pd.DataFrame() def do_calibrate(self): win = tk.Toplevel() @@ -102,7 +106,7 @@ class Jfsphoto (object): return 0 else : self.darkData16 = dark*1.0 - return 1 + self.df['darkline']=self.darkData16 def get_darkline_checked(self): return self.darkline_checked.get() @@ -132,6 +136,7 @@ class Jfsphoto (object): left = False self.baseData16[i] = base[i]*1.0 print(self.baseline_start," ",self.baseline_end) + self.df['baseline']=self.baseData16 return 1 def get_baseline_checked(self): @@ -171,11 +176,21 @@ class Jfsphoto (object): def set_nm_scale(self): if (self.nm_scale_ok): self.nmData16 = np.linspace(self.nm_left,self.nm_right,3694) + self.df['nmscale']=self.nmData16 def get_nm_scale(self): self.set_nm_scale() return self.nmData16 + def add_pandas(self,data): + self.df[str(self.pandas_count)] = data + ##self.pandas_count += 1 + + + + def save_pandas(self): + print(self.df.head()) + def openfile(self,xx): rxData16 = np.zeros(3694, np.uint16) filename = filedialog.askopenfilename(defaultextension=".dat", title="Open file") @@ -198,7 +213,7 @@ class Jfsphoto (object): self.nm2i = np.argmin(rxData16) self.tnm2i.set(str(self.nm2i)) self.checkit() - + self.add_pandas(rxData16) except IOError: messagebox.showerror("By the great otter!","There's a problem opening the file.")