我正在尝试用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非常陌生,所以如果有任何帮助,我将不胜感激。
万事如意
发布于 2012-01-03 00:23:13
使用arcpy模块中的栅格对象实例化栅格:
from arcpy import Raster
...
ras = Raster('path_to_raster')
PythonRad = ras * degrad此外,不要忘记在完成后重新签入您的spatial analyst扩展。
发布于 2012-01-03 00:24:50
首先:当您想要在字符串中使用\字符时,必须使用另一个\对其进行转义。因此,您的路径将如下所示:"C:\\Users\\OJB\\Desktop\\University\\UsingRAS\\UsingRas.gdb"
这一行:
PythonRad = "Aspect_Deg" * degrad没有任何意义,因为您正在将一个字符串文字与一个浮点值相乘。你必须首先检索一个可以与你的浮点数相乘的对象。
https://stackoverflow.com/questions/8702876
复制相似问题