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']]
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)
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'] ]
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