问题很大程度上是总结。今天早些时候,我在PyCharm中运行了以下脚本:
rasterfolder = "F:/1_Raster_Processing/Classified/"
vectorfolder = "H:/Output/SplitShapes/"
tablefolder = "H:/Output/Split_Tables_3/"
import arcview
import arcpy
from arcpy.sa import *
arcpy.CheckOutExtension("spatial")
arcpy.env.workspace = vectorfolder
flist = arcpy.ListFeatureClasses()
for f in flist:
TabulateArea(f,"FID",rasterfolder + "KNN100_" + f[:-6] + ".tif","Value",tablefolder + f[:-4] + ".dbf",0.25)这是4分钟的一个特写类,有几百个要通过。在中午的某个时候,进程挂起,不再产生任何输出,所以我终止了它,重新开始(认为这是一个pyCharm问题)。当我重新开始的时候,突然每个特性类都采用了~1hr+来执行完全相同的过程。我在WingIDE中尝试过相同的过程,但我仍然有问题。我重新启动了所有程序,除了这台机器上的一个进程之外,什么也不运行。有什么想法?我需要在这里牺牲一只畜牧动物吗?付winRar的钱?
有没有其他人在运行脚本时遇到过问题;最初几次运行得很好,但突然之间,没有明显的原因,就需要大幅放缓了吗?
发布于 2018-01-29 21:09:32
好的。不确定这是否值得投票,因为这是一个有效的问题,但对所有的人来说:这是一个合法的问题,我一直能够在几台不同的机器上以弧形方式再现。因此,如果您一直试图弄清楚,对于arcpy脚本来说,wtf的处理时间是高度可变的,那么请继续阅读。
结果,TabulateArea函数出现了一个合法的内存泄漏问题。尝试在for循环中添加如下内容:
arcpy.env.workspace = 'in_memory' #Outside the loop
arcpy.Delete_management("in_memory") #after the function completes希望这能帮上忙。几天来我都想搞清楚这事。
https://stackoverflow.com/questions/48394128
复制相似问题