Ejemplo n.º 1
0
    def makeSavenames(self):
        folder = self.folderEdit.text()
        if not os.path.exists(folder):
            os.mkdir(folder)

        if self.nCameras == 1:
            self.savenames[0] = (os.path.join(folder, self.getFileName()) +
                                 '_rec')
            self.savenames[0] = guitools.getUniqueName(self.savenames[0])

        else:
            nameRoot = os.path.join(folder, self.getFileName())
            for i in range(0, self.nCameras):
                ind = np.mod(self.main.currCamIdx + i, 2)
                # Sets name for final output file
                self.savenames[ind] = nameRoot + '_rec_cam' + str(ind + 1)
                # If same filename exists it is appended by (1) or (2) etc.
                self.savenames[ind] = guitools.getUniqueName(
                    self.savenames[ind])
Ejemplo n.º 2
0
    def startRecording(self):
        if self.recButton.isChecked():
            ret = QtGui.QMessageBox.Yes
            if self.filesize > 1500000000:  # Checks if estimated file size is dangourusly large, > 1,5GB-.
                ret = self.filesizewar.exec_()

            folder = self.folderEdit.text()
            if os.path.exists(folder) and ret == QtGui.QMessageBox.Yes:

                self.writable = False  # Sets Recording widget to not be writable during recording.
                self.readyToRecord = False
                self.recButton.setEnabled(True)
                self.recButton.setText('STOP')
                self.main.tree.writable = False  # Sets camera parameters to not be writable during recording.
                self.main.liveviewButton.setEnabled(False)
                #                self.main.liveviewStop() # Stops liveview from updating

                self.savename = (os.path.join(folder, self.getFileName()) +
                                 '_rec.hdf5'
                                 )  # Sets name for final output file
                self.savename = guitools.getUniqueName(
                    self.savename
                )  # If same  filename exists it is appended by (1) or (2) etc.
                self.startTime = ptime.time(
                )  # Saves the time when started to calculate remaining time.

                self.worker = RecWorker(
                    self.main.orcaflash,
                    self.getRecTime(),
                    self.main.shape,
                    self.main.
                    lvworker,  #Creates an instance of RecWorker class.
                    self.main.RealExpPar,
                    self.savename,
                    self.dataname,
                    self.getAttrs())
                self.worker.updateSignal.connect(
                    self.updateGUI
                )  # Connects the updatesignal that is continously emitted from recworker to updateGUI function.
                self.worker.doneSignal.connect(
                    self.endRecording
                )  # Connects the donesignal emitted from recworker to endrecording function.
                self.recordingThread = QtCore.QThread()  # Creates a new thread
                self.worker.moveToThread(
                    self.recordingThread
                )  # moves the worker object to this thread.
                self.recordingThread.started.connect(self.worker.start)
                self.recordingThread.start()

            else:
                self.recButton.setChecked(False)
                self.folderWarning()

        else:
            self.worker.pressed = False
Ejemplo n.º 3
0
    def snapHDF(self):
        folder = self.folderEdit.text()

        if not os.path.exists(folder):
            os.mkdir(folder)

        image = self.main.image

        name = os.path.join(folder, self.getFileName())
        savename = guitools.getUniqueName(name + '.hdf5')
        store_file = hdf.File(savename)
        store_file.create_dataset(name=self.dataname, data=image)
        for item in self.getAttrs():
            if item[1] is not None:
                store_file[self.dataname].attrs[item[0]] = item[1]
        store_file.close()
Ejemplo n.º 4
0
    def snapTIFF(self):
        folder = self.folderEdit.text()
        if os.path.exists(folder):

            #            image = self.main.andor.most_recent_image16(self.main.shape)
            time.sleep(0.01)
            savename = (os.path.join(folder, self.getFileName()) +
                        '_snap.tiff')
            savename = guitools.getUniqueName(savename)
            #            tiff.imsave(savename, np.flipud(image.astype(np.uint16)),
            #                        description=self.dataname, software='Tormenta')
            tiff.imsave(savename,
                        self.main.latest_image.astype(np.uint16),
                        description=self.dataname,
                        software='Tormenta')
            guitools.attrsToTxt(os.path.splitext(savename)[0], self.getAttrs())

        else:
            self.folderWarning()
Ejemplo n.º 5
0
    def snapHDF(self):

        folder = self.folderEdit.text()
        if os.path.exists(folder):

            #            image = self.main.andor.most_recent_image16(self.main.shape)
            image = self.main.image

            name = os.path.join(folder, self.getFileName())
            savename = guitools.getUniqueName(name + '.hdf5')
            store_file = hdf.File(savename)
            store_file.create_dataset(name=self.dataname, data=image)
            for item in self.getAttrs():
                if item[1] is not None:
                    store_file[self.dataname].attrs[item[0]] = item[1]
            store_file.close()

        else:
            self.folderWarning()
Ejemplo n.º 6
0
    def snapTIFF(self):
        folder = self.folderEdit.text()
        if not os.path.exists(folder):
            os.mkdir(folder)

        time.sleep(0.01)
        savename = (os.path.join(folder, self.getFileName()) + '_snap.tiff')
        savename = guitools.getUniqueName(savename)
        image = self.main.latest_images[self.main.currCamIdx].astype(np.uint16)
        tiff.imsave(savename,
                    image,
                    description=self.dataname,
                    software='Tempesta',
                    imagej=True,
                    resolution=(1 / self.main.umxpx, 1 / self.main.umxpx),
                    metadata={
                        'spacing': 1,
                        'unit': 'um'
                    })

        guitools.attrsToTxt(os.path.splitext(savename)[0], self.getAttrs())