여러 스레드 / 코어가 하나의 폴더에 래스터를 저장하고 수정하려고 할 때 INFADI 오류가 발생했습니다. 출력을 위해 각 작업에 하위 폴더를 할당하면 문제가 해결되는 것 같습니다. 문제는 래스터와 관련된 주변 파일 (예 : "info"폴더)에 대한 다중 읽기 / 쓰기와 관련이 있다고 생각합니다. 나는 또한 다음과 같은 예방 조치를 취합니다.
import arcpy,multiprocessing,random
def run(foo,c):
tempFolder = os.path.join("Z:/temp/",'temp_%s'%(str(c)))
if not os.path.exists(tempFolder): os.mkdir(tempFolder)
arcpy.env.scratchWorkspace = tempFolder
arcpy.env.Workspace = tempFolder
# create unique object in memory, run task, then delete unique object in memory
tempMem = str(rnd)
try:arcpy.Delete_management(tempMem)
except:pass
<tasks> #output to appropriate subfolder
arcpy.Delete_management(tempMem)
if __name__ == '__main__':
cores = 3
pool = multiprocessing.Pool(cores)
count = 0
for foo in bar:
pool.apply_async(run,(foo,c))
count +=1
pool.close()
pool.join()