|
@@ -1,18 +1,6 @@
|
|
|
import streamlit as st
|
|
|
import matplotlib.pyplot as plt
|
|
|
import numpy as np
|
|
|
-import sys
|
|
|
-
|
|
|
-### don't do it this way!
|
|
|
-import os
|
|
|
-absolute_path = os.path.abspath(__file__)
|
|
|
-# print("Full path: " + absolute_path)
|
|
|
-# print("Directory Path: " + os.path.dirname(absolute_path))
|
|
|
-
|
|
|
-# adding /backend to use its functions here
|
|
|
-sys.path.append("/".join(os.path.dirname(absolute_path).split('/')[:-1]))
|
|
|
-# print("/".join(os.path.dirname(absolute_path).split('/')[:-1]))
|
|
|
-from backend.calc import *
|
|
|
|
|
|
def plot_data(r,i, g):
|
|
|
# unit circle
|
|
@@ -50,55 +38,44 @@ def plot_data(r,i, g):
|
|
|
st.pyplot(fig)
|
|
|
|
|
|
|
|
|
-# ../../resource/data/1_M450.MEA
|
|
|
-# with open("/".join(os.path.dirname(absolute_path).split('/')[:-2]) + "/resource/data/1_M450.MEA") as f:
|
|
|
-# row = f.readlines()
|
|
|
-# f, r, i = [], [], []
|
|
|
-# for x in row:
|
|
|
-# a, b, c = (float(y) for y in x.split())
|
|
|
-# f.append(a) # frequency
|
|
|
-# r.append(b) # Re of something
|
|
|
-# i.append(c) # Im of something
|
|
|
-# plot_data(r,i)
|
|
|
+def run(calc_function):
|
|
|
+ data = []
|
|
|
+ uploaded_file = st.file_uploader('Upload a csv')
|
|
|
+ if uploaded_file is not None:
|
|
|
+ data = uploaded_file.readlines()
|
|
|
|
|
|
-### move all that into to a function
|
|
|
-data = []
|
|
|
-uploaded_file = st.file_uploader('Upload a csv')
|
|
|
-if uploaded_file is not None:
|
|
|
- data = uploaded_file.readlines()
|
|
|
|
|
|
+ col1, col2 = st.columns(2)
|
|
|
|
|
|
-col1, col2 = st.columns(2)
|
|
|
+ select_data_format = col1.selectbox('Choose data format from a list',['Frequency, Re(S11), Im(S11)','Frequency, Re(Zin), Im(Zin)'])
|
|
|
|
|
|
-select_data_format = col1.selectbox('Choose data format from a list',['Frequency, Re(S11), Im(S11)','Frequency, Re(Zin), Im(Zin)'])
|
|
|
+ select_separator = col2.selectbox('Choose separator',['","' ,'" "','";"'])
|
|
|
|
|
|
-select_separator = col2.selectbox('Choose separator',['","' ,'" "','";"'])
|
|
|
|
|
|
+ def unpack_data(data):
|
|
|
+ f, r, i = [], [], []
|
|
|
+ for x in data:
|
|
|
+ a, b, c = (float(y) for y in x.split())
|
|
|
+ f.append(a) # frequency
|
|
|
+ r.append(b) # Re of S11
|
|
|
+ i.append(c) # Im of S11
|
|
|
+ return f, r, i, 'very nice'
|
|
|
|
|
|
-def unpack_data(data):
|
|
|
- f, r, i = [], [], []
|
|
|
- for x in data:
|
|
|
- a, b, c = (float(y) for y in x.split())
|
|
|
- f.append(a) # frequency
|
|
|
- r.append(b) # Re of S11
|
|
|
- i.append(c) # Im of S11
|
|
|
- return f, r, i, 'very nice'
|
|
|
+ validator_status = 'nice'
|
|
|
+ # calculate
|
|
|
+ circle_params=[]
|
|
|
+ if len(data) > 0:
|
|
|
+ f,r,i,validator_status = unpack_data(data)
|
|
|
|
|
|
-validator_status = 'nice'
|
|
|
-# calculate
|
|
|
-circle_params=[]
|
|
|
-if len(data) > 0:
|
|
|
- f,r,i,validator_status = unpack_data(data)
|
|
|
-
|
|
|
- Q0,sigmaQ0,QL,sigmaQl, circle_params =fl_fitting(f,r,i)
|
|
|
- st.write("Cable attenuation")
|
|
|
- st.write(f"Q0 = {Q0} +- {sigmaQ0}, epsilon Q0 ={sigmaQ0/Q0}")
|
|
|
- st.write(f"QL = {QL} +- {sigmaQl}, epsilon QL ={sigmaQl/QL}")
|
|
|
+ Q0,sigmaQ0,QL,sigmaQl, circle_params =calc_function(f,r,i)
|
|
|
+ st.write("Cable attenuation")
|
|
|
+ st.write(f"Q0 = {Q0} +- {sigmaQ0}, epsilon Q0 ={sigmaQ0/Q0}")
|
|
|
+ st.write(f"QL = {QL} +- {sigmaQl}, epsilon QL ={sigmaQl/QL}")
|
|
|
|
|
|
|
|
|
-st.write("Status: " +validator_status)
|
|
|
+ st.write("Status: " +validator_status)
|
|
|
|
|
|
-if len(data) > 0:
|
|
|
- f,r,i,validator_status = unpack_data(data)
|
|
|
- plot_data(r,i,circle_params)
|
|
|
-
|
|
|
+ if len(data) > 0:
|
|
|
+ f,r,i,validator_status = unpack_data(data)
|
|
|
+ plot_data(r,i,circle_params)
|
|
|
+
|