初めての投稿と他のすべてのオプションを使い果たしたpython newb。私は選択されたラスタプロパティ(arcpy.GetRasterProperties_management(input_raster、 "property_type")関数を使用して)をカンマ区切りのテーブルに追加することに興味がありますが、複数のの結果に対してこれを行う方法を考える上で問題があります。 (私の実際のスクリプトの)簡潔な例として、私は2つの 'for'ループを作成しました。出力に興味のあるラスタプロパティごとに1つ(つまり、セルサイズ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は確かに大きな傘ですが、私たちは専門分野に恵まれていません。適切なタグを使用すると、後になっている専門家の注意を引くのに役立ちますが、しばしば、より良い方法は、いつもどこにいても適切なスタック交換に行くことです。 :) –