0

我在让 python 2.7 执行这个公式时遇到问题。其目的是将 Landsat 7 DN 值转换为反射率值。b1 引用 band1 TIFF 图像。

L_B1 = float(((LMax_B1 - LMin_B1) / (QCALMax_B1 - QCALMin_B1)) * (b1 - QCALMin_B1) + LMin_B1)

我得到的错误信息是:

Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'unicode' and 'unicode'

它似乎不喜欢 - / * 。我已经导入了数学。

任何帮助,将不胜感激。

4

1 回答 1

1

在我看来,您似乎正在对字符串进行操作,即您的变量之一(例如LMax_B1etc.)是 unicode 字符串,或者可能全部都是。您必须首先将它们转换为浮点数(或任何它们),即更改:

LMax_B1 - LMin_B1

float(LMax_B1) - float(LMin_B1)

对所有其他变量也这样做。顺便说一句,您不需要为运算符导入数学+ - * /。如果您对数字进行操作,它们始终可用并按预期工作。更高级的功能(例如sin等)需要数学。

于 2013-06-20T08:54:29.630 回答