diff --git a/iff/avhrr.py b/iff/avhrr.py
index 24f21f01ead2eafd787d691b3241e94620f5e4e1..bfea1aaabebc90f8093d4fd2fe60f56576df486b 100644
--- a/iff/avhrr.py
+++ b/iff/avhrr.py
@@ -310,11 +310,11 @@ class AVHRR(Sensor):
 
   @reify
   def SounderEmissive(self):
-    return self.HirsBands[0]
+    return self.HirsBandsNearestNeighbor[0]
 
   @reify
   def SounderBTs(self):
-    return self.HirsBands[1]
+    return self.HirsBandsNearestNeighbor[1]
 
   @reify
   def SounderCenters(self):
@@ -441,7 +441,32 @@ class AVHRR(Sensor):
 
   @reify
   def HirsMask(self):
-    elems = self.SounderElementIndex
-    elems[elems != -999.0] = 1
-    elems[elems == -999.0] = 0
+    elems = self.SounderElementIndex.copy()
+    elems[elems != -999] = 1
+    elems[elems == -999] = 0
     return elems.astype(np.int8)
+
+  @reify
+  def HirsBandsNearestNeighbor(self):
+    from iff_avhrr_nearest_neighbor import do_interpolation
+    interp_rad = self.HirsBands[0].copy()
+    interp_bt = self.HirsBands[1].copy()
+    log.debug('starting nearest neighbor interpolation')
+    (interp_i, interp_j, hirs_i, hirs_j) = do_interpolation(
+            self.HirsMask.astype(np.uint32),
+            self.SounderLineIndex,
+            self.SounderElementIndex,
+            0, self.HirsMask.shape[0])
+    print 'HirsMask shape: ', self.HirsMask.shape
+    print 'SounderLineIndex shape: ', self.SounderLineIndex.shape
+    print 'interp_i shape: ', interp_i.shape
+    print 'interp_j shape: ', interp_j.shape
+    print 'hirs_i shape: ', hirs_i.shape
+    print 'hirs_j shape: ', hirs_j.shape
+    print 'interp_bt shape: ', interp_bt.shape
+    print 'HirsBands[1] shape: ', (self.HirsBands[1]).shape
+    log.debug('finished with nearest neighbor interpolation')
+    for i in range(interp_rad.shape[0]):
+      interp_rad[i, interp_i, interp_j] = (self.HirsBands[0])[i, hirs_i, hirs_j]
+      interp_bt[i, interp_i, interp_j] = (self.HirsBands[1])[i, hirs_i, hirs_j]
+    return (interp_rad, interp_bt)