main.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. from PyQt5 import QtCore, QtGui, QtWidgets
  2. from New_Gui import Ui_MainWindow
  3. import os
  4. import functions
  5. class Functionality(QtWidgets.QMainWindow, Ui_MainWindow):
  6. def __init__(self):
  7. super(Functionality, self).__init__()
  8. self.setupUi(self)
  9. self.table = None
  10. self.arr = [self.checkBox_Bx, self.checkBox_By_GSE, self.checkBox_Bz_GSE, self.checkBox_By_GSM,
  11. self.checkBox_Bz_GSM, self.checkBox_SYM_D, self.checkBox_SYM_H, self.checkBox_ASY_D,
  12. self.checkBox_ASY_H, self.checkBox_Vx, self.checkBox_Vy, self.checkBox_Vz] # Bx By Bz By Bz Sym/d Sym/h Asy/d Asy/h
  13. self.win2 = None
  14. self.lineEdit_7.setDisabled(True)
  15. self.lineEdit_6.setDisabled(True)
  16. self.lineEdit_3.setDisabled(True)
  17. self.comboBox_2.setDisabled(True)
  18. self.files_list()
  19. self.Handel_button()
  20. def Handel_button(self):
  21. self.pushButton_Download.clicked.connect(self.Get_link)
  22. self.pushButton.clicked.connect(self.simple_Plot)
  23. self.radioButton.clicked.connect(self.default)
  24. self.pushButton_SaveConfig.clicked.connect(self.Save_config)
  25. self.pushButton_4.clicked.connect(self.Marginau_python)
  26. self.pushButton_2.clicked.connect(self.WignerVille_python)
  27. self.pushButton_3.clicked.connect(self.Page_python)
  28. self.pushButton_6.clicked.connect(self.Spectrogram_python)
  29. self.pushButton_7.clicked.connect(self.Born_Jordan_octave)
  30. self.pushButton_14.clicked.connect(self.Page_octave)
  31. self.pushButton_12.clicked.connect(self.Pseudo_Wigner_Ville_octave)
  32. self.pushButton_8.clicked.connect(self.Choi_Williams_octave)
  33. self.pushButton_9.clicked.connect(self.Margenau_Hill_octave)
  34. self.pushButton_17.clicked.connect(self.Spectrogram_octave)
  35. self.pushButton_15.clicked.connect(self.Pseudo_Page_octave)
  36. self.pushButton_16.clicked.connect(self.Rihaczek_octave)
  37. self.pushButton_13.clicked.connect(self.WignerVille_octave)
  38. self.pushButton_11.clicked.connect(self.Pseudo_Margenau_Hill_octave)
  39. self.pushButton_10.clicked.connect(self.Margenau_Hill_Spectrogram_octave)
  40. self.pushButton_18.clicked.connect(self.Zhao_Atlas_Marks_octave)
  41. self.pushButton_20.clicked.connect(self.Histogram_function)
  42. self.pushButton_21.clicked.connect(self.Entropy_function)
  43. self.pushButton_22.clicked.connect(self.Escort_function)
  44. self.pushButton_23.clicked.connect(self.Inf_Dicrimination_function)
  45. def Get_link(self):
  46. if self.lineEdit_5.text() == '':
  47. name = self.lineEdit_5.placeholderText()
  48. else:
  49. name = self.lineEdit_5.text()
  50. url = self.lineEdit.text()
  51. functions.Download(url, name)
  52. self.pushButton_Download.setStyleSheet("background-color: rgb(115, 210, 22);")
  53. self.pushButton_Download.setText(QtCore.QCoreApplication.translate("MainWindow", "Completed"))
  54. self.files_list()
  55. def files_list(self):
  56. for j, i in enumerate(os.listdir(os.getcwd())):
  57. self.comboBox.addItem("")
  58. self.comboBox.setItemText(j, QtCore.QCoreApplication.translate("MainWindow", i))
  59. def simple_Plot(self):
  60. if self.table is None:
  61. self.table = functions.ReadTable(self.comboBox.currentText())
  62. for i in self.arr:
  63. if i.isChecked():
  64. functions.plot(i, self.table)
  65. def default(self):
  66. if self.radioButton.isChecked():
  67. self.comboBox_2.setDisabled(True)
  68. self.lineEdit_7.setDisabled(True)
  69. self.lineEdit_6.setDisabled(True)
  70. self.lineEdit_3.setDisabled(True)
  71. else:
  72. self.comboBox_2.setDisabled(False)
  73. self.lineEdit_7.setDisabled(False)
  74. self.lineEdit_6.setDisabled(False)
  75. self.lineEdit_3.setDisabled(False)
  76. def Refresh(self):
  77. self.pushButton_SaveConfig.setStyleSheet("background-color: rgb(243, 243, 243);")
  78. self.pushButton_SaveConfig.setText(QtCore.QCoreApplication.translate("MainWindow", "Save configuration"))
  79. def Save_config(self):
  80. if self.table is None:
  81. self.table = functions.ReadTable(self.comboBox.currentText())
  82. self.step = int(self.lineEdit_2.text())
  83. self.num, self.win, self.dsamp = self._window_downsampling_numbers()
  84. if self.win2 != self.win:
  85. self.h = functions.Win_functions(self.win)
  86. self.win2 = self.win
  87. print("Complete windows")
  88. self.pushButton_SaveConfig.setStyleSheet("background-color: rgb(115, 210, 22);")
  89. self.pushButton_SaveConfig.setText(QtCore.QCoreApplication.translate("MainWindow", "Saved"))
  90. def _window_downsampling_numbers(self):
  91. if self.lineEdit_7.text() == '':
  92. n = int(self.lineEdit_7.placeholderText())
  93. else:
  94. n = int(self.lineEdit_7.text())
  95. if self.lineEdit_3.text() == '':
  96. w = (int(self.lineEdit_3.placeholderText()), self.comboBox_2.currentText())
  97. else:
  98. w = (int(self.lineEdit_3.text()), self.comboBox_2.currentText())
  99. if self.lineEdit_6.text() == '':
  100. ds = int(self.lineEdit_6.placeholderText())
  101. else:
  102. ds = int(self.lineEdit_6.text())
  103. return n, w, ds
  104. """Python Plot"""
  105. def WignerVille_python(self):
  106. for i in self.arr:
  107. if i.isChecked():
  108. functions.WV_python(i, self.table, self.win,
  109. self.dsamp, self.num, self.step)
  110. def Page_python(self):
  111. for i in self.arr:
  112. if i.isChecked():
  113. functions.P_python(i, self.table, self.win, self.dsamp, self.num, self.step)
  114. def Marginau_python(self):
  115. for i in self.arr:
  116. if i.isChecked():
  117. functions.MH_python(i, self.table, self.win, self.dsamp, self.num, self.step)
  118. def Spectrogram_python(self):
  119. for i in self.arr:
  120. if i.isChecked():
  121. functions.Spectr_python(i, self.table, self.win, self.dsamp, self.num, self.step)
  122. """Octave Plot"""
  123. def WignerVille_octave(self):
  124. for i in self.arr:
  125. if i.isChecked():
  126. self.Refresh()
  127. info = [i.text(), self.win, self.dsamp]
  128. functions.WV_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  129. def Born_Jordan_octave(self):
  130. for i in self.arr:
  131. if i.isChecked():
  132. self.Refresh()
  133. info = [i.text(), self.win, self.dsamp]
  134. functions.BJ_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  135. def Margenau_Hill_octave(self):
  136. for i in self.arr:
  137. if i.isChecked():
  138. self.Refresh()
  139. info = [i.text(), self.win, self.dsamp]
  140. functions.MH_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  141. def Pseudo_Wigner_Ville_octave(self):
  142. for i in self.arr:
  143. if i.isChecked():
  144. self.Refresh()
  145. info = [i.text(), self.win, self.dsamp]
  146. functions.PWV_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  147. def Pseudo_Page_octave(self):
  148. for i in self.arr:
  149. if i.isChecked():
  150. self.Refresh()
  151. info = [i.text(), self.win, self.dsamp]
  152. functions.PPage_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  153. def Choi_Williams_octave(self):
  154. for i in self.arr:
  155. if i.isChecked():
  156. self.Refresh()
  157. info = [i.text(), self.win, self.dsamp]
  158. functions.CW_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  159. def Margenau_Hill_Spectrogram_octave(self):
  160. for i in self.arr:
  161. if i.isChecked():
  162. self.Refresh()
  163. info = [i.text(), self.win, self.dsamp]
  164. functions.MHS_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  165. def Page_octave(self):
  166. for i in self.arr:
  167. if i.isChecked():
  168. self.Refresh()
  169. info = [i.text(), self.win, self.dsamp]
  170. functions.Page_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  171. def Spectrogram_octave(self):
  172. for i in self.arr:
  173. if i.isChecked():
  174. self.Refresh()
  175. info = [i.text(), self.win, self.dsamp]
  176. functions.Spectr_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  177. def Pseudo_Margenau_Hill_octave(self):
  178. for i in self.arr:
  179. if i.isChecked():
  180. self.Refresh()
  181. info = [i.text(), self.win, self.dsamp]
  182. functions.PMH_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  183. def Zhao_Atlas_Marks_octave(self):
  184. for i in self.arr:
  185. if i.isChecked():
  186. self.Refresh()
  187. info = [i.text(), self.win, self.dsamp]
  188. functions.ZAM_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  189. def Rihaczek_octave(self):
  190. for i in self.arr:
  191. if i.isChecked():
  192. self.Refresh()
  193. info = [i.text(), self.win, self.dsamp]
  194. functions.Ri_octave(i, self.table, self.h, self.dsamp, self.num, self.step, info)
  195. """New functions Plot"""
  196. def limitation_area(self):
  197. arr = [self.lineEdit_y_start, self.lineEdit_y_stop, \
  198. self.lineEdit_x_start, self.lineEdit_x_stop]
  199. limit_arr = []
  200. for i in arr:
  201. if i.text().isdecimal() or "-" in i.text():
  202. limit_arr.append(float(i.text()))
  203. else:
  204. limit_arr.append(None)
  205. return limit_arr
  206. def Histogram_function(self):
  207. list_for_func = []
  208. for i in self.arr:
  209. if i.isChecked():
  210. list_for_func.append(i.text())
  211. functions.hist(list_for_func,int(self.lineEdit_bins.text()), self.limitation_area())
  212. def Entropy_function(self):
  213. list_for_func = []
  214. for i in self.arr:
  215. if i.isChecked():
  216. list_for_func.append(i.text())
  217. functions.entropy(list_for_func,int(self.lineEdit_bins.text()), self.limitation_area())
  218. def Escort_function(self):
  219. list_for_func = []
  220. for i in self.arr:
  221. if i.isChecked():
  222. list_for_func.append(i.text())
  223. functions.escort(list_for_func)
  224. def Inf_Dicrimination_function(self):
  225. list_for_func = []
  226. for i in self.arr:
  227. if i.isChecked():
  228. list_for_func.append(i.text())
  229. functions.information_discrimination(list_for_func)
  230. if __name__ == "__main__":
  231. import sys
  232. app = QtWidgets.QApplication(sys.argv)
  233. Form = Functionality()
  234. # MainWindow = QtWidgets.QMainWindow()
  235. # ui = Functionality()
  236. Form.show()
  237. # MainWindow.show()
  238. sys.exit(app.exec_())