2012-01-02 3 views
1

파이썬에서도를 라디안으로 변환하는 스크립트를 작성하려고합니다. 일반적인 일이며 주위를 둘러 보는 것이 유용 할 것입니다. 내가 얻는 문제는 입력 래스터가 문자열로 읽혀진 것처럼 보입니다. 아래를 참조하십시오 : 내가 얻을파이썬에서 gdb의 래스터 데이터 세트 사용하기

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' 

나는 인용 부호를 사용하지 않고이 래스터를 사용하는 방법을 모르겠어요. 나는 파이썬에 매우 익숙해 져서 어떤 도움을 주시면 감사하겠습니다.

모든 최고의

답변

2

래스터의 인스턴스를 arcpy 모듈에서 래스터 오브젝트를 사용

from arcpy import Raster 

... 

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

또한, 당신이 완료되면 다시 당신의 공간 분석 확장을 확인하는 것을 잊지 마세요.

+0

Brilliant! 그것은 치료를했습니다. 고마워! –

1

첫 번째 : 문자열에 \ 문자를 사용하려면 \ 문자로 이스케이프 처리해야합니다. 그래서 경로는 다음과 같이 보일 것이다 : "C:\\Users\\OJB\\Desktop\\University\\UsingRAS\\UsingRas.gdb"

이 라인 : 당신이 float 값에 문자열 리터럴을 곱하여대로

PythonRad = "Aspect_Deg" * degrad 

이 이해가되지 않습니다. 먼저 플로트와 곱셈 가능한 객체를 가져와야합니다.

+0

@ Constantinus 감사! 파이썬의 경로와 \\를 완전히 잊었습니다. "Aspect_Deg"는 내가 사용하고자하는 그리드 파일을 참조합니다. 작업 공간이 설정되면 특정 파일 이름이 ""있어야한다고 생각했습니다. –