Пример #1
0
 def get_all(self):
     timestamp = a_tools.latest_data(contains='Define_vector_v1',
                                     return_timestamp=True)[0]
     # Note: if this fails during the initialization just copy an old
     # folder with that name (and 0 field) into your data directory.
     # Don't make a try-except statement here to prevent unintentional
     # and wrong definitions of the vectors
     params_dict = {'v1': 'Magnet.v1'}
     data = a_tools.get_data_from_timestamp_list([timestamp],
                                                 params_dict,
                                                 filter_no_analysis=False)
     v1 = np.fromstring(data['v1'][0][1:-1], dtype=float, sep=' ')
     self.v1(v1)
     timestamp = a_tools.latest_data(contains='Define_vector_v2',
                                     return_timestamp=True)[0]
     params_dict = {'v2': 'Magnet.v2'}
     data = a_tools.get_data_from_timestamp_list([timestamp],
                                                 params_dict,
                                                 filter_no_analysis=False)
     v2 = np.fromstring(data['v2'][0][1:-1], dtype=float, sep=' ')
     self.switch_state()
     self.v2(v2)
     self.field_vector()
     self.field()
     self.angle()
     self.field_steps()
    def extract_data(self):
        self.TD_timestamps = a_tools.get_timestamps_in_range(self.t_start, self.t_stop, label=self.labels)

        if len(self.TD_timestamps) < 1:
            raise ValueError("No timestamps in range! Check the labels and other filters.")

        self.TD_dict = a_tools.get_data_from_timestamp_list(self.TD_timestamps, self.params_dict_TD, numeric_params=self.numeric_params)

        # Use timestamps to calculate datetimes and add to dictionary
        self.TD_dict['datetime'] = [a_tools.datetime_from_timestamp(timestamp) for timestamp in self.TD_dict['timestamps']]
Пример #3
0
    def get_angle(self):
        # return 0.0 # Only add this line when doing the first initialization!
        if self.switch_state_z() == 'SuperConducting':
            ## get the persistent field from the HDF5 file

            timestamp = atools.latest_data(
                contains='Switch_Z_is_changed_to_SuperConducting_state',
                return_timestamp=True)[0]
            params_dict = {'field_z': 'Magnet.field_z'}
            numeric_params = ['field_z']
            data = a_tools.get_data_from_timestamp_list(
                [timestamp],
                params_dict,
                numeric_params=numeric_params,
                filter_no_analysis=False)
            field_val_z = data['field_z'][0]
        else:  ## Normal conducting
            field_val_z = self.measure_field_z()

        if self.switch_state_y() == 'SuperConducting':
            ## get the persistent field from the HDF5 file

            timestamp = atools.latest_data(
                contains='Switch_Y_is_changed_to_SuperConducting_state',
                return_timestamp=True)[0]
            params_dict = {'field_y': 'Magnet.field_y'}
            numeric_params = ['field_y']
            data = a_tools.get_data_from_timestamp_list(
                [timestamp],
                params_dict,
                numeric_params=numeric_params,
                filter_no_analysis=False)
            field_val_y = data['field_y'][0]
        else:  ## Normal conducting
            field_val_y = self.measure_field_y()
        field = np.sqrt(field_val_z**2 + field_val_y**2)
        if field == 0:
            return 0
        elif field_val_z >= 0:
            return np.arcsin(field_val_y / field) * 360. / (2 * np.pi)
        else:
            return -np.arcsin(field_val_y / field) * 360. / (2 * np.pi)
Пример #4
0
    def extract_data(self):
        self.TD_timestamps = self.t_list

        if len(self.TD_timestamps) < 1:
            raise ValueError(
                "No timestamps in range! Check the labels and other filters.")

        self.TD_dict = a_tools.get_data_from_timestamp_list(
            self.TD_timestamps,
            self.params_dict_TD,
            numeric_params=self.numeric_params)

        # Use timestamps to calculate datetimes and add to dictionary
        self.TD_dict['datetime'] = [
            a_tools.datetime_from_timestamp(timestamp)
            for timestamp in self.TD_dict['timestamps']
        ]
Пример #5
0
    def get_field_y(self):
        # return 0.0 # Only add this line when doing the first initialization!
        if self.switch_state_y() == 'SuperConducting':
            ## get the persistent field from the HDF5 file

            timestamp = atools.latest_data(
                contains='Switch_Y_is_changed_to_SuperConducting_state',
                return_timestamp=True)[0]
            params_dict = {'field': 'Magnet.field_y'}
            numeric_params = ['field']
            data = a_tools.get_data_from_timestamp_list(
                [timestamp],
                params_dict,
                numeric_params=numeric_params,
                filter_no_analysis=False)
            return data['field'][0]
        else:  ## Normal conducting
            meas_field = self.measure_field_y()
            return meas_field