2016-10-07 33 views
0

この質問は多くの場所でポップアップしていますが、これまでのところエラーが発生し続けている理由はわかりません。バインドされていないローカルエラーを回避しようとしています

次のように私は、ツールを定義しています:

def SumRasList (RasVar, Output): 
    RasList = arcpy.ListRasters(RasVar, "TIF") 
    print RasList 
    i = 0 
    for Ras in RasList: 
     Rasters = Raster(Ras) 
     if i == 0: 
      OutRas = Rasters 
      i += 1 
     else: 
      OutRas = OutRas + Rasters 
    OutRas.save(Output) 

エラーがOutRasが割り当て前に参照されていることを私に伝えます。

これで問題がどのようなものかを手で救うのに十分です。

答えて

0

あなたの質問は有効範囲の1つです。最初に最初のブランチを通過し、次に2番目のブランチに入りますが、最初のブランチの範囲についてはわかりません。

簡単な解決策は、ブランチを導入する前にこれを処理することです。

from arcpy import ListRasters, Raster 


def sum_ras_list(pattern, output): 
    ras_list = ListRasters(pattern, "TIF") 

    if not ras_list or not len(ras_list): 
     print("You found no data") 
     return 

    # Work with the first piece of data 
    out = Raster(ras_list.pop(0)) 

    # Work with the rest of the data 
    for ras in ras_list: 
     out = out + Raster(ras) 
     out.save(output) 
関連する問題