def split(t, iteration, max_sims, splits): sim_name = "network_simulations_3D" it_to_split = iteration prefix = "_pre" prefix_to_split = f"{t}{prefix}_sim_iteration_{it_to_split}" n_splits = splits max_sims_to_split = max_sims file_tree = ft.FileTree() # Get path to iteration save it_dir_0 = file_tree.get_its_num_dir(0, it_to_split) only_files = [f for f in listdir(it_dir_0) if isfile(join(it_dir_0, f))] # Find the correct save based on `time` it_file = "" for i in only_files: if prefix_to_split in i: it_file = i break print(it_file) # Load iteration split_paths = [ file_tree.get_splits_num_dir(0, it_to_split, j) for j in range(n_splits) ] """split_paths += [file_tree.get_splits_num_dir((1, it_to_split, j) for j in range(64, 83))]""" with open(f"{it_dir_0}/{it_file}", 'rb') as file_handle: It = pkl.load(file_handle) # Split Iteration object into different files It.do_split(split_paths, n_splits, max_sims_to_split) print("It split completed successfully.")
def __init__(self, func_name, sol_range, num_div, it_step, nodes_scaled, nodes_discrete, cu, no, status=None, next_node_idx=0): self.func_name = func_name # Name of the simulation self.sol_range = sol_range self.num_div = num_div self.it_step = it_step self.nodes_scaled = nodes_scaled # nodes to to be simulated self.nodes_discrete = nodes_discrete # nodes already simulated self.Cu = cu self.No = no # Node dictionary contains nodes whose freqs have been # acquired self.file_tree = ft.FileTree() # Identifiers self.status = status # the current date&time + one of "_pre", # "_inter", "_post", updated at each save after initialization self.file_name = f"{str(self.status)}_sim_iteration_" + str( self.it_step) self.next_node_idx = next_node_idx # The next node to be simulated self.results = None
def init_ui(self, directory): # UI style QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('macintosh')) # UI position self.move(0, 0) self.resolution = QtGui.QDesktopWidget().availableGeometry() self.setGeometry(self.resolution) self.showFullScreen() # UI components self.splitter = QtGui.QSplitter(QtCore.Qt.Horizontal) # pane1 self.left = QtGui.QFrame(self) self.left.setFrameShape(QtGui.QFrame.StyledPanel) self.scene = QtGui.QGraphicsScene() self.view = GraphicsView(None, self.scene, self.left) self.view.setDragMode(QtGui.QGraphicsView.ScrollHandDrag) self.view.setMinimumSize(.8*self.resolution.width(), self.resolution.height()) self.view.setCacheMode(QtGui.QGraphicsView.CacheBackground) self.view.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) self.splitter.addWidget(self.view) # pane2 self.right = QtGui.QSplitter(QtCore.Qt.Vertical) self.right_top_model = QtGui.QDirModel() self.right_top_model.setNameFilters(['*.png']) self.right_top_model.setFilter(QtCore.QDir.AllDirs|QtCore.QDir.Files| QtCore.QDir.NoDotAndDotDot|QtCore.QDir.CaseSensitive) self.right_top_model.setSorting(QtCore.QDir.Name|QtCore.QDir.DirsFirst) self.right_top_tree = FileTree(self.right_top_model, directory) QtCore.QObject.connect(self.right_top_tree, QtCore.SIGNAL("clicked(QModelIndex)"), self.right_top_clicked) self.right.addWidget(self.right_top_tree) self.right_bottom_tree = FileTree(None, directory) QtCore.QObject.connect(self.right_bottom_tree, QtCore.SIGNAL("clicked(QModelIndex)"), self.right_bottom_clicked) self.right.addWidget(self.right_bottom_tree) self.splitter.addWidget(self.right) self.setCentralWidget(self.splitter)
def __initControl(self): #窗口 win = tk.PanedWindow(self.root, opaqueresize=False, bd=0, sashwidth=1.5, bg='black') win.pack(fill=tk.BOTH, expand=True) #左框架 lframe = tk.Frame(win, bg="#D3D3D3") win.add(lframe) #文件列表和按钮 self.ftree = FileTree.FileTree(lframe) folderbutton = tk.Button( lframe, text='open folder', font=("Verdana", 10), padx=10, pady=5, command=lambda: self.threadFunc(self.__openFolder)) folderbutton.pack() self.ftree.pack(fill=tk.BOTH, expand=True) self.ftree.bindTree(self.__openFile) #右框架 rframe = tk.Frame(win) win.add(rframe) #标签栏 self.tab = ScrolledTab.ScrolledTab(rframe) self.tab.pack(fill=tk.X) self.tab.bindFunc(self.__newFile, self.__changeFile, self.__closeFile, self.__editQuit) #文本框 self.text = LabelText.LabelText(rframe) self.text.pack(fill=tk.BOTH, expand=True) self.text.bindCheck(self.__checkText)
if __name__ == "__main__": h.nrnmpi_init() pc = h.ParallelContext() #sys.settrace(trace) faulthandler.enable() h.load_file("nrngui.hoc") Iteration_path = "/scratch/hartman.da/network_simulations_3D/iterations/iteration_5" Iteration_file = "next_step.pkl" with open(f"{Iteration_path}/{Iteration_file}", "rb") as f: Old_Iteration = pkl.load(f) iteration_identity = Old_Iteration.it_step SIM_NAME = "network_simulations_3D" file_tree = ft.FileTree() t_start = time.perf_counter() pc.runworker() results, nodes_discrete, No, Cu_br, num_div, sol_range, it_step = \ Old_Iteration.give_shapes() Cu_add = Old_Iteration.give_cu_add() nodes_scaled = Old_Iteration.nodes_scaled n_nodes_new = nodes_scaled.shape[0] while n_nodes_new > 0: n_nodes_new = nodes_scaled.shape[0] freqs = np.zeros(n_nodes_new) for z, node in enumerate(nodes_scaled): pc.submit(network_func, [node, z])
import sys import FileTree as ft import numpy as np import pickle as pkl import os from os import listdir from os.path import isfile, join if __name__ == "__main__": it_file_time = str(sys.argv[1]) iteration = int(sys.argv[2]) n_splits = int(sys.argv[3]) tree = ft.FileTree() it_dir = tree.get_its_num_dir(0, iteration) it_dir_files = [f for f in listdir(it_dir) if isfile(join(it_dir, f))] results_dir_list = [ f"{tree.get_split_results_dir(0, iteration, j)}" for j in range(n_splits) ] size_total = 0 ArrList = [] it_file = None # Find correct iteration file for i in it_dir_files: if it_file_time in i: it_file = i break # Load iteration object if it_file is not None:
class Window(QtGui.QMainWindow): def __init__(self, parent=None): print >> sys.stderr, 'Window::init()' QtGui.QMainWindow.__init__(self, None, QtCore.Qt.Tool|QtCore.Qt.FramelessWindowHint) self.setFocusPolicy(QtCore.Qt.StrongFocus) self.setAttribute(QtCore.Qt.WA_QuitOnClose, True) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.setWindowTitle('FYP module 2012') self.select_img_folder() def select_img_folder(self): fd = QtGui.QFileDialog(caption="Select image folder") tree = fd.findChild(QtGui.QTreeView) tree.setRootIsDecorated(True) tree.setItemsExpandable(True) fd.setFileMode(QtGui.QFileDialog.Directory) fd.setViewMode(QtGui.QFileDialog.Detail) if fd.exec_(): self.init_ui(str(fd.selectedFiles()[0])) else: sys.exit(0) def init_ui(self, directory): # UI style QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('macintosh')) # UI position self.move(0, 0) self.resolution = QtGui.QDesktopWidget().availableGeometry() self.setGeometry(self.resolution) self.showFullScreen() # UI components self.splitter = QtGui.QSplitter(QtCore.Qt.Horizontal) # pane1 self.left = QtGui.QFrame(self) self.left.setFrameShape(QtGui.QFrame.StyledPanel) self.scene = QtGui.QGraphicsScene() self.view = GraphicsView(None, self.scene, self.left) self.view.setDragMode(QtGui.QGraphicsView.ScrollHandDrag) self.view.setMinimumSize(.8*self.resolution.width(), self.resolution.height()) self.view.setCacheMode(QtGui.QGraphicsView.CacheBackground) self.view.setViewportUpdateMode(QtGui.QGraphicsView.BoundingRectViewportUpdate) self.splitter.addWidget(self.view) # pane2 self.right = QtGui.QSplitter(QtCore.Qt.Vertical) self.right_top_model = QtGui.QDirModel() self.right_top_model.setNameFilters(['*.png']) self.right_top_model.setFilter(QtCore.QDir.AllDirs|QtCore.QDir.Files| QtCore.QDir.NoDotAndDotDot|QtCore.QDir.CaseSensitive) self.right_top_model.setSorting(QtCore.QDir.Name|QtCore.QDir.DirsFirst) self.right_top_tree = FileTree(self.right_top_model, directory) QtCore.QObject.connect(self.right_top_tree, QtCore.SIGNAL("clicked(QModelIndex)"), self.right_top_clicked) self.right.addWidget(self.right_top_tree) self.right_bottom_tree = FileTree(None, directory) QtCore.QObject.connect(self.right_bottom_tree, QtCore.SIGNAL("clicked(QModelIndex)"), self.right_bottom_clicked) self.right.addWidget(self.right_bottom_tree) self.splitter.addWidget(self.right) self.setCentralWidget(self.splitter) def load_image(self, filename, qwidget): print >> sys.stderr, "Window::load_image(%s)" % filename self.filename = filename self.qwidget = qwidget if filename and os.path.isfile(filename) \ and os.path.splitext(filename)[1].endswith('.png'): [self.scene.removeItem(item) for item in self.scene.items()] self.image = Image.open(str(filename)) width, height = self.image.size self.pixmap = QtGui.QPixmap(filename) self.qgpi = QtGui.QGraphicsPixmapItem(self.pixmap) self.scene.addItem(self.qgpi) self.scene.setSceneRect(self.scene.itemsBoundingRect()) self.view.centerOn(self.view.size().width()/2, self.view.size().height()/2) assert len(self.scene.items()) == 1 self.view.scene = self.scene self.view.pixmap = self.pixmap # print >> sys.stderr, self.left.size(), self.view.size(), self.scene.sceneRect(), self.scene.itemsBoundingRect(), (width, height) def right_top_clicked(self, index): print >> sys.stderr, 'Window::right_top_clicked()' if index and index.isValid() and index.row() >= 0: model = index.model() if model: path = str(model.filePath(index)) if os.path.isfile(path) \ and os.path.splitext(path)[1].endswith('.png'): print >> sys.stderr, 'Window::show_image(%s)' % path self.load_image(path, self.left) self.right_bottom_tree.setModel(None) elif os.path.isdir(path) and model.isDir(index): print >> sys.stderr, 'Window::show_dir(%s)' % path self.model = QtGui.QDirModel() self.model.setNameFilters(['*.png']) self.model.setFilter(QtCore.QDir.Files| QtCore.QDir.NoDotAndDotDot|QtCore.QDir.CaseSensitive) self.model.setSorting(QtCore.QDir.Name) self.right_bottom_tree.setModel(self.model) self.right_bottom_tree.setRootIndex(self.model.index(path)) [self.right_bottom_tree.hideColumn(n) for n in xrange(1,4)] self.right_bottom_tree.header().hide() self.right_bottom_tree.setColumnWidth(0,256) # clear image loaded def right_bottom_clicked(self, index): if index and index.isValid() and index.row() >= 0: model = index.model() if model: path = str(model.filePath(index)) if os.path.isfile(path) \ and os.path.splitext(path)[1].endswith('.png'): print >> sys.stderr, 'Window::right_bottom_clicked(%s)' % path self.load_image(path, self.left) def keyPressEvent(self, event): if isinstance(event, QtGui.QKeyEvent): event.accept() else: event.ignore() if event.key() == QtCore.Qt.Key_Q \ and QtGui.QMessageBox.question(self, 'Question', "Exit application?", QtGui.QMessageBox.Yes|QtGui.QMessageBox.No, QtGui.QMessageBox.No) == QtGui.QMessageBox.Yes: self.close() sys.exit(0) QtGui.QMainWindow.keyPressEvent(self,event) def handleMessage(self, message): print >> sys.stderr, 'Window::handleMessage(%s)' % message def closeEvent(self, event): QtGui.QApplication.instance().quit()