auspex.analysis package

Submodules

auspex.analysis.fits module

class auspex.analysis.fits.Auspex2DFit(xpts, ypts, zpts, make_plots=False)
A generic fit class wrapping scipy.optimize.curve_fit for convenience.

Specific fits should inherit this class.

xlabel

Plot x-axis label.

Type

str

ylabel

Plot y-axis label.

Type

str

title

Plot title.

Type

str

annotation()

Annotation for the make_plot() method. Should return a string that is passed to matplotlib.pyplot.annotate.

make_plots()

Create a plot of the input data and the fitted model. By default will include any annotation defined in the annotation() class method.

model(x=None)

The fit function evaluated at the parameters found by curve_fit.

Parameters

x – A number or numpy.array returned by the model function.

title = 'Auspex Fit'
xlabel = 'X points'
ylabel = 'Y points'
class auspex.analysis.fits.AuspexFit(xpts, ypts, make_plots=False, ax=None)
A generic fit class wrapping scipy.optimize.curve_fit for convenience.

Specific fits should inherit this class.

xlabel

Plot x-axis label.

Type

str

ylabel

Plot y-axis label.

Type

str

title

Plot title.

Type

str

annotation()

Annotation for the make_plot() method. Should return a string that is passed to matplotlib.pyplot.annotate.

ax = None
bounds = None
make_plots()

Create a plot of the input data and the fitted model. By default will include any annotation defined in the annotation() class method.

model(x=None)

The fit function evaluated at the parameters found by curve_fit.

Parameters

x – A number or numpy.array returned by the model function.

title = 'Auspex Fit'
xlabel = 'X points'
ylabel = 'Y points'
class auspex.analysis.fits.GaussianFit(xpts, ypts, make_plots=False, ax=None)

A fit to a gaussian function

title = 'Gaussian Fit'
xlabel = 'X Data'
ylabel = 'Y Data'
class auspex.analysis.fits.LorentzFit(xpts, ypts, make_plots=False, ax=None)

A fit to a simple Lorentzian function A /((x-b)^2 + (c/2)^2) + d

title = 'Lorentzian Fit'
xlabel = 'X Data'
ylabel = 'Y Data'
class auspex.analysis.fits.MultiGaussianFit(x, y, make_plots=False, n_gaussians=2, n_samples=100000)

A fit to a sum of gaussian function. Use with care!

title = 'Sum of Gaussians Fit'
xlabel = 'X Data'
ylabel = 'Y Data'
class auspex.analysis.fits.QuadraticFit(xpts, ypts, make_plots=False, ax=None)

A fit to a simple quadratic function A*(x-x0)**2 + b

title = 'Quadratic Fit'
xlabel = 'X Data'
ylabel = 'Y Data'

auspex.analysis.helpers module

auspex.analysis.helpers.cal_data(data, quad=<function real>, qubit_name='q1', group_name='main', return_type=<class 'numpy.float32'>, key='')

Rescale data to \(\sigma_z\). expectation value based on calibration sequences.

Parameters
  • data (numpy array) – The data from the writer or buffer, which is a dictionary whose keys are typically in the format qubit_name-group_name, e.g. ({‘q1-main’} : array([(0.0+0.0j, …), (…), …]))

  • quad (numpy function) – This should be the quadrature where most of the data can be found. Options are: np.real, np.imag, np.abs and np.angle

  • qubit_name (string) – Name of the qubit in the data file. Default is ‘q1’

  • group_name (string) – Name of the data group to calibrate. Default is ‘main’

  • return_type (numpy data type) – Type of the returned data. Default is np.float32.

  • key (string) – In the case where the dictionary keys don’t conform to the default format a string can be passed in specifying the data key to scale.

Returns

numpy array (type return_type)

Returns the data rescaled to match the calibration results for the \(\sigma_z\) expectation value.

Examples

Loading and calibrating data

>>> exp = QubitExperiment(T1(q1),averages=500)
>>> exp.run_sweeps()
>>> data, desc = exp.writers[0].get_data()
auspex.analysis.helpers.cal_ls()

List of auspex.pulse_calibration results

auspex.analysis.helpers.cal_scale(data, bit=0, nqubits=1, repeats=2)

Scale data from calibration points. :param data: :type data: Unscaled data with cal points. :param bit: :type bit: Which qubit in the sequence is to be calibrated (0 for 1st, etc…). Default 0. :param nqubits: :type nqubits: Number of qubits in the data. Default 1. :param repeats: :type repeats: Number of calibraiton repeats. Default 2.

Returns

data

Return type

scaled data array

auspex.analysis.helpers.get_cals(qubit, params, make_plots=True, depth=0)

Return and optionally plot the result of the most recent calibrations/characterizations :param qubit: :type qubit: qubit name (string) :param params: :type params: parameter(s) to plot (string or list of strings) :param make_plots: :type make_plots: optional bool (default = True) :param depth: :type depth: optional integer, number of most recent calibrations to load (default = 0 for all cals) :param ————-: :param Returns: :param List of: :type List of: dates, values, errors

auspex.analysis.helpers.get_file_name()

Helper function to get a filepath from a dialog box

auspex.analysis.helpers.load_data(dirpath=None)

Open data in the .auspex file at dirpath/

Parameters

dirpath (string) – Path to the .auspex file. If no folder is specified, a dialogue box will ask for a path.

Returns

data_set (Dict{data group}{data name}{data,descriptor})

Data as a dictionary structure with data groups, types of data and the data packed sequentially

Examples

Loading a data container

>>> data = load_data('/path/to/my/data.auspex')
>>> data
{'q2-main': {'data': {'data': array([[ 0.16928101-0.05661011j,  0.3225708 +0.08914185j,
    0.2114563 +0.10314941j, ..., -0.32357788+0.16964722j,
>>> data["q3-main"]["variance"]["descriptor"]
<DataStreamDescriptor(num_dims=1, num_points=52)>
>>> data["q3-main"]["variance"]["data"]
array([0.00094496+0.00014886j, 0.00089747+0.00015082j,
0.00090634+0.00015106j, 0.00090128+0.00014451j,...
auspex.analysis.helpers.normalize_buffer_data(data, desc, qubit_index, zero_id=0, one_id=1)
auspex.analysis.helpers.normalize_data(data, zero_id=0, one_id=1)
auspex.analysis.helpers.open_data(num=None, folder=None, groupname='main', datasetname='data', date=None)
Convenience Load data from an AuspexDataContainer given a file number and folder.

Assumes that files are named with the convention ExperimentName-NNNNN.auspex

Parameters
  • num (int) – File number to be loaded.

  • folder (string) – Base folder where file is stored. If the date parameter is not None, assumes file is a dated folder. If no folder is specified, open a dialogue box. Open the folder with the desired ExperimentName-NNNN.auspex, then press OK

  • groupname (string) – Group name of data to be loaded.

  • datasetname (string, optional) – Data set name to be loaded. Default is “data”.

  • date (string, optional) – Date folder from which data is to be loaded. Format is “YYMMDD” Defaults to today’s date.

Returns

data (numpy.array)

Data loaded from file.

desc (DataSetDescriptor)

Dataset descriptor loaded from file.

Examples

Loading a data container

>>> data, desc = open_data(42, '/path/to/my/data', "q1-main", date="190301")

Module contents