Ran update_copyright.py.
[hooke.git] / hooke / plugin / convfilt.py
index 3d1e883365ed3eee8393c83f27580bd78da3756d..e87022b6dff399dfd6fd4dce57af330ced2b3be7 100644 (file)
@@ -1,21 +1,18 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2008-2010 Alberto Gomez-Casado
-#                         Fabrizio Benedetti
-#                         Massimo Sandal <devicerandom@gmail.com>
-#                         W. Trevor King <wking@drexel.edu>
+# Copyright (C) 2010-2012 W. Trevor King <wking@drexel.edu>
 #
 # This file is part of Hooke.
 #
-# Hooke is free software: you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation, either
-# version 3 of the License, or (at your option) any later version.
+# Hooke is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
 #
-# Hooke is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
+# Hooke is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
+# Public License for more details.
 #
 # You should have received a copy of the GNU Lesser General Public
 # License along with Hooke.  If not, see
@@ -40,13 +37,11 @@ import numpy
 
 from ..command import Command, Argument, Success, Failure
 from ..config import Setting
-from ..experiment import VelocityClamp
-from ..plugin import Plugin, argument_to_setting
-from ..plugin.curve import CurveArgument
-from ..plugin.playlist import FilterCommand
-from ..plugin.vclamp import scale
 from ..util.fit import PoorFit
 from ..util.peak import find_peaks, find_peaks_arguments, Peak, _kwargs
+from . import Plugin, argument_to_setting
+from .curve import CurveArgument
+from .playlist import FilterCommand
 
 
 class ConvFiltPlugin (Plugin):
@@ -55,7 +50,7 @@ class ConvFiltPlugin (Plugin):
     def __init__(self):
         super(ConvFiltPlugin, self).__init__(name='convfilt')
         self._arguments = [ # for Command initialization
-            Argument('convolution', type='float', count='-1',
+            Argument('convolution', type='float', count=-1,
                      default=[11.0]+[-1.0]*11, help="""
 Convolution vector roughly matching post-peak cantilever rebound.
 This should roughly match the shape of the feature you're looking for.
@@ -75,7 +70,7 @@ Minimum number of peaks for curve acceptance.
                           ('max cut', 0.2),
                           ('min deviations', 5.0),
                           ('min points', 1),
-                          ('see double', 10e-9),
+                          ('see double', 10), # TODO: points vs. meters. 10e-9),
                           ]:
             argument = [a for a in self._arguments if a.name == key][0]
             argument.default = value
@@ -150,12 +145,6 @@ class ConvolutionPeaksCommand (Command):
         deflection arrays.
         """
         curve = params['curve']
-        if curve.info['experiment'] != VelocityClamp:
-            raise Failure('%s operates on VelocityClamp experiments, not %s'
-                          % (self.name, curve.info['experiment']))
-        for col in ['surface distance (m)', 'deflection (N)']:
-            if col not in curve.data[0].info['columns']:
-                scale(hooke, curve)
         data = None
         for block in curve.data:
             if block.info['name'].startswith('retract'):
@@ -208,8 +197,7 @@ class ConvolutionFilterCommand (FilterCommand):
         params['curve'] = curve
         inq = Queue()
         outq = Queue()
-        conv_command = [c for c in self.hooke.commands
-                        if c.name=='convolution peaks'][0]
+        conv_command = self.hooke.command_by_name['convolution peaks']
         conv_command.run(hooke, inq, outq, **params)
         peaks = outq.get()
         if isinstance(peaks, UncaughtException) \