From 545ca32271e2019a0c98c0c60fc9b30c2aeb75c8 Mon Sep 17 00:00:00 2001 From: emtunhei <emtunhei@stud.ntnu.no> Date: Tue, 26 Apr 2022 14:12:27 +0200 Subject: [PATCH] Added empty python script --- .../GUI/LineChartFunctionality.java | 24 ++++++++++++++++++ .../DataProcessing/NonlinearRegression.py | 3 +++ .../DataProcessing/NonlinearRegression.py | 3 +++ .../GUI/LineChartFunctionality.class | Bin 9248 -> 10038 bytes .../application/GUI/OutputPopUpWindow.class | Bin 2459 -> 3645 bytes 5 files changed, 30 insertions(+) create mode 100644 src/main/resources/com.application/DataProcessing/NonlinearRegression.py create mode 100644 target/classes/com.application/DataProcessing/NonlinearRegression.py diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java index e3742ba..82a4384 100644 --- a/src/main/java/com/application/GUI/LineChartFunctionality.java +++ b/src/main/java/com/application/GUI/LineChartFunctionality.java @@ -11,7 +11,12 @@ import org.apache.commons.math3.stat.descriptive.SummaryStatistics; import org.apache.commons.math3.stat.regression.SimpleRegression; import org.python.util.PythonInterpreter; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.*; +import java.util.stream.DoubleStream; +import java.util.stream.IntStream; public class LineChartFunctionality { @@ -187,8 +192,27 @@ public class LineChartFunctionality { } //PythonInterpreter.initialize(System.getProperties(),System.getProperties(), data); + //Process process = Runtime.getRuntime().exec(LineChartFunctionality.class.getResource("/com.application/DataProcessing/NonlinearRegression.py").getFile()); + //BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + //System.out.println(reader.readLine()); + + /* + ProcessBuilder pb = new ProcessBuilder("python", "/com.application/DataProcessing/NonlinearRegression.py",Arrays.deepToString(data)); + Process p = pb.start(); + BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); + int ret = new Integer(in.readLine()); + System.out.println("value is : " + ret); + + */ + + //pythonInterpreter.execfile(LineChartFunctionality.class.getResource("/com.application/DataProcessing/NonlinearRegression.py").getFile()); //pythonInterpreter.execfile(); + PythonInterpreter pythonInterpreter = new PythonInterpreter(); + DoubleStream stream = Arrays.stream(data).flatMapToDouble(x -> Arrays.stream(x)); + //pythonInterpreter.execfile(stream,LineChartFunctionality.class.getResource("/com.application/DataProcessing/NonlinearRegression.py").getFile()); + + //InputStream inputStream = Arrays.stream(data).toArray(); XYChart.Series<String, Number> regressionSeries = new XYChart.Series<String, Number>(); diff --git a/src/main/resources/com.application/DataProcessing/NonlinearRegression.py b/src/main/resources/com.application/DataProcessing/NonlinearRegression.py new file mode 100644 index 0000000..5ff2459 --- /dev/null +++ b/src/main/resources/com.application/DataProcessing/NonlinearRegression.py @@ -0,0 +1,3 @@ +print("This line will be printed.") + +print(locals()) \ No newline at end of file diff --git a/target/classes/com.application/DataProcessing/NonlinearRegression.py b/target/classes/com.application/DataProcessing/NonlinearRegression.py new file mode 100644 index 0000000..5ff2459 --- /dev/null +++ b/target/classes/com.application/DataProcessing/NonlinearRegression.py @@ -0,0 +1,3 @@ +print("This line will be printed.") + +print(locals()) \ No newline at end of file diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class index a0b277d214b91d1ddcbce90c8f0b144e1365c1b8..34f493811b07ef229086fc4f9c40b8d2c9998435 100644 GIT binary patch delta 3973 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 delta 3268 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 diff --git a/target/classes/com/application/GUI/OutputPopUpWindow.class b/target/classes/com/application/GUI/OutputPopUpWindow.class index c8972540dd67702c1f8cd361d98d6357e1aedfda..6667f6e6cb356173368f73e755903074a6b0274d 100644 GIT binary patch delta 2055 zcmbO&yjQ0F)W2Q(7#J8#7%p)!STn@1GsJQ+Ffqh%GQ=^&gIEb142d8*iJc*ti-Ch7 zg@Yj#M5l2wq%&lISeYCQSsV=6Abt)zLoOGCAVUm@NCOd>><oDv4EbCPq9C0GAR4T* z5X8#lV5lz=VqjpX0P!l>8LHSER2aa3i$R{D8boA*h#Gc=T5g6qhI)2}1~!ML17Ia= z4)qRT1{Z@mLnDZ2VrOXPU})iDXk}>QVrXaR0O{!jxxNcTbb}n!!_Cmk(8tBl&oF_V zVImh7g9XDRc81C93{y5f-^HjXlarX6l#-~Dl384klUV6rT2fG25}uitl3%W3z{p^$ zF<FmEY%)I+SFTT1Vp(EZg??&TYF>%HV{%Dmex56cZLJx`$iS3Z!N?#AR->Pjn3t~a zT9KSu08(Sk$iSG&$RGul!>XT=fj77$F*(~eu^=QdDJPYkVdCWZOd57J47Q96LQrdq zOA^yl^@BkqJHu2ShG`7bc^GCe%w%NX^UcpJE-5WaRdCKoP0r?Fn8h%gkwI#*K9i`r zPhwJP4iAG3NQ5IZub{LfB)@=%VGhG=c80k;4D%S~^Dr!6SUA~{S&?lK!+b^tIgqx= z{7jsa+nDXl7lVY@+%oeri!&G*1f25oONvX15(|7&OEU6Piuu_XmIyE`<!579Ccv<q zhhYW7N*;z)467$!V3t*}VOYb%u$EyRBZDB!3(2W@srr8TDXHuX>v<S9Fl?MG$Rf^R z!?1~mVKc+J$p$R`zFT-0wlZvEXV}ieu!CVI55q2o-8>9?820io>|?OyVc5@bfSutW z55pmbo$L&Uc^Hm>JSGe>A1%~*7>+X7Zl1#u#u&)OaE#$NBZIgGY7D^Qj*G#H;RGXt zESfZW1hZu%=B4DMA}0xNO)MsQfRz<lGcs@&r<VBVLCj%fkV7*cY&}e|X4vLWtaXg_ zj10W#sU^-CiA9OYC8<Tlj0{p55KAE51IYxZ7M7;wC8t_5GKe8Ojx58-z)_MPTvC*o zm(Iu_nw+1jpIA_klbM_dN{;$2PWmoRj12q*rNtS(iFvTZ0}`n(%FHVPC&iGW#N<?V zhLb!Drx?!hFa$9KGcqV4Y|G3m%g;{L_W|b}-_(-Cw8Z3+{Gv)m2JT!0kDcKHBLkaH zetvdo0V4yCXI@@vk#kOBadB!fBf}X;ctHFGHLo6$t{|aOtOC(#4Gv_8I*6x`MW8w% z8bc}zQpuBqSXqx>GjdEo?R8Gf$qCLZNwsEYxX8$$iV;E(cR@^td5Dog4u`rls6qxs z1}g?@a9PL9z{p_3V9UVBV8_6~pwGa_z{tSBz^b*KfpH@P0|OI-Jp%&+8(5H!0aQHl zfZ41Jjtou=3=EtM&M?i4HyPL&I2afh87H4-@2Qt$)!oG)%fPUWL2fsLe5442!gdBF zD>g~CO$-9t7?dU1wlS!1>}61mWY!LjWYGzZWYrChWRqkGj%1f)4c^J1#>5c5n?XHN zl1+p`Lxe$VJA;lDyCnNI23;XNA^mL(2HO}6cQP0;F@$S@M2)q!F_<7+oLA2v&A`AQ z#K6HI%)rke!XU~Z&LGbq!Jx_@$)Lj^!(hfB%V5JG$KcE$&*06Vz!1ow$PmGx!jR0M z%8<pN#!$qd&QQys!O+5>$<V`~#W0=0m|-!43BzgzQ-%u+<_r%REEv8qSTg)!uwrCj zum%TB5CaDT2g6SW7Y0{`dIko0hDQu;4DJk!3}y_c89W%=8JHNn8MZNaGI%jCGbA(2 zWAJA1VPIjXWoTjWW$<BOWmwD*$Kc1{&%nm;kU@bVfFY29U4RReIiS%~!NADC%)r1P zs<n;5bSHxuBf|~`^W_X2zB=0&EH{E9hKGTl!GeLAp$ZglVhpSd3=BF9JPi5_{0zDb z0t|W#A`Av#$0{%|GYBxSFoZCKGBAP61iK5ACPW#+7{VDC86p@M7}yz@{Mi{ISs0iZ rqQJ=^n&B)10|OTWBg1Ki^9*MgBpHes7#MgM7#T_!m>EhL${5N47bp1m delta 879 zcmdlhGh4X+)W2Q(7#J8#7-n%Xm@xRVGx%{aFfsUYGWatDfLMVX3_&0|n4KYni-Ch7 zl!GA*M2B-SL@-2xSWz4d(HsmhAbu=6LmU@_AcHT62nP{S><sZ73<+Eeq9C1#AR4SQ z3B-!xU{FtHXGmdlP+<TAE(TeKR1gsbBGT9y(zzKj7&6%zvL<d2(N$&0=3-D~$YE#5 z<zUF;V#sGG;9@9bC<3V|2Dz~WM3k~Kl(93EZ{}d!#W=Z$S<TLr!HkhXC@ZlnF|9(s zxFj(>RX-R+vNKfhFjO*B@i0^~)G#ve`Q~R9my{NzDmZ7PCTH_7)H2jDGDuAhU=sE7 zNlZ%3;bAZZiEw1*6_l2Q<QMQT)HBqvGc@opG%_^tFf=o?Ff#C?8e+xBzy($gHK3KD ziIG8Wasj*C<Zu={o;DDd%`G!8vp8e&85UU%Q-*dPh7N|#$sbw7*t&Qax*2*V^RkL_ zn=<tBF!V8WGBT)44qz0S?96JR(9gp#fng#$!z3Pt$qZ9?7^X5z<6)T2FoTC-Cdk98 zlLHu4H-BK&W88d;y^c|gL6O0j!2}%2Obm<+rVM5bj11<J3%SLNEf^RW*cccY7#MgN zEEyOWc))B{1}g?@1_lOB1{;W41_s7c4D1XX3=9n4Chy|zk=@N88!5sdx1B-3icOMj z6NA7u21QA>Z462rdl{4`=kZ9?t1vNy?`BYqlw=cOP!nO$*v_D3#V*OdjX_&TM@V-Y zgWfg<{hbU3Obp>#AW=iDZ45>m85kIt7(i~yVvu5BU=U>BU=U*9XAou(We{VKXAoyl zWsqRdVUT7pV~}C6VUT5TW{_j>W{_tHWKdv;U{GdAW>8_sVo+r$s%KDRsAW)RXkpM` z=wZ-in8BdKuz*3A;V6SX!!-s2hSv;+3?CVc7``$XgFPO^z`?-5@Q%Tj!H$7}L7w3{ zgFS--10#bO!vO|I1_uTv25*Md3{DKr49pD443imL7+e`x7-|_R8Qd6L8CV%+FvKyq bGk7qtF<fI%VDMz%^<rRWU}W$H`^X0XRf3&} -- GitLab