1

我正在尝试编写一个脚本,用于在 python 中将度数转换为弧度。一项常见的任务,拥有它会很有用。我遇到的问题是输入栅格似乎被读取为字符串。见下文:

import arcpy
from arcpy import env
from arcpy.sa import *
import math
arcpy.CheckOutExtension("Spatial")
env.workspace = "C:\Users\OJB\Desktop\University\UsingRAS\UsingRas.gdb"


degrad = math.pi / 180
PythonRad = "Aspect_Deg" * degrad

outCos = Cos("PythonRad")
outCos.save("C:\Users\OJB\Desktop\University\UsingRAS\UsingRas.gdb\PyTest")

我得到的错误是:

Traceback (most recent call last):
File "C:/Users/OJB/Desktop/University/UsingRAS/Scripts/DegtoRad", line 11, in <module>
PythonRad = "Aspect_Deg" * degrad
TypeError: can't multiply sequence by non-int of type 'float'

我不确定如何在不使用引号的情况下使用此栅格。我对 Python 非常陌生,因此将不胜感激。

祝一切顺利

4

2 回答 2

2

使用 arcpy 模块中的栅格对象来实例化栅格:

from arcpy import Raster

...

ras = Raster('path_to_raster') 
PythonRad = ras * degrad

此外,完成后不要忘记重新检查您的空间分析扩展。

于 2012-01-02T16:23:12.877 回答
1

第一:当你想\在你的字符串中使用这个字符时,你必须用另一个\. 所以你的路径看起来像这样:"C:\\Users\\OJB\\Desktop\\University\\UsingRAS\\UsingRas.gdb"

这一行:

PythonRad = "Aspect_Deg" * degrad

没有意义,因为您将字符串文字与浮点值相乘。您必须首先检索一个可与您的浮点数相乘的对象。

于 2012-01-02T16:24:50.387 回答