2012-05-06 3 views
0

Первое сообщение и python newb, которые исчерпали все остальные параметры. Я заинтересован в добавлении выбранных свойств растра (с помощью функции arcpy.GetRasterProperties_management (input_raster, "property_type")) в таблицу с разделителями-запятыми, но мне трудно понять, как это сделать для нескольких результатов. Как сокращенный пример (моего фактического сценария), я создал два цикла for; по одному для каждого свойства растра, меня интересует вывод (т. е. размер ячейки X, размер ячейки Y). Мой список растров включает S01Clip_30m через S05Clip_30m. Моя цель состоит в том, чтобы создать файл .txt, который должен выглядеть примерно так:Добавление нескольких свойств растра в таблицу с разделителями-запятыми

RasterName, CellSizeX, CellSizeY 
S01Clip_30m, 88.9372, 88.9375 
S02Clip_30m, 88.9374, 88.9371 

код у меня до сих пор находится ниже (с некоторой неопределенностью, испорченного синтаксиса в нижней части). Когда я запускаю его, я получаю этот результат:

S05Clip_30m, 88,9374
(последний растровый в списке, CellSizeY)

Я признателен за любую помощь вы можете предоставить на решающем нижнем блоке кода.

import arcpy 
from arcpy import env 
env.workspace = ('C:\\StudyAreas\\Aggregates.gdb') 
InFolder = ('C:\\dre\\python\\tables') 
OutputFile = open(InFolder + '\\' + 'RasterProps.txt', 'a') 
rlist = arcpy.ListRasters('*','*') 
for grid in rlist: 
    if grid[-8:] == "Clip_30m": 
     result = arcpy.GetRasterProperties_management(grid,'CELLSIZEX') 
     CellSizeX = result.getOutput(0) 
for grid in rlist: 
    if grid[-8:] == "Clip_30m": 
     result = arcpy.GetRasterProperties_management(grid,'CELLSIZEY') 
     CellSizeY = result.getOutput(0) 
> I know the syntax below is incorrect, but I know there are *some* elements that 
> should be included based on other example scripts that I have... 
> if result.getOutput(0) == CellSizeX: 
>  coltype = CellSizeX 
> elif result.getOutput(0) == CellSizeY: 
>  coltype = CellSizeY 
> r = ''.join(grid) 
> colname = r[0:] 
> OutputFile.writelines(colname+','+coltype+'\n') 

ответ

0

После получения помощи от другого Q & форум на тему мой сценарий, я теперь предоставляет ответ на свой вопрос ГИС, связанные закрыть эту тему (и перейти к gis.stackexchange :) - благодаря L Комментарий Yip). Вот окончательный исправленный скрипт, который выводит свои два растровых свойства (размер ячейки в направлении Х, Размер ячейки в Y-направлении) для списка растров в .txt файл:

import arcpy 
from arcpy import env 
env.workspace = ('C:\\StudyAreas\\Aggregates.gdb') 
InFolder = ('C:\\dre\\python\\tables') 
OutputFile = open(InFolder + '\\' + 'RasterProps.txt', 'a') 
rlist = arcpy.ListRasters('*','*') 
for grid in rlist: 
    if grid[-8:] == "Clip_30m": 
     resultX = arcpy.GetRasterProperties_management(grid,'CELLSIZEX') 
     CellSizeX = resultX.getOutput(0) 
     resultY = arcpy.GetRasterProperties_management(grid,'CELLSIZEY') 
     CellSizeY = resultY.getOutput(0) 
OutputFile.write(grid + ',' + str(CellSizeX) + ',' + str(CellSizeY) + '\n') 
OutputFile.close() 

Мои результаты после запуска сценарий:
S01Clip_30m, 88.937158083333,88.9371580833333
S02Clip_30m, 88.937158083333,88.937158083333
S03Clip_30m, 88.9371580833371,88.9371580833333
S04Clip_30m, 88.9371580833308,88.937158083333
S05Clip_30m, 88.9371580833349,88.937158083333

Спасибо!

+0

Для чего это необходимо, вероятная причина для получения каких-либо ответов на ваш вопрос заключается в том, что никто из нас не знает, что такое «растровое свойство». Используя мой волшебный хрустальный шар, я думаю, вы говорите о чем-то связанном с ГИС - использование тега [[gis]] могло бы помочь. Кроме того, «для этого есть обмен стеками!»: Http://gis.stackexchange.com. –

+0

А, это было очень полезно - спасибо. Будучи новым пользователем, мне было трудно оценить, какой уровень детализации и какой контекст я должен предоставить. Я знал, что Stack Overflow был большим зонтиком, поэтому ваше предложение использовать gis.stackexchange очень полезно. Спасибо, agian. – Dre

+0

Не беспокойтесь. StackOverflow - действительно большой зонтик, но обратная сторона заключается в том, что мы не хорошо разбираемся в специальностях. Использование правильных тегов помогает привлечь внимание специалистов, которых вы преследуете, но часто лучший способ - просто перейти к соответствующему обмену стеками, где они постоянно болтаются. :) –