Extract 'z piezo sensitivity (m/V)' from JPK files into Curve.info.
[hooke.git] / hooke / driver / jpk.py
index ee78f35350e6011e4e9825cad028d36e69029a6b..24d9777248d6e32f6cf20fd7d1468ed0bf367550 100644 (file)
@@ -160,9 +160,16 @@ class JPKDriver (Driver):
         assert force_base == 'distance', force_base
         dist_unit = chan_info['channel']['vDeflection']['conversion-set']['conversion']['distance']['scaling']['unit']['unit']
         assert dist_unit == 'm', dist_unit
+        distance_base = chan_info['channel']['vDeflection']['conversion-set']['conversion']['distance']['base-calibration-slot']
+        assert distance_base == 'volts', distance_base
+        # Assume volts unit is V, but it is not specified in the JPK
+        # file format.
         force_mult = float(
             chan_info['channel']['vDeflection']['conversion-set']['conversion']['force']['scaling']['multiplier'])
+        sens_mult = float(
+            chan_info['channel']['vDeflection']['conversion-set']['conversion']['distance']['scaling']['multiplier'])
         info['spring constant (N/m)'] = force_mult
+        info['z piezo sensitivity (m/V)'] = sens_mult
         return info
 
     def _zip_translate_segment_params(self, params):