diff --git a/goesr/l1b.py b/goesr/l1b.py
index c82d133f904ed6860b4e8789face3b4fc167a416..0060e86fc11e12e2bd1ba3d9da16f767fb16aae2 100644
--- a/goesr/l1b.py
+++ b/goesr/l1b.py
@@ -433,14 +433,14 @@ class PugL1bTools(object):
# convert to nadir-meters using proj4
xm, ym = proj(lon, lat, inverse=False)
# divide out height to get back to projection view angles
- h = self.nav['perspective_point_height']
- y, x = ym / h, xm / h
+ h = float(self.nav['perspective_point_height'])
+ # y, x = ym / h, xm / h
# extract scale factor and add offset to back out to line-from-0, column-from-0
yvar, xvar = self.nc[self.y_var_name], self.nc[self.x_var_name]
- ysf, yao = yvar.scale_factor, yvar.add_offset
- xsf, xao = xvar.scale_factor, xvar.add_offset
+ ysf, yao = float(yvar.scale_factor) * h, float(yvar.add_offset) * h
+ xsf, xao = float(xvar.scale_factor) * h, float(xvar.add_offset) * h
# reverse scale factor and add offset to get line and column
- line, column = (y - yao) / ysf, (x - xao) / xsf
+ line, column = (ym - yao) / ysf, (xm - xao) / xsf
# round to nearest integer
if round:
return np.round(line).astype(np.int32), np.round(column).astype(np.int32)