2016-08-05 6 views
0

previous答えで次のコードが見つかりました。私は約3000ラスタを試しましたが、動作は非常に遅いです。プロセスを固定するために並列にコードを実行するにはどうすればよいですか?マスクによる並列Python抽出ArcGIS

おかげで、 MOH

import arcpy, os 
from arcpy import env 
from arcpy.sa import * 

env.workspace = "C:/rasters/threshold" 
outws = "C:/SIG/MelasCA_30runs_avg/threshold/mesoamerica" 
mask = "C:/GIS/mesoamerica.shp" 

rasterlist = arcpy.ListDatasets("*", "Raster") 
for i in rasterlist: 
    outExtractByMask = ExtractByMask(i, mask) 
    outname = os.path.join(outws, str(i)) # Create the full out path 
    outExtractByMask.save(outname) 

答えて

0

あなたがスレッドを使用することができます。あなたが持っているコアの数に応じて、同時に4/8/16を実行します。 スレッドを使用するためのヒント: https://pymotw.com/2/threading/

+0

返信ありがとうございます。問題は、私は実際にはPythonの背景が全くないことです。私は本来、gdalを使用していますが、結果は満足のいくものではありません。もちろん、すでに動作しているコードを見つけることができて嬉しかったです。並行して動作するコードを調整する助けに感謝します。しかし、私は約束、私はPythonを学ぶ:)) – kimofos2008

関連する問題