在Python中使用gdb中的栅格数据集
我正在尝试写一个脚本,用于在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非常陌生,所以任何帮助都将不胜感激。
祝一切顺利
2 个回答
1
首先:当你想在字符串中使用\
这个字符时,你需要用另一个\
来转义它。所以你的路径应该写成这样:"C:\\Users\\OJB\\Desktop\\University\\UsingRAS\\UsingRas.gdb"
这一行:
PythonRad = "Aspect_Deg" * degrad
是没有意义的,因为你在用一个字符串和一个浮点数相乘。你需要先获取一个可以和你的浮点数相乘的对象。
2
使用arcpy模块中的栅格对象来创建一个栅格:
from arcpy import Raster
...
ras = Raster('path_to_raster')
PythonRad = ras * degrad
另外,完成后别忘了把你的空间分析扩展功能重新检查回来。