From: W. Trevor King Date: Tue, 17 Aug 2010 02:17:26 +0000 (-0400) Subject: Use 'simple' conversion handler to process 'file'-type JPK conversions. X-Git-Url: http://git.tremily.us/?p=hooke.git;a=commitdiff_plain;h=8dd827989f1a41ebf7322e63f807b72727bf6114;ds=sidebyside Use 'simple' conversion handler to process 'file'-type JPK conversions. Michael Haggerty at JPK pointed out that the information from the external file was already stored in the curve file. He also confirmed that my interpretation of the external calibration file format was correct, although that no longer matters now that I've just removed the 'file'-specific conversion code. --- diff --git a/hooke/driver/jpk.py b/hooke/driver/jpk.py index bc13761..30fabdf 100644 --- a/hooke/driver/jpk.py +++ b/hooke/driver/jpk.py @@ -208,40 +208,17 @@ class JPKDriver (Driver): # the previous conversion first. segment = self._zip_scale_channel( segment, channel, conversion_info['base-calibration-slot'], - info, path) + path=path, info=info) if conversion_info['type'] == 'file': - key = ('%s_%s_to_%s_calibration_file' - % (channel_name, - conversion_info['base-calibration-slot'], - conversion)) - calib_path = conversion_info['file'] - if key in info: - calib_path = os.path.join(os.path.dirname(path), info[key]) - self.logger().debug( - 'Overriding %s -> %s calibration for %s channel: %s' - % (conversion_info['base-calibration-slot'], - conversion, channel_name, calib_path)) - if os.path.exists(calib_path): - with file(calib_path, 'r') as f: - lines = [x.strip() for x in f.readlines()] - f.close() - calib = { # I've emailed JPK to confirm this file format. - 'title':lines[0], - 'multiplier':float(lines[1]), - 'offset':float(lines[2]), - 'unit':lines[3], - 'note':'\n'.join(lines[4:]), - } - segment[:,channel] = (segment[:,channel] * calib['multiplier'] - + calib['offset']) - segment.info['columns'][channel] = ( - '%s (%s)' % (channel_name, calib['unit'])) - return segment - else: - self.logger().warn( - 'Skipping %s -> %s calibration for %s channel. Calibration file %s not found' - % (conversion_info['base-calibration-slot'], - conversion, channel_name, calib_path)) + # Michael Haggerty at JPK points out that the conversion + # information stored in the external file is reproduced in + # the force curve file. So there is no need to actually + # read `conversion_info['file']`. In fact, the data there + # may have changed with future calibrations, while the + # information stored directly in conversion_info retains + # the calibration information as it was when the experiment + # was performed. + pass # Fall through to 'simple' conversion processing. else: assert conversion_info['type'] == 'simple', conversion_info['type'] assert conversion_info['scaling']['type'] == 'linear', \