def __init__(self, filename=None, w=1e-6, t=1e-6, L=1e-6, sign=1, **kwargs):

        self.parameters = []
        self.measures = []
        self.raw_data = []
        # Check for some specific kwargs and update kwargs
        self["force_kxy"], kwargs = self.__check_force_kxy(**kwargs)
        self["symmetrize"], kwargs = self.__check_symmetrize(**kwargs)
        self["sign"] = self.__check_sign(sign)
        self["gain"], kwargs = self.__check_gain(**kwargs)

        if filename is not None:
            filename = os.path.abspath(filename)
            self["filename"] = filename
            self["filetype"] = self.__check_filetype(filename)

            # Find info
            self.__add_parameters(w, t, L)

            # If the file contains raw data
            if self["filetype"] == "raw":

                # If symmetrize is True
                if self["H"] != "0.0" and self["symmetrize"] is True:
                    filename2 = U.get_symetric_file(filename)
                    raw_data = self.__Symmetrize(filename, filename2)
                elif self["H"] != "0.0" and self["symmetrize"] is False:
                    if filename.find("--") != -1:
                        self["H"] = "-"+self["H"]
                        raw_data = U.read_file_raw(filename)
                    else:
                        raw_data = U.read_file_raw(filename)

                else:
                    raw_data = U.read_file_raw(filename)

                for key, values in raw_data.items():
                    self[key] = values
                    self.raw_data.append(key)

                self.__Analyze(self["gain"])
                self.__add_measure()

            # If the file contains treated data 
            elif self["filetype"] == "treated":
                data = U.read_file_treated(filename)

                for key, values in data.items():
                    self[key] = values
                    self.measures.append(key)
                    self.__add_measure()


        # Remaining kwargs are set as parameters
        for key, value in kwargs.items():
            self[key] = value
            self.parameters.append(key)

        return
예제 #2
0
    def __init__(self, filename=None, **kwargs):
        """
        Used to initialize a Measurement object

        Parameters:
        ------------------------------------------------------------------------
        filename :  str
                The path to the file containing the data to be read and stored.
                Can be relative or absolute.

        Useful kwargs:
        ------------------------------------------------------------------------
        H, w, t, L :    int or float
                The value of the magnetic field used during the experiment and
                the geometric parameters of the sample. Note that kwargs are
                case sensitive and are used to populate the parameters attribute
                of the object
        sample :   str
                The name of the sample.
        """

        self.measures = []
        self.parameters = []

        if filename is not None:
            filename = os.path.abspath(filename)
            data = U.read_file_treated(filename)
            header = U.read_header(filename)
            for key, value in data.items():
                self[key] = value
                self.measures.append(key)

            self["H"] = U.find_H(filename, header)
            self["date"] = U.find_date(filename, header)
            self["mount"] = U.find_mount(filename, header)
            self["sample"] = U.find_sample(filename, header)
            self["probe"] = U.find_probe(filename, header)

            self.parameters += ["H", "date", "mount", "sample", "probe"]

        for key, value in kwargs.items():
            self[key] = value
            if key not in self.parameters:
                self.parameters.append(key)

        if hasattr(self, "__sample") is False:
            setattr(self, "__sample", "unknown")
        else:
            pass
        if hasattr(self, "__H") is False:
            setattr(self, "__H", "unknown")
        else:
            pass

        self.__add_measure()

        return