第一次使用了所有其他選項的post和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')
對於它的價值,沒有得到任何答案的可能原因是因爲我們都不知道什麼是「柵格屬性」。使用我的魔法水晶球,我認爲你在談論與GIS相關的東西 - 應用[[gis]]標籤可能會有所幫助。另外,「有一個堆棧交換!」:http://gis.stackexchange.com。 –
啊,這是非常有用的 - 謝謝你。作爲一名新用戶,我很難判斷我應該提供什麼樣的細節和環境。我知道Stack Overflow是一把大傘,所以你使用gis.stackexchange的建議非常有幫助。謝謝你。 – Dre
不用擔心。 StackOverflow確實是一個大傘,但另一方面是我們不擅長特色。使用正確的標籤有助於吸引你所追求的專家的注意力,但通常更好的方法是隻進行適當的堆棧交換,並將它們一直掛在外面。 :) –