From: W. Trevor King Date: Thu, 15 Sep 2011 12:17:14 +0000 (-0400) Subject: Convert calibcant to the new, nestable h5config. X-Git-Tag: v0.4~24^2~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=26b1b064b0a71519207273a51a801961312e0276;p=pyafm.git Convert calibcant to the new, nestable h5config. --- diff --git a/calibcant/calibrate.py b/calibcant/calibrate.py index a3f7058..426abbf 100644 --- a/calibcant/calibrate.py +++ b/calibcant/calibrate.py @@ -116,16 +116,12 @@ def move_far_from_surface(stepper, distance): _LOG.info('step back %d steps (~%g m)' % (steps, distance)) stepper.step_relative(-steps) -def calib_acquire(afm, calibration_config, bump_config, temperature_config, - vibration_config, filename=None, group='/'): +def calib_acquire(afm, calibration_config, filename=None, group='/'): """Acquire data for calibrating a cantilever in one function. Inputs: afm a pyafm.AFM instance calibration_config a .config._CalibrationConfig instance - bump_config a .config._BumpConfig instance - temperature_config a .config._TConfig instance - vibration_config a .config._VibrationConfig instance Outputs (all are arrays of recorded data): bumps measured (V_photodiode / nm_tip) proportionality constant @@ -141,7 +137,7 @@ def calib_acquire(afm, calibration_config, bump_config, temperature_config, bumps = _zeros((calibration_config['num-bumps'],), dtype=_float) for i in range(calibration_config['num-bumps']): _LOG.info('acquire bump %d of %d' % (i, calibration_config['num-bumps'])) - bumps[i] = _bump(afm=afm, bump_config=bump_config, + bumps[i] = _bump(afm=afm, bump_config=calibration_config['bump'], filename=filename, group='%sbump/%d/' % (group, i)) _LOG.debug('bumps: %s' % bumps) @@ -153,7 +149,8 @@ def calib_acquire(afm, calibration_config, bump_config, temperature_config, _LOG.info('acquire T %d of %d' % (i, calibration_config['num-temperatures'])) Ts[i] = _T( - get_T=afm.get_temperature, temperature_config=temperature_config, + get_T=afm.get_temperature, + temperature_config=calibration_config['temperature'], filename=filename, group='%stemperature/%d/' % (group, i)) _sleep(calibration_config['temperature-sleep']) _LOG.debug('temperatures: %s' % Ts) @@ -162,14 +159,13 @@ def calib_acquire(afm, calibration_config, bump_config, temperature_config, vibs = _zeros((calibration_config['num-vibrations'],), dtype=_float) for i in range(calibration_config['num-vibrations']): vibs[i] = _vib( - piezo=afm.piezo, vibration_config=vibration_config, + piezo=afm.piezo, vibration_config=calibration_config['vibration'], filename=filename, group='%svibration/%d/' % (group, i)) _LOG.debug('vibrations: %s' % vibs) return (bumps, Ts, vibs) -def calib(afm, calibration_config, bump_config, temperature_config, - vibration_config, filename=None, group='/'): +def calib(afm, calibration_config, filename=None, group='/'): """Calibrate a cantilever in one function. Inputs: @@ -182,18 +178,18 @@ def calib(afm, calibration_config, bump_config, temperature_config, >>> import os >>> from pprint import pprint >>> import tempfile + >>> from h5config.storage.hdf5 import pprint_HDF5 >>> from pycomedi.device import Device >>> from pycomedi.subdevice import StreamingSubdevice >>> from pycomedi.channel import AnalogChannel, DigitalChannel >>> from pycomedi.constant import AREF, IO_DIRECTION, SUBDEVICE_TYPE, UNIT >>> from pypiezo.afm import AFMPiezo >>> from pypiezo.base import PiezoAxis, InputChannel - >>> from pypiezo.config import (HDF5_ChannelConfig, HDF5_AxisConfig, - ... pprint_HDF5) + >>> from pypiezo.config import ChannelConfig, AxisConfig >>> from stepper import Stepper >>> from pyafm import AFM - >>> from .config import (HDF5_CalibrationConfig, HDF5_BumpConfig, - ... HDF5_TemperatureConfig, HDF5_VibrationConfig) + >>> from .config import (CalibrationConfig, BumpConfig, + ... TemperatureConfig, VibrationConfig) >>> from .analyze import calib_load_all >>> fd,filename = tempfile.mkstemp(suffix='.h5', prefix='calibcant-') @@ -222,13 +218,11 @@ def calib(afm, calibration_config, bump_config, temperature_config, first few surface approaching steps, which could lead to an `EdgeKink` error instead of a `FlatFit` error. - >>> axis_config = HDF5_AxisConfig(filename, '/bump/config/z/axis') + >>> axis_config = AxisConfig() >>> axis_config.update( ... {'gain':20, 'sensitivity':8e-9, 'minimum':-9}) - >>> axis_channel_config = HDF5_ChannelConfig( - ... filename, '/bump/config/z/channel') - >>> input_channel_config = HDF5_ChannelConfig( - ... filename, '/bump/config/deflection/channel') + >>> axis_channel_config = ChannelConfig() + >>> input_channel_config = ChannelConfig() >>> a = PiezoAxis(axis_config=axis_config, ... axis_channel_config=axis_channel_config, @@ -261,14 +255,10 @@ def calib(afm, calibration_config, bump_config, temperature_config, Test calibration: - >>> calibration_config = HDF5_CalibrationConfig( - ... filename=filename, group='/bump/config/calibration/') - >>> bump_config = HDF5_BumpConfig( - ... filename=filename, group='/bump/config/bump/') - >>> temperature_config = HDF5_TemperatureConfig( - ... filename=filename, group='/bump/config/temperature/') - >>> vibration_config = HDF5_VibrationConfig( - ... filename=filename, group='/bump/config/vibration') + >>> calibration_config = CalibrationConfig() + >>> bump_config = BumpConfig() + >>> temperature_config = TemperatureConfig() + >>> vibration_config = VibrationConfig() >>> calib(afm, calibration_config, bump_config, temperature_config, ... vibration_config, filename=filename, group='/') TODO: replace skipped example data with real-world values