labtools.configure(LOGLEVEL = 'INFO') from labtools.pi.mercury import C862Translator from labtools.coherent.powermeter import PowerMeter import time from labtools.log import create_logger from labtools.instr.conf import * import numpy as np from scipy.optimize import curve_fit from scipy.special import erf import matplotlib.pyplot as plt logger = create_logger(__name__, LOGLEVEL) def ERF(x, w,x0,a): return 0.5 * a * (1+ erf(np.sqrt(2)*(x-x0)/w)) class BeamProfiler(object): """Beam profiling object. It consists of two translators that move the blade that work as a shade for a Gaussian beam. A powermeter is used for measuring the transmitted beam""" #: number of steps to perform when scanning each axis nsteps = 30 #: translator travel length width = 2 #: min step resolution at which find_center is satisfied stepres = 0.0005
user-friendly interface. Some of the most useful SCPI commands have their separate methods. You can of course still use raw commands for a more custom control. """ import time import visa from labtools.stanford.conf import TIMEOUT, LOGLEVEL, DEVICES, INITCMD, FUNCTYP from labtools.log import create_logger #from labtools.utils.instr import BaseSerialInstrument, InstrError from labtools.stanford.instr import StanfordInstrument #logger = create_logger(__name__, LOGLEVEL) logger = create_logger(__name__, 'DEBUG') def find_address(device=None, timeout=0.1): r"""Searches visa instruments and finds a valid device. It opens all posible visa ports and asks for *IDN? command. It parses the output and looks for a specific agilent function generator string identifier (such as 'DS345' ). Parameters ---------- device : str or None If specified it looks for a given string in the *IDN? command. This serves as a device identifier. If not given it is one of the possible devices timeout : float Visa timeout (increase it if you have communication problems.)
from enthought.traits.ui.table_column \ import ObjectColumn from enthought.traits.ui.extras.checkbox_column \ import CheckboxColumn from scipy.optimize import curve_fit import inspect import numpy as np from labtools.analysis.fit_functions import general, CATEGORIES from labtools.analysis.plot import Plot from labtools.utils.custom_traits import NoneFloat from labtools.log import create_logger log = create_logger(__name__) class Parameter(HasTraits): """Defines parameter for FitFunction >>> p = Parameter(name = 'a', value = 10.) >>> p.name 'a' >>> p.value 10.0 """ #: parameter name name = Str() #: actual value value = Float(1.)
import numpy as np import PySpin import cv2 from labControl.flir import conf as config from labtools.log import create_logger from labtools.utils.instr import InstrError, BaseDevice import ArTwvStructure import ctypes import multiprocessing as mp from labControl import timing from os import listdir, makedirs logger = create_logger(__name__, config.LOGLEVEL) class Camera(object): """ Camera class for creation of a camera instance Creates a Bfly camera at a given index. At first camera initialization the camera list and number of cameras available is acquired. """ __system = None __cam_list = None __num_cameras = None def __new__(cls, index=0): if cls.__system is None: cls.__system = PySpin.System.GetInstance()