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.")
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0

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])
Ejemplo n.º 6
0
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:
Ejemplo n.º 7
0
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()