Использование наборов растровых данных из GDB в Python - PullRequest
1 голос
/ 02 января 2012

Я пытаюсь написать скрипт для преобразования градусов в радианы в 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 ]

2 голосов
/ 02 января 2012

Используйте растровый объект из модуля arcpy для создания экземпляра растра:

from arcpy import Raster

...

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

Кроме того, не забудьте проверить расширение пространственного аналитика, когда закончите.

1 голос
/ 02 января 2012

Первое: если вы хотите использовать символ \ в своих строках, вам нужно экранировать его другим \. Итак, ваш путь будет выглядеть так: "C:\\Users\\OJB\\Desktop\\University\\UsingRAS\\UsingRas.gdb"

Эта строка:

PythonRad = "Aspect_Deg" * degrad

Не имеет смысла, так как вы умножаете строковый литерал на значение с плавающей запятой. Вы должны сначала получить объект, который умножается с вашим float.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...