Beispiel #1
0
    def open(self, filename=None, *args):
        if filename is None or isinstance(filename, (int, bool)):
            # catch Qt signal-slot connection which may
            # sends boolean from QAction signal
            filename = QFileDialog.getOpenFileNames(None, _('Open file'), '.')
            if filename is None:
                return
            else:
                filename = [unicode(fname) for fname in filename]
                self.open(filename)
                return
        elif not isinstance(filename, (list, tuple)):
            filename = [
                filename,
            ]

        if len(args) != 0:
            filename.extend(args)

        for fname in filename:
            if re.match('.*flat$', fname):
                self.ffp.open(fname)
                measurements = self.ffp.get_measurements()
            elif re.match('.*\.sxm$', fname):
                self.nfp.open(fname)
                measurements = self.nfp.get_measurements()
            else:
                measurements = []
                print "Unknown file type"

            for i in range(len(measurements)):
                self.register_measurement(measurements.pop())
Beispiel #2
0
    def open(self, filename=None, *args):
        if filename is None or isinstance(filename, (int, bool)):
                            # catch Qt signal-slot connection which may
                            # sends boolean from QAction signal
            filename = QFileDialog.getOpenFileNames(None,
                                                    _('Open file'), '.')
            if filename is None:
                return
            else:
                filename = [unicode(fname) for fname in filename]
                self.open(filename)
                return
        elif not isinstance(filename, (list,tuple)):
            filename = [filename,]

        if len(args) != 0:
            filename.extend(args)

        for fname in filename:
            if re.match('.*flat$', fname):
                self.ffp.open(fname)
                measurements = self.ffp.get_measurements()
            elif re.match('.*\.sxm$', fname):
                self.nfp.open(fname)
                measurements = self.nfp.get_measurements()
            else:
                measurements = []
                print "Unknown file type"
                
            for i in range(len(measurements)):
                self.register_measurement(measurements.pop())
Beispiel #3
0
    def load_VNASeparateFieldsMeasurement(self):
        """
        Load a VNA measurement from a TDMS file with two magnetic field channels
        (field_before, field_after). Apply certain standard operations and 
        plot data. Allow to select used channels.
        """
        fnames = QFileDialog.getOpenFileNames(
            caption="Open Tdms file(s)",
            filter=u"TDMS (*.tdms);;All files (*.*)")
        for fname in fnames:
            tdms_file = TdmsFile(fname)
            channel_labels = [
                "Field_before", "Field_after", "Frequency", "Re(signal)",
                "Im(signal)"
            ]
            paths, accepted = TdmsChannelSelectDialog.get_group_channels(
                tdms_file=tdms_file, channel_labels=channel_labels)
            m = VNASeparateFieldsMeasurement(fname=fname,
                                             tdms_file=tdms_file,
                                             path_field_before=paths[0],
                                             path_field_after=paths[1],
                                             path_frequency=paths[2],
                                             path_real_signal=paths[3],
                                             path_imag_signal=paths[4])
            m.add_operation(bp.derivative_divide, modulation_amp=4)
            m.add_operation(bp.mag)

            self.add_measurement(m, cmap="RdYlGn")
        return fnames
Beispiel #4
0
    def load_VNAMeasurement_select_channels(self):
        """
        Load a VNA measurement from a TDMS file. Apply certain standard
        operations and plot data. Allow to select used channels.
        """
        fnames = QFileDialog.getOpenFileNames(
            caption="Open Tdms file(s)",
            filter=u"TDMS (*.tdms);;All files (*.*)")
        for fname in fnames:
            tdms_file = TdmsFile(fname)
            channel_labels = [
                "Field channel", "Frequency channel", "Re(signal) channel",
                "Im(signal) channel"
            ]
            paths, accepted = TdmsChannelSelectDialog.get_group_channels(
                tdms_file=tdms_file, channel_labels=channel_labels)
            m = VNAMeasurement(fname=fname,
                               tdms_file=tdms_file,
                               group=paths[2][0],
                               field_channel=paths[0][1],
                               freq_channel=paths[1][1],
                               signal_channel=paths[2][1],
                               imag_channel=paths[3][1])
            m.add_operation(bp.derivative_divide, modulation_amp=4)
            m.add_operation(bp.mag)

            self.add_measurement(m, cmap="RdYlGn")
        return fnames
Beispiel #5
0
 def load_measurement(self):
     """
     Load measurements according to .measurement.json file(s)
     """
     fnames = QFileDialog.getOpenFileNames(
         caption="Open Tdms file(s)",
         filter=
         u"Measurements Object Descriptions (*.measurement.json);;All files (*.*)"
     )
     for fname in fnames:
         with open(fname, "r") as f:
             m = jsonpickle.loads(f.read())
         self.add_measurement(m, cmap="RdYlGn")
     return fnames
Beispiel #6
0
    def load_VNAMeasurement(self):
        """
        Load a VNA measurement from a TDMS file. Apply certain standard
        operations and plot data.
        """
        fnames = QFileDialog.getOpenFileNames(
            caption="Open Tdms file(s)",
            filter=u"TDMS (*.tdms);;All files (*.*)")
        for fname in fnames:
            m = VNAMeasurement(fname)
            m.add_operation(bp.derivative_divide, modulation_amp=4)
            m.add_operation(bp.mag)

            self.add_measurement(m, cmap="RdYlGn")
        return fnames