Signal Analyzer Measurements (2)

Table of Contents

  • 1  Initialization (loading Modules and Data)

  • 2  Testing

  • 3  Plotting Field dependence of persistend / static field

    • 3.1  Crosses

    • 3.2  Empty Cross

    • 3.3  Measurement Plan #5

  • 4  Field Sweeps

    • 4.1  First field Sweeping Experiments

    • 4.2  Field Sweeps in Measurement Plan #2

      • 4.2.1  All new measurements together

      • 4.2.2  Δ1 T Sweeps

      • 4.2.3  Compare 2T → 1T

      • 4.2.4  Compare .5 → -.5 T

      • 4.2.5  Group by Sweep Rates (Compare Crosses/Empty)

      • 4.2.6  Low Fields

    • 4.3  Measurement Plan #2 / #3

      • 4.3.1  25 mT Sweeps

        • 4.3.1.1  Diff Sweeprates (\(- M_S \rightarrow -25 \rightarrow 25\) mT)

        • 4.3.1.2  SR + Plusses + Empty

        • 4.3.1.3  Temp Effect

      • 4.3.2  Measurement Plan #2

    • 4.4  Constant Field Range (\(\Delta B = 50\) mT) #12

  • 5  Evaluate Temperature Data

  • 6  Testing

Initialization (loading Modules and Data)

[1]:
# Basic Plotting libraries
import matplotlib.pyplot as plt
import matplotlib
import seaborn as sns
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

# Math / Science Libraries
import pandas as pd
import numpy as np
from scipy import constants, stats
from sklearn.cluster import KMeans

import os, sys, time, re, logging # System Modules
from glob import glob # Readout Files in Directories
import datetime

# Interactive widgets
import ipywidgets
import IPython
from IPython.display import display

logging.basicConfig(level=logging.WARNING)

%load_ext autoreload

Important Variables

[2]:
params = {
    'figure.dpi': 300,
    'figure.figsize': (16,9),
    'figure.subplot.hspace': 0.3,
    'figure.subplot.wspace': 0.3,
    'savefig.transparent': False,
    'savefig.bbox': 'tight',
    'savefig.pad_inches': 0.1,
}
matplotlib.rcParams.update(params)
save_figures = False

Change Directory to see data

It is important for the scripts to run in the ana repository where all data can be found in the data subdirectory.

[3]:
import os
os.chdir('../../ana')
os.getcwd()
[3]:
'/Users/jp/Projects/Code/lab-book/ana'
[4]:
%autoreload
import ana
#logging.basicConfig(level=logging.DEBUG)
eva = ana.HandleM(directory='data', drop_unused_columns=False)

def get_info(eva):
    info = eva.info
    sa = info[info['type'] == 'SA']
    raw = info[info['type'] == 'RAW']

    vh_idx = []
    mfn_idx = []
    for nr, t in info['technique'].items():
        if 'VH' in t: vh_idx += [nr]
        elif 'MFN' in t: mfn_idx += [nr]
    vh = info.loc[vh_idx]
    mfn = info.loc[mfn_idx]

    groups = dict(vh=vh, mfn=mfn, sa=sa, raw=raw)

    return info, groups

# Set Plotting Style
def set_sns(**style):
    plt.rcParams['savefig.dpi'] = style.get('dpi', 300)
    plt.rcParams['figure.autolayout'] = False
    figsize = style.get('figsize', (8, 6))
    plt.rcParams['figure.figsize'] = figsize
    plt.rcParams['axes.labelsize'] = 18
    plt.rcParams['axes.titlesize'] = 20
    plt.rcParams['font.size'] = 16
    plt.rcParams['lines.linewidth'] = 2.0
    plt.rcParams['lines.markersize'] = 8
    plt.rcParams['legend.fontsize'] = 14
    if style.get('default'):
        %matplotlib inline
        def_size = 'talk'
        def_style = 'darkgrid'
    elif style.get('notebook'):
        %matplotlib notebook
        def_size = 'notebook'
        def_style = 'ticks'


    sns.set(style.get('size', def_size),
            style.get('style', def_style),
            style.get('palette', 'deep'),
            style.get('font', 'sans-serif'),
            style.get('font-scale', 1))

    if style.get('grid'):
        plt.rcParams['axes.grid'] = True
        plt.rcParams['grid.linestyle'] = '--'

    if style.get('latex'):
        plt.rcParams['text.usetex'] = True  # True activates latex output in fonts!
        plt.rcParams[
            'text.latex.preamble'] = ''
    else:
        plt.rcParams['text.usetex'] = False

def set_plot_settings(**kwargs):
    plt.xscale('log')
    plt.yscale('log')

    xmin, xmax = kwargs.get('xlim', (None, None))
    ymin, ymax = kwargs.get('ylim', (None, None))
    if xmin:
        plt.xlim(xmin, xmax)
    if ymin:
        plt.ylim(ymin, ymax)
    plt.legend(loc=kwargs.get('legend_location', 'best'))

set_sns(default=True, grid=True, palette='Set3')
WARNING:Handle:Start loading folder: data/MFN/m481/m481_Plusses_45deg_RAW_Gradio_B_-0.065T_20200716_1300_I1-5-10_I2-8-6_GBIP8-14-7_Vin-5V_R11-1MO_R12-13.5kO_R13-0_R21-1MO_C11-1_C21-1_T-30K_gate-0V.dat
ERROR:Handle:Not a valid Measurement Nr. (494.0.1000000000)
Debug kind/struct/f (_, Plusses, data/MFN/m494.0.1000000000/m494.0.1000000000_Plusses_90deg_RAW_Parallel_B_pm-25mT_20200804_1300_I2-13-1_GBIP8-14-7_Vin-5V_R21-1MO_C21-1_T-30K_gate-0V.dat)
/Users/jp/Projects/Code/lab-book/ana/ana/handle.py:103: DtypeWarning: Columns (0,1,2,3,4,5,6,7,8,9,10,11) have mixed types.Specify dtype option on import or set low_memory=False.
  self.load_folder(file_list, **kwargs)
ERROR:Handle:Not a valid Measurement Nr. (456.6.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.6.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.20.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.20.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.40.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.40.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.60.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.60.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.11.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.11.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.31.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.31.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.51.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.51.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.13.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.13.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.33.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.33.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.53.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.53.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.8.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.8.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.4.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.4.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.22.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.22.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.42.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.42.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.17.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.17.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.37.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.37.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.57.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.57.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.26.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.26.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.46.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.46.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.19.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.19.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.39.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.39.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.59.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.59.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.2.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.2.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.24.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.24.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.44.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.44.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.15.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.15.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.35.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.35.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.55.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.55.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.28.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.28.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.48.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.48.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.16.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.16.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.36.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.36.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.56.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.56.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.1.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.1.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.27.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.27.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.47.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.47.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.18.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.18.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.38.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.38.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.58.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.58.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.3.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.3.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.25.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.25.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.45.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.45.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.14.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.14.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.34.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.34.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.54.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.54.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.29.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.29.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.49.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.49.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.7.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.7.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.21.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.21.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.41.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.41.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.61.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.61.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.10.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.10.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.30.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.30.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.50.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.50.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.12.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.12.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.32.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.32.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.52.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.52.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.9.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.9.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.5.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.5.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.23.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.23.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (456.43.0)
Debug kind/struct/f (_, Plusses, data/MFN/m456/m456.43.0_Plusses_80deg_RAW_Gradio_B_0.0T_20200407_1000_I1-1-13_I2-8-6_GBIP8-14-7_Vin-2.5V_R11-1MO_R12-15kO_R13-0_R21-1MO_C11-1_C21-1_T-15K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (494.0.2000000000)
Debug kind/struct/f (_, Plusses, data/MFN/m494.0.2000000000/m494.0.2000000000_Plusses_90deg_RAW_Parallel_B_pm-25mT_20200804_1300_I2-13-1_GBIP8-14-7_Vin-5V_R21-1MO_C21-1_T-30K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (494.0.1500000000)
Debug kind/struct/f (_, Plusses, data/MFN/m494.0.1500000000/m494.0.1500000000_Plusses_90deg_RAW_Parallel_B_pm-25mT_20200804_1300_I2-13-1_GBIP8-14-7_Vin-5V_R21-1MO_C21-1_T-30K_gate-0V.dat)
ERROR:Handle:Not a valid Measurement Nr. (494.0.0500000000)
Debug kind/struct/f (_, Plusses, data/MFN/m494.0.0500000000/m494.0.0500000000_Plusses_90deg_RAW_Parallel_B_pm-25mT_20200804_1300_I2-13-1_GBIP8-14-7_Vin-5V_R21-1MO_C21-1_T-30K_gate-0V.dat)
WARNING:Handle:Regex doesn't match: data/SR785/MFN_go to zero2.dat
WARNING:Handle:Regex doesn't match: data/SR785/Routine MFN No3.dat
/Users/jp/Projects/Code/lab-book/ana/ana/handle.py:103: DtypeWarning: Columns (0,1,2,3,4,5,6,7,8,9,10,11) have mixed types.Specify dtype option on import or set low_memory=False.
  self.load_folder(file_list, **kwargs)
WARNING:Handle:Regex doesn't match: data/SR785/Test parallel down.dat
WARNING:Handle:Regex doesn't match: data/SR785/Routine MFN.dat
WARNING:Handle:Regex doesn't match: data/SR785/Routine MFN No2.dat
WARNING:Handle:Regex doesn't match: data/SR785/MFN_go to zero.dat
WARNING:Handle:Regex doesn't match: data/SR785/Test2 parallel down.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_n1.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_SR785_length5.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_SR785_length.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_SR785_length4.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_SR785_length6.dat
WARNING:Handle:Regex doesn't match: data/SR785/test.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_SR785_length3.dat
WARNING:Handle:Regex doesn't match: data/SR785/test_SR785_length2.dat
WARNING:Handle:Regex doesn't match: data/SR785/Routine Parallel measurements.dat
WARNING:Handle:Regex doesn't match: data/SR785/f.dat
/Users/jp/Projects/Code/lab-book/ana/ana/handle.py:103: DtypeWarning: Columns (0,1,2,3,4,5,6,7) have mixed types.Specify dtype option on import or set low_memory=False.
  self.load_folder(file_list, **kwargs)
WARNING:Handle:Regex doesn't match: data/Hloop/cooldown_2020-02-27.dat
WARNING:Handle:Regex doesn't match: data/Hloop/ls_temp1.dat
[5]:
# Set Info
info, groups = get_info(eva)
sa = groups['sa']
raw = groups['raw']
vh = groups['vh']
mfn = groups['mfn']
[6]:
info
[6]:
type Nr filename folder technique Structure Additional f_count f_mean f_var ... Time_mean Time_var Time_min Time_max Time Num Rate Avg downsample NofSpectra
481.0 SA 481 m481_Plusses_45deg_RAW_Gradio_B_0.065T_2020071... Plusses 45deg_RAW_Gradio_B_0.065T_20200716_1300_I1-5-1... 8219 514.375 87968.984375 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
475.0 SA 475 m475_routine.dat NA NA routine 0 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
472.0 SA 472 m472_Plusses_80deg_RAW_Gradio_B_0.090T_2020070... Plusses 80deg_RAW_Gradio_B_0.090T_20200703_1700_I1-5-1... 14395 900.375 269831.276042 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
486.0 SA 486 m486_routine.dat NA NA routine 0 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
444.0 SA 444 m444_Plusses_45deg_RAW_Gradio_B_0.035T_2020032... Plusses 45deg_RAW_Gradio_B_0.035T_20200323_1700_I1-1-1... 16379 1024.375 349333.359375 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
426.0 SA 426 m426_cros_plu_emp_90deg_Hloop_down_Parallel_20... NA NA cros_plu_emp_90deg_Hloop_down_Parallel_2020030... 148654 30.00013 0.000011 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
54.0 SA 54 M54_Plusses_0deg_Hloop_down__Gradio_20190317_1... Plusses 0deg_Hloop_down__Gradio_20190317_1800_I1-1-13_... 7430 29.999829 0.000002 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
142.0 SA 142 m142_cros_plu_emp_-40deg_Hloop_up_Parallel_201... NA NA cros_plu_emp_-40deg_Hloop_up_Parallel_20190403... 300 30.000163 0.000004 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
427.3 RAW 427.3 m427.3_plusses_90deg_30K_down_at_-14mT_single_... plusses 90deg_30K_down_at_-14mT_single_128Hz NaN NaN NaN ... 7.738281 19.990585 0.0 15.476562 5120000.0 1024 0.0002 1 True 64
66.0 SA 66 m66_cros_plu_emp_75deg_Hloop_up_Parallel_20190... NA NA cros_plu_emp_75deg_Hloop_up_Parallel_20190320_... 321 30.005377 0.000001 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

442 rows × 34 columns

[7]:
s, i = eva[361].fit()
fig, ax = eva.plot({361: ['Test', {}]})
x = np.logspace(-2, 0, 100)
ax.plot(x, (10**s * np.power(x,i)), 'r-')
#ax.set_xlim()
#ax.set_ylim(1e-7,10)

[7]:
[<matplotlib.lines.Line2D at 0x2884e8880>]
../_images/notebooks_02.2_Signal_Analyzer_11_1.png
[8]:
#x, s
#np.power(x, i)*s
s, i
[8]:
(-6.212216272712935, -1.0869723661808137)

Testing

[9]:
fig, ax = plt.subplots(figsize=[12,9])
for nr, m in eva.data.items():
    if isinstance(m, ana.SA): # SA Measurement
        m.plot(ax=ax, label=nr)
    elif isinstance(m, ana.RAW): # RAW Measurement
        pass
    #sa[i].plot(label=str(i), ax=ax, dont_set_plot_settings=True)

    # Optionally show Background signal
    #sa[i].plot(plot_y='Vy', label='%s (Vy)' % i[:4], ax=ax)
set_plot_settings(xlim=(1e-3, 1e1), ylim=(1e-9, 1e-1))
/Users/jp/Projects/Code/lab-book/ana/ana/plotting.py:180: UserWarning: Data has no positive values, and therefore cannot be log-scaled.
  plt.yscale(kwargs.get('yscale', 'log'))
../_images/notebooks_02.2_Signal_Analyzer_14_1.png

Plotting Field dependence of persistend / static field

Crosses

[10]:
tmp = {4: 277,
       2: 318,
       1.5: 317,
       1: 274,
       .5: 316,
       .25: 315,
       0: 280,
       -.5725: 299,
       -4: 294, }
lofm = {}
for i, j in tmp.items():
    lofm.update({j: ['%s T' % i, {}]})

set_sns(default=True, grid=True,
        style='ticks',
        #palette='Paired',
        latex=True,)

fig, ax = eva.plot(lofm, plot_settings=dict(title='Crosses ($90^\\circ$) Static Field dependence',
                                            xlim=(1e-2, 5e0),
                                            ylim=(1e-9, 1e-3),
                                           ))
if save_figures:
    plt.savefig('img/static_crosses.png', dpi=300)
    plt.savefig('img/static_crosses.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_17_0.png

Empty Cross

[11]:
tmp = {4: 278,
        2: 319,
      1.5: 314,
        1: 275,
       .5: 313,
      .25: 312,
        0: 310,
    -.572: 311,
        -4: 295,}
lofm = {}

for i, j in tmp.items():
    lofm.update({j: ['%s T' % i, {}]})

set_sns(default=True, grid=True,
        style='ticks',
        #palette='Paired',
        latex=True,)

fig, ax = eva.plot(lofm, plot_settings=dict(title='Empty ($90^\\circ$) Static Field dependence',
                                            xlim=(1e-2, 5e0),
                                            ylim=(1e-9, 1e-3),
                                           ))
if save_figures:
    plt.savefig('img/static_empty.png', dpi=300)
    plt.savefig('img/static_empty.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_19_0.png

Measurement Plan #5

[12]:
m = ana.Hloop(57)

tmp = {25: 360,
       -25: 361
      }
lofm = {}

for i, j in tmp.items():
    lofm.update({j: ['%s mT' % i, {}]})

set_sns(default=True, grid=True,
        style='ticks',
        #palette='Paired',
        latex=True,)

fig, ax = eva.plot(lofm,
                   fit_range=(2e-2, 1e0),
                   show_fit=True,
                   plot_settings=dict(title='Plusses ($90^\\circ$) Static Field after Saturation',
                                            xlim=(1e-2, 1.6e0),
                                            ylim=(3e-7, 1e-3),
                                           ),
                  f_settings=dict(
                      ymin=5e-5),
                  f2_settings=dict(disable=True))

ax = plt.gca()
with sns.color_palette('deep'):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.48, .48, .4, .4),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up ($-M_S \\rightarrow +M_S$)', 'Down ($+M_S \\rightarrow -M_S$)'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-30, 30)
    inset.set_ylim(-.45, .65)

    y1, y2 = -1, 2
    a = m.down.Bx8.iloc[(m.down.B + 25).abs().idxmin()]
    b = m.up.Bx8.iloc[(m.up.B - 25).abs().idxmin()]
    inset.plot((-25, -25), (a, a), 'ro', alpha=.4)
    inset.plot([+25, 25], [b,b], 'bo', alpha=.4)

#plt.savefig('img/static_25mT.png')
#plt.savefig('img/static_25mT.pdf')
../_images/notebooks_02.2_Signal_Analyzer_21_0.png

Field Sweeps

[13]:
sweep_label = '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)'

First field Sweeping Experiments

  • With multiple separate Spectra measured during the sweep.

Measurements 302 - 309

[14]:
lofm = {302: '2 T down C ($48 \\frac{mT}{min}$)',
       303: '2 T up C ($48 \\frac{mT}{min}$)',
       304: '2 T down P ($48 \\frac{mT}{min}$)',
       305: '2 T down \#1 ($48 \\frac{mT}{min}$)',
       306: '2 T down P ($7.86 \\frac{mT}{min}$)',
       307: '.25 T down/up P ($11.86 \\frac{mT}{min}$)',
       308: '.5 T down/up P ($23.7 \\frac{mT}{min}$)',
       309: '.1 T down/up P ($4.7 \\frac{mT}{min}$)',
       }
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True)

fig, ax = plt.subplots(figsize=(16,12))
for i,j in lofm.items():
    label = 'm%s: %s' % (i, j)
    eva[i].plot(label=label, ax=ax, dont_set_plot_settings=True)


eva[i]._draw_oneoverf(ax, xmin=1e-2, ymin=1e-5, mean_y=3e-7, factor=100)
eva[i]._draw_oneoverf(ax, ymin=1e-3, alpha=2, plot_style='b--', an_color='blue')

eva[i]._set_plot_settings(xlim=(1e-2, 1e1), ylim=(1e-8, 5e-2), title='($90^\circ$) Field sweeps',
                         grid=dict(which='minor', color='#ffff99', linestyle='--', alpha=.3))
#plt.grid(b=True, which='major', color='#cccccc', linestyle='-.')
../_images/notebooks_02.2_Signal_Analyzer_25_0.png

Field Sweeps in Measurement Plan #2

  • One Single Spectrum measured (@1.5 or 0.8 Hz).

  • 25 Averages for single spectrum.

Measurements 320329

All new measurements together

[15]:
#t2 = pd.DataFrame(to_show).T
#t2.columns = ['Fields', 'Struct', 'SR']
#g = t2.groupby('Struct')
#set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
#        palette='Dark2')

#for key, group in g:
#    lofm = eva.get_lofm(group, '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)')
#    eva.plot(lofm)
[16]:
to_show = {
    320: [(2,1), 'Empty', 9.4],
    321: [(2,1), 'Empty', 4.7],
    323: [(1,-1), 'Empty', 9.4],
    324: [(1,-1), 'Empty', 4.7],
    325: [(2,1), 'Crosses', 9.4],
    326: [(2,1), 'Crosses', 4.7],
    329: [(1,-1), 'Crosses', 9.4],
    330: [(1,-1), 'Crosses', 4.7],
    327: [(.5,-.5), 'Crosses', 9.4],
    328: [(.5,-.5), 'Crosses', 4.7],
    331: [(.5,-.5), 'Crosses', 9.4],
    333: [(.75,-.75), 'Crosses', 7],
    332: [(.3,-.3), 'Crosses', 2.8],
    334: [(.1,-.1), 'Crosses', .093],
    322: [(.5,-.5), 'Empty', 9.4],
    335: [(.5,-.5), 'Empty', 9.4],
    336: [(.5,-.5), 'Plusses', 9.4],
    337: [(.05,-.05), 'Plusses', 0.93],
    338: [(.025,-.025), 'Plusses', 0.46],
    339: [(0,.5), 'Plusses', 0.46],
    #302: [(2,-2), 'Crosses', 48],
    #303: [(-2,2), 'Crosses', 48],
    #305: [(2,-2), 'Empty', 48],
}

lofm = eva.get_lofm_sweeps(to_show, '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)')

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Dark2')

eva.plot(lofm)

[16]:
(<Figure size 1152x864 with 1 Axes>,
 <AxesSubplot:title={'center':'($90^\\circ$) Field sweeps'}, xlabel='$f$ [Hz]', ylabel='$S_{V_H}$ [${V^2}$/{Hz}]'>)
../_images/notebooks_02.2_Signal_Analyzer_29_1.png

Δ1 T Sweeps

[17]:
lofm = {}
to_show = {
    320: [(2,1), 'Empty', 9.4],
    321: [(2,1), 'Empty', 4.7],
    325: [(2,1), 'Crosses', 9.4],
    326: [(2,1), 'Crosses', 4.7],
    327: [(.5,-.5), 'Crosses', 9.4],
    328: [(.5,-.5), 'Crosses', 4.7],
    322: [(.5,-.5), 'Empty', 9.4],
    335: [(.5,-.5), 'Empty', 9.4],
    331: [(.5,-.5), 'Crosses', 9.4],
    336: [(.5,-.5), 'Plusses', 9.4],
}

for nr, content in to_show.items():
    lofm[nr] = [sweep_label % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),{}]

#lofm = eva.get_lofm_sweeps(to_show, '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)')

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Dark2')
sns.set_palette(sns.color_palette("hls", 10))

eva.plot(lofm, plot_settings=dict(title='($90^\\circ$) Field Sweeps ($\\Delta 1 T$)'))

if save_figures:
    plt.savefig('img/sweep_delta1T.png', dpi=300)
    plt.savefig('img/sweep_delta1T.pdf', dpi=300)


#eva[i]._set_plot_settings(xlim=(1e-2, 1e0), ylim=(1e-7, 5e-2), title='($90^\circ$) Field sweeps',
#                         grid=dict(which='minor', color='#ffff99', linestyle='--', alpha=.5))
#plt.grid(b=True, which='minor', color='#cccccc', linestyle='-.', alpha=.3)
../_images/notebooks_02.2_Signal_Analyzer_31_0.png

Compare 2T → 1T

[18]:
lofm = {}
to_show = {
    320: [(2,1), 'Empty', 9.4],
    321: [(2,1), 'Empty', 4.7],
#    323: [(1,-1), 'Empty', 9.4],
#    324: [(1,-1), 'Empty', 4.7],
    325: [(2,1), 'Crosses', 9.4],
    326: [(2,1), 'Crosses', 4.7],
#    327: [(.5,-.5), 'Crosses', 9.4],
#    328: [(.5,-.5), 'Crosses', 4.7],
#    329: [(1,-1), 'Crosses', 9.4],
#    322: [(.5,-.5), 'Empty', 9.4],
}

for nr, content in to_show.items():
    lofm[nr] = '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                )

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True, palette='Paired')
#sns.set(pal)
fig, ax = plt.subplots(figsize=(16,12))
for i,j in lofm.items():
    label = 'm%s: %s' % (i, j)
    eva[i].plot(label=label, ax=ax, dont_set_plot_settings=True)


eva[i]._draw_oneoverf(ax, xmin=1e-2, ymin=1e-6)
eva[i]._draw_oneoverf(ax, ymin=1e-3, alpha=2, plot_style='b--', an_color='blue')

eva[i]._set_plot_settings(xlim=(1e-2, 1e0), ylim=(1e-7, 5e-2), title='($90^\circ$) Field sweeps',
                         grid=dict(which='minor', color='#ffff99', linestyle='--', alpha=.5))
plt.grid(b=True, which='minor', color='#cccccc', linestyle='-.', alpha=.3)
../_images/notebooks_02.2_Signal_Analyzer_33_0.png

Compare .5 → -.5 T

[19]:
lofm = {}
to_show = {
    327: [(.5,-.5), 'Crosses', 9.4],
    328: [(.5,-.5), 'Crosses', 4.7],
    331: [(.5,-.5), 'Crosses', 9.4],
    336: [(.5,-.5), 'Plusses', 9.4],
    322: [(.5,-.5), 'Empty', 9.4],
    335: [(.5,-.5), 'Empty', 9.4],
}

for nr, content in to_show.items():
    lofm[nr] = '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                )

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Paired')
#sns.set(pal)
fig, ax = plt.subplots(figsize=(16,12))
for i,j in lofm.items():
    label = 'm%s: %s' % (i, j)
    eva[i].plot(label=label, ax=ax, dont_set_plot_settings=True)


eva[i]._draw_oneoverf(ax, xmin=1e-2, ymin=1e-6)
eva[i]._draw_oneoverf(ax, ymin=1e-3, alpha=2, plot_style='b--', an_color='blue')

eva[i]._set_plot_settings(xlim=(1e-2, 1e0), ylim=(1e-7, 5e-2), title='($90^\circ$) Field sweeps',
                         grid=dict(which='minor', color='#ffff99', linestyle='--', alpha=.5))
plt.grid(b=True, which='minor', color='#cccccc', linestyle='-.', alpha=.3)
../_images/notebooks_02.2_Signal_Analyzer_35_0.png

Group by Sweep Rates (Compare Crosses/Empty)

[20]:
lofm = {}
to_show = {
    320: [(2,1), 'Empty', 9.4],
    321: [(2,1), 'Empty', 4.7],
    325: [(2,1), 'Crosses', 9.4],
    326: [(2,1), 'Crosses', 4.7],
    323: [(1,-1), 'Empty', 9.4],
    324: [(1,-1), 'Empty', 4.7],
    329: [(1,-1), 'Crosses', 9.4],
    327: [(.5,-.5), 'Crosses', 9.4],
    328: [(.5,-.5), 'Crosses', 4.7],
    322: [(.5,-.5), 'Empty', 9.4],
}

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    lofm[nr] = '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                )

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True, palette='Paired')
#sns.set(pal)
fig, ax = plt.subplots(figsize=(16,12))
for i,j in lofm.items():
    label = 'm%s: %s' % (i, j)
    eva[i].plot(label=label, ax=ax, dont_set_plot_settings=True)


eva[i]._draw_oneoverf(ax, xmin=1e-2, ymin=1e-6)
eva[i]._draw_oneoverf(ax, ymin=1e-3, alpha=2, plot_style='b--', an_color='blue')

eva[i]._set_plot_settings(xlim=(1e-2, 1e0), ylim=(1e-7, 5e-2), title='($90^\circ$) Field sweeps (slow SR)',
                         grid=dict(which='minor', color='#ffff99', linestyle='--', alpha=.5))
plt.grid(b=True, which='minor', color='#cccccc', linestyle='-.', alpha=.3)
../_images/notebooks_02.2_Signal_Analyzer_37_0.png
[21]:
lofm = {}
for nr, content in to_show.items():
    if content[2] == 4.7:
        continue
    lofm[nr] = '$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                )

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True, palette='Paired')
#sns.set(pal)
fig, ax = plt.subplots(figsize=(16,12))
for i,j in lofm.items():
    label = 'm%s: %s' % (i, j)
    eva[i].plot(label=label, ax=ax, dont_set_plot_settings=True)


eva[i]._draw_oneoverf(ax, xmin=1e-2, ymin=1e-6)
eva[i]._draw_oneoverf(ax, ymin=1e-3, alpha=2, plot_style='b--', an_color='blue')

eva[i]._set_plot_settings(xlim=(1e-2, 1e0), ylim=(1e-7, 5e-2), title='($90^\circ$) Field sweeps (fast SR)',
                         grid=dict(which='minor', color='#ffff99', linestyle='--', alpha=.5))
plt.grid(b=True, which='minor', color='#cccccc', linestyle='-.', alpha=.3)
../_images/notebooks_02.2_Signal_Analyzer_38_0.png

Low Fields

[22]:
lofm = {}
to_show = {
    333: [(.75,-.75), 'Crosses', 7],
    332: [(.3,-.3), 'Crosses', 2.8],
    334: [(.1,-.1), 'Crosses', .093],
    337: [(.05,-.05), 'Plusses', 0.93],
    338: [(.025,-.025), 'Plusses', 0.46],
    340: [(.025,-.025), 'Empty', 0.46],
    339: [(0,.5), 'Plusses', 0.46],
    341: [(.005, -.005), 'Plusses', 0.1]
}

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    lofm[nr] = ['$%s \\rightarrow %s$ T %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),{}]

set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Dark2')

eva.plot(lofm, plot_settings=dict(title='($90^\\circ$) Field Sweeps ($B \\leq \\pm 0.75 T$)'),
        f_settings=dict(xmin=5e-2, ymin=1e-5))

if save_figures:
    plt.savefig('img/sweep_lowfield.png', dpi=300)
    plt.savefig('img/sweep_lowfield.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_40_0.png
[24]:
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Dark2')

eva.plot(lofm,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps ($B \\leq \\pm 0.75 T$)',
             xlim=(1e-2, 1.6e0)),
         f_settings=dict(
             xmin=5e-2,
             ymin=1e-5))

if save_figures:
    plt.savefig('img/sweep_lowfield2.png', dpi=300)
    plt.savefig('img/sweep_lowfield2.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_41_0.png

Measurement Plan #2 / #3 (25 mT Sweeps)

Diff Sweeprates (\(- M_S \rightarrow -25 \rightarrow 25\) mT)

[25]:
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Paired')
#sns.color_palette('muted', 4)

lofm = {}
to_show = {
    354: [("-M_s \\rightarrow -25",25), 'Plusses', 2],
    351: [("-M_s \\rightarrow -25",25), 'Plusses', 1],
    353: [("-M_s \\rightarrow -25",25), 'Plusses', .25],
    352: [("-M_s \\rightarrow -25",25), 'Plusses', .1],
}

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    lofm[nr] = [sweep_label % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),{}]

eva.plot(lofm,
       fit_range=(2e-2, 5e-1),
       show_fit=True,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps ($B = \\pm 25 mT$, diff SR)',
             xlim=(1e-2, 2e0),
             ylim=(4e-7, 5e-2)),
         f_settings=dict(
             xmin=5e-2,
             ymin=1e-5))

ax = plt.gca()
with sns.color_palette('Dark2'):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.06, .05, .3, .35),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up ($-M_S \\rightarrow +M_S$)', 'Down ($+M_S \\rightarrow -M_S$)'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-50, 50)
    inset.set_ylim(-.45, .65)

    y1, y2 = -1, 2
    inset.fill([-25, -25, 25, 25], [y1, y2, y2, y1], 'blue', alpha=.1)
    #inset.plot([8.3, 8.3], [y1, y2], 'b-.', alpha=.4)

# Only save if necessary
if save_figures:
    plt.savefig('img/sweep_25mT_SR.png', dpi=300)
    plt.savefig('img/sweep_25mT_SR.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_44_0.png

SR + Plusses + Empty

[26]:
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Paired')

lofm = {}
to_show = {
    349: [("-M_s \\rightarrow 25",-25), 'Empty', 0.5, {}],
    340: [(25,-25), 'Empty', 0.46, {}],
    338: [(25,-25), 'Plusses', 0.46, {}],
    342: [("+M_s \\rightarrow 25 \\rightarrow 8.3",-25), 'Plusses', +0.11, {}],
    343: [("-M_s \\rightarrow -25 \\rightarrow -8.3",25), 'Plusses', 0.11, {'color': 'red'}],
}

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    lofm[nr] = ['$%s \\rightarrow %s$ mT %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),content[3]]

eva.plot(lofm,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps ($B = \\pm 25 mT$)',
             xlim=(6e-3, 1.6e0),
             #ylim=()
         ),
         f_settings=dict(
             xmin=5e-2,
             ymin=1e-5))

ax = plt.gca()
with sns.color_palette('Dark2'):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.45, .75, .23, .23),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up', 'Down'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-30, 30)
    inset.set_ylim(-.45, .65)

    y1, y2 = -1, 2
    inset.fill([-25, -25, -8.3, -8.3], [y1, y2, y2, y1], 'red', alpha=.2)
    inset.fill([25, 25, 8.3, 8.3], [y1, y2, y2, y1], 'green', alpha=.2)
    inset.fill([25, 25, -25, -25], [y1, y2, y2, y1], 'blue', alpha=.05)
    #inset.plot([8.3, 8.3], [y1, y2], 'b-.', alpha=.8)

# Only save if necessary
if save_figures:
    plt.savefig('img/sweep_25mT.png', dpi=300)
    plt.savefig('img/sweep_25mT.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_46_0.png

Temp Effect

[27]:
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='muted')

lofm = {}
to_show = {
    355: [("-M_s \\rightarrow -25",25), 'Plusses', 0.5, 25],
    356: [("-M_s \\rightarrow -25",25), 'Plusses', 0.5, 20],
    #357: [("-M_s \\rightarrow -25",25), 'Plusses', 0.5, 15],
    358: [("-M_s \\rightarrow -25",25), 'Plusses', 0.5, 10],
    359: [("-M_s \\rightarrow -25",25), 'Plusses', 0.5, 5],
}

for nr, content in to_show.items():
    lofm[nr] = ['$%s\\, K$' % (
                content[3],
                ),{}]

t = '($90^\\circ$) Field Sweeps ($B = \\pm 25 mT$) ' + \
    '$%s \\rightarrow %s$ mT %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2])
eva.plot(lofm,
         plot_settings=dict(
             title=t,
             xlim=(1e-2, 1.6e0),
             ylim=(6e-7, 5e-2)
         ),
         f_settings=dict(
             xmin=5e-2,
             ymin=1e-5, disable=True))

# Only save if necessary
if save_figures:
    plt.savefig('img/sweep_25mT_T.png', dpi=300)
    plt.savefig('img/sweep_25mT_T.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_48_0.png

Measurement Plan #2

[28]:
for nr, i in info[info.index > 385]['Additional'].items():
    if i == 'Temp':
        continue
    r = re.match('T5K.*(-[0-9]*) mT to (-[0-9]*) mT', i)
    if r:
        print(r.groups())
('-25', '-75')
('-75', '-125')
('-275', '-325')
('-225', '-275')
('-300', '-350')
('-625', '-575')
('-25', '-75')
('-400', '-450')
('-500', '-550')
('-25', '-75')
('-175', '-225')
('-575', '-625')
('-125', '-175')
('-450', '-500')
[29]:
plt.style.use('ggplot')
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='Paired')
lofm = {}
to_show = {
    342: [("+M_s \\rightarrow 25 \\rightarrow 8.3",-25), 'Plusses', +0.11, {}],
    343: [("-M_s \\rightarrow -25 \\rightarrow -8.3",25), 'Plusses', 0.11, {}],
    346: [("+M_s \\rightarrow 36.56 \\rightarrow -72.6",-291.13), 'Plusses', 0.5,{}],
    347: [("-M_s \\rightarrow 36.56",-291), 'Plusses', 0.5,{}],
    348: [("-M_s \\rightarrow 36.56",-291), 'Empty', 0.5, {'color': 'darkgreen'}],
    345: [("+M_s \\rightarrow -291 \\rightarrow -341.6",-443), 'Plusses', 0.5, {'color': 'red'}],
    344: [("+M_s \\rightarrow -443 \\rightarrow -499",-611), 'Plusses', +2.35, {'color': 'orange'}],
}

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    options = content[3]
    lofm[nr] = ['$%s \\rightarrow %s$ mT %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),options]

eva.plot(lofm,
       fit_range=(2e-2, 5e-1),
       show_fit=False,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps (Measurement Plan \#2)',
             xlim=(6e-3, 1.6e0),
             #ylim=()
         ),
         f_settings=dict(
             xmin=6e-3,
             ymin=1e-5))

ax = plt.gca()
with sns.color_palette('muted'):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.28, .73, .29, .24),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up ($-M_S \\rightarrow +M_S$)', 'Down ($+M_S \\rightarrow -M_S$)'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-650, 50)
    inset.set_ylim(-.4, .6)

    y1, y2 = -1, 2
    inset.fill([-25, -25, 25, 25], [y1, y2, y2, y1], 'blue', alpha=.1)
    inset.fill([-291.13, -291.13, 36.56, 36.56], [y1, y2, y2, y1], 'green', alpha=.1)
    inset.fill([-611, -611, -443, -443], [y1, y2, y2, y1], 'orange', alpha=.1)
    inset.fill([-291, -291, -443, -443], [y1, y2, y2, y1], 'darkred', alpha=.1)


# Only save if necessary
#plt.savefig('sweep_measplan2.png', dpi=300)
#if save_figures:
#    plt.savefig('img/sweep_measplan2.png', dpi=300)
#    plt.savefig('img/sweep_measplan2.pdf', dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_51_0.png

Constant Field Range (\(\Delta B = 50\) mT) #12

[38]:
#plt.style.use('ggplot')
c1 = sns.color_palette("hls", 15)
#sns.color_palette("Reds_r", 14)
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='deep')
sns.set_palette(c1)
lofm = {}
to_show = {
    383: [("+M_s \\rightarrow 25",-25), 'Plusses', +0.5, {}],
    384: [("-25",-75), 'Plusses', +0.5, {'color': 'orange', 'linestyle': '--'}],
    #385: [("+M_s \\rightarrow -25",-75), 'Plusses', +0.5, {}],
}

for i in range(6):
    to_show.update(
        {
            (385+i): [("+M_s \\rightarrow -%d" % (-(i*50+25)),(-(i*50+25) - 50)), 'Plusses', +0.5, {}],
        }
    )
for i, j in enumerate([-(_*50+300) for _ in range(4)] + [-575]):
    to_show.update(
        {
            (391+i): [("+M_s \\rightarrow -%d" % (j),(j - 50)), 'Plusses', +0.5, {}],
        }
    )

j = -625
to_show[397] = [("-M_s \\rightarrow -%d" % (j),(j + 50)), 'Plusses', +0.5, {}]

tmp = ''

for nr, content in to_show.items():
    #if content[2] == 9.4:
    #    continue
    #if nr not in [383, 384, 385]:
    #    continue
    options = content[3]
    lofm[nr] = ['$%s \\rightarrow %s$ mT %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),options]

eva.plot(lofm,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps (Measurement Plan \#12)',
             xlim=(1e-2, 1.6e0),
             ylim=(6e-9, 5e-1)
         ),
         f_settings=dict(
             xmin=1e-2,
             ymin=3e-5),
         f2_settings=dict(#disable=True
             xmin=1e-2,
             plot_style='k-.',
             an_color='k'
         ),
        )

ax = plt.gca()
with sns.color_palette(c1):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.28, .73, .29, .24),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up ($-M_S \\rightarrow +M_S$)', 'Down ($+M_S \\rightarrow -M_S$)'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-650, 50)
    inset.set_ylim(-.4, .6)

    y1, y2 = -1, 2
    for j in [25] + [-25-50*i for i in range(5)] + [-300-50*i for i in range(5)] + [-575]:
        inset.fill([j, j, j-50, j-50], [y1, y2, y2, y1], alpha=.4)
    #for j in [-300-50*i for i in range(5)] + [-575]:
    #    inset.fill([j, j, j-50, j-50], [y1, y2, y2, y1], alpha=.4)
ax.annotate('Without Saturation', (1.2e-2, 3e-3), color='orange')
ax.annotate('With', (1.01e-2, 1.5e-3), color='orange')
# Only save if necessary
#plt.savefig('sweep_measplan12.png', dpi=300)
#if save_figures:
#plt.savefig('img/sweep_measplan12%s.png' % (tmp), dpi=300)
#plt.savefig('img/sweep_measplan12%s.pdf' % (tmp), dpi=300)
[38]:
Text(0.0101, 0.0015, 'With')
../_images/notebooks_02.2_Signal_Analyzer_53_1.png
[35]:
#plt.style.use('ggplot')
c1 = sns.color_palette("hls", 7)
#sns.color_palette("Reds_r", 14)
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='deep')
sns.set_palette(c1)
lofm = {}
to_show = {
}

for i in range(6):
    to_show.update(
        {
            (385+i): [("+M_s \\rightarrow -%d" % (-(i*50+25)),(-(i*50+25) - 50)), 'Plusses', +0.5, {}],
        }
    )

tmp = '0-300'

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    options = content[3]
    lofm[nr] = ['$%s \\rightarrow %s$ mT %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),options]

eva.plot(lofm,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps (Measurement Plan \#12)%s' % tmp,
             xlim=(1e-2, 1.6e0),
             ylim=(6e-7, 5e-3)
         ),
         f_settings=dict(
             xmin=1e-2,
             ymin=3e-5),
         f2_settings=dict(#disable=True
             xmin=1e-2,
             plot_style='k-.',
             an_color='k'
         ),
        )

ax = plt.gca()
with sns.color_palette(c1):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.28, .73, .29, .24),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up ($-M_S \\rightarrow +M_S$)', 'Down ($+M_S \\rightarrow -M_S$)'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-300, 50)
    inset.set_ylim(-.4, .6)

    y1, y2 = -1, 2
    for j in [25] + [-25-50*i for i in range(5)] + [-300-50*i for i in range(5)] + [-575]:
        inset.fill([j, j, j-50, j-50], [y1, y2, y2, y1], alpha=.4)
    #for j in [-300-50*i for i in range(5)] + [-575]:
    #    inset.fill([j, j, j-50, j-50], [y1, y2, y2, y1], alpha=.4)

# Only save if necessary
#plt.savefig('sweep_measplan12.png', dpi=300)
if save_figures:
    plt.savefig('img/sweep_measplan12%s.png' % (tmp), dpi=300)
    plt.savefig('img/sweep_measplan12%s.pdf' % (tmp), dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_54_0.png
[34]:
#plt.style.use('ggplot')
c1 = sns.color_palette("hls", 7)
#sns.color_palette("Reds_r", 14)
set_sns(default=True, grid=True, size='notebook', style='ticks', latex=True,
        palette='deep')
sns.set_palette(c1)
lofm = {}
to_show = {
}

for i, j in enumerate([-(_*50+300) for _ in range(4)] + [-575]):
    to_show.update(
        {
            (391+i): [("+M_s \\rightarrow -%d" % (j),(j - 50)), 'Plusses', +0.5, {}],
        }
    )

j = 625
to_show[397] = [("-M_s \\rightarrow -%d" % (j),(j + 50)), 'Plusses', +0.5, {}]

tmp = '-300-650'

for nr, content in to_show.items():
    if content[2] == 9.4:
        continue
    options = content[3]
    lofm[nr] = ['$%s \\rightarrow %s$ mT %s ($%s \\frac{mT}{min}$)' % (
                content[0][0],
                content[0][1],
                content[1],
                content[2],
                ),options]

eva.plot(lofm,
         plot_settings=dict(
             title='($90^\\circ$) Field Sweeps (Measurement Plan \#12)%s' % tmp,
             xlim=(1e-2, 1.6e0),
             ylim=(6e-7, 1e-3)
         ),
         f_settings=dict(
             xmin=1e-2,
             ymin=3e-5),
         f2_settings=dict(#disable=True
             xmin=1e-2,
             plot_style='k-.',
             an_color='k'
         ),
        )

ax = plt.gca()
with sns.color_palette(c1):
    inset = inset_axes(ax, width='100%', height='90%',
                       bbox_to_anchor=(.28, .73, .29, .24),
                       bbox_transform=ax.transAxes)
    m.plot_strayfield(inset, 'Strayfield', nolegend=True)
    inset.legend(['Up ($-M_S \\rightarrow +M_S$)', 'Down ($+M_S \\rightarrow -M_S$)'])
    inset.grid(b=True, alpha=.4)
    inset.set_xlim(-650, -275)
    inset.set_ylim(-.4, .6)

    y1, y2 = -1, 2
    for j in [-300-50*i for i in range(5)] + [-575]:
        inset.fill([j, j, j-50, j-50], [y1, y2, y2, y1], alpha=.4)
    #for j in [-300-50*i for i in range(5)] + [-575]:
    #    inset.fill([j, j, j-50, j-50], [y1, y2, y2, y1], alpha=.4)

# Only save if necessary
#plt.savefig('sweep_measplan12.png', dpi=300)
if save_figures:
    plt.savefig('img/sweep_measplan12%s.png' % (tmp), dpi=300)
    plt.savefig('img/sweep_measplan12%s.pdf' % (tmp), dpi=300)
../_images/notebooks_02.2_Signal_Analyzer_55_0.png
[33]:
db = df[np.abs(df.dB) < .0007 ][np.abs(df.dB) > .00005 ]
X = db.get(['Time', 'dB'])
kmeans = KMeans(n_clusters=5).fit(X)
print('Nr\tBmax\tBmin\tTemp std\n' + '-'*50)
clusters = []
for i in range(1,kmeans.n_clusters):
    cluster = db[kmeans.labels_ == i]
    clusters.append(cluster)
    print(i,
          cluster['B'].max(),
          cluster.B.min(),
          cluster.dTemp.std(), sep='\t')
#plt.plot(db.dB * -4000)
#df[df['Time'] < 91000][df['Time'] > 80000].plot(x='Time', y='dB')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/var/folders/nm/0s3x_nnn1ss1n7rd1px5gqsr0000gn/T/ipykernel_29173/3427526419.py in <module>
----> 1 db = df[np.abs(df.dB) < .0007 ][np.abs(df.dB) > .00005 ]
      2 X = db.get(['Time', 'dB'])
      3 kmeans = KMeans(n_clusters=5).fit(X)
      4 print('Nr\tBmax\tBmin\tTemp std\n' + '-'*50)
      5 clusters = []

NameError: name 'df' is not defined

Instable Sample Temperature when sweeping field

[ ]:
nr = 391
c1 = clusters[3][['Temp3', 'B', 'Vx', 'dB', 'dTemp']]
c1.plot(x='B', y=['Temp3'], label=['Sample Temp $T \\in (%.4f, %.4f) \\pm %.4f$' % (c1.Temp3.max(),
                                                        c1.Temp3.min(),
                                                        c1.Temp3.var())])
plt.title('m%d: Temperature' % nr)
[ ]:
d = clusters[3]
for key in d.keys():
    i = info.loc[391]
    #i['%s_count' % key] = d[key].count()
    i['%s_mean' % key] = d[key].mean()
    i['%s_var' % key] = d[key].var()
    i['%s_min' % key] = d[key].min()
    i['%s_max' % key] = d[key].max()

[ ]:
i.to_csv('m391_info.dat')

Stabilizing Temp after filling

[ ]:
plt.plot(m.up.B, m.up['Sample Temp'])
plt.plot(m.down.B, m.down['Sample Temp'])