Python 将多个光栅特性附加到逗号分隔的表中

Python 将多个光栅特性附加到逗号分隔的表中,python,append,gis,raster,tabular,Python,Append,Gis,Raster,Tabular,第一次发布和python新手,他已经用尽了所有其他选择。我对使用arcpy.GetRasterProperties\u managementinput\u raster,property\u type函数将选定的光栅属性附加到逗号分隔的表中感兴趣,但我很难弄清楚如何对多个结果执行此操作。作为我实际脚本的简化示例,我创建了两个“for”循环;我感兴趣的每个光栅属性输出一个,即单元格大小X、单元格大小Y。我的光栅列表包括S01Clip_30m到S05Clip_30m。我的目标是创建一个.txt文件,

第一次发布和python新手,他已经用尽了所有其他选择。我对使用arcpy.GetRasterProperties\u managementinput\u raster,property\u 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')

在收到另一个问答论坛关于我的脚本的帮助后,我现在提供我自己的GIS相关问题的答案,以关闭此线程并转到GIS.stackexchange:-感谢L.Yip的评论。下面是最终更正的脚本,它将光栅列表的两个光栅属性X方向的单元格大小和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


谢谢

值得一提的是,您的问题没有得到任何答案的可能原因是因为我们都不知道光栅属性是什么。使用我的魔法水晶球,我想你在谈论一些与GIS相关的东西-应用[[GIS]]标记可能会有所帮助。此外,还有一个堆栈交换。啊,这很有帮助-谢谢你。作为一个新用户,我很难判断我应该提供什么样的详细程度和上下文。我知道堆栈溢出是个大问题,所以您建议使用gis.stackexchange非常有用。再次谢谢你,不用担心。StackOverflow确实是一把大伞,但另一面是我们不擅长特产。使用正确的标记有助于吸引您所关注的专家的注意,但通常更好的方法是直接转到适当的堆栈交换,他们总是在那里挂起