2016-08-05 1 views
0

J'ai trouvé le code suivant dans une réponse previous. Je l'ai essayé pour environ 3000 rasters, ça marche mais très lentement. Comment faire pour exécuter le code en parallèle pour boucler le processus?Extrait de python parallèle par masque ArcGIS

grâce, 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) 

Répondre

0

Vous pouvez utiliser les threads. En fonction du nombre de cœurs que vous avez, exécutez 4/8/16 simultanément. Conseils pour utiliser les threads: https://pymotw.com/2/threading/

+0

merci pour la réponse. Le problème est, je n'ai vraiment aucun arrière-plan en Python du tout. J'utilise habituellement gdal, mais les résultats ne sont pas satisfaisants. Bien sûr, j'étais content de trouver un code qui fonctionnait déjà. Apprécierait toute aide pour ajuster le code pour travailler en parallèle. Mais je promets, va commencer à apprendre python :)) – kimofos2008