Python スクリプトでエラーを処理する方法について、いくつかのアドバイスを使用できます。このサイトのすべての Python エラー処理の投稿を読んで収集できたのは、for ループ内のエラーを単に try except continue ステートメントでバイパスすることはできないということです。代わりに、各エラーを直接処理する必要があります。これは、すべてをまとめるのに問題があるところです。for ループの途中で発生したエラー メッセージを添付しました。さらに、次のワークフローを実行するスクリプトを添付しました。
- ラスターの周りにポリゴンを配置する
- 多角形の平均中心に点を置く
- ポイントを使用して、対応するラスターに関連付けられた特定の郡を識別します
- 選択した郡のポリゴンに基づいてラスターをクリップします
スクリプトが処理の途中で停止するのではなく、リスト内の次のラスターに移動できるように、エラー メッセージの情報を try except continue ステートメントに組み込むにはどうすればよいですか?
# Import arcpy module
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("3D")
# Set Over write
arcpy.env.overwriteOutput = 1
# Set the workspace
env.workspace = r"Z:\temp.gdb"
outworkspace = r"Z:\location2\temp2.gdb"
# Local variables:
counties = r"Z:\temp.gdb\boundaries\Counties"
counties_lyr = arcpy.MakeFeatureLayer_management(counties,"counties_lyr")
# Get the list of rasters to process
raster_list = arcpy.ListRasters("*_clp")
print raster_list
for raster in raster_list:
# Define name and location for output raster
name = outworkspace + "\\" + str(raster)
# Process: Raster Domain
arcpy.RasterDomain_3d(raster, "in_memory/temp", "POLYGON")
# Process: Central Feature
arcpy.MeanCenter_stats("in_memory/temp", "in_memory/temp1")
# Process: Select Layer By Location
arcpy.SelectLayerByLocation_management(counties_lyr, "intersect", "in_memory/temp1", "", "NEW_SELECTION")
# Clip Raster
arcpy.Clip_management(raster, "#", name,counties_lyr, "#", "ClippingGeometry")
# Delete in_memory
arcpy.Delete_management("in_memory")
print "processing " + raster + " complete..."
print "All processing is now finished"