首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arcpy脚本快了现在慢了?

Arcpy脚本快了现在慢了?
EN

Stack Overflow用户
提问于 2018-01-23 04:14:56
回答 1查看 941关注 0票数 1

问题很大程度上是总结。今天早些时候,我在PyCharm中运行了以下脚本:

代码语言:javascript
复制
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的钱?

有没有其他人在运行脚本时遇到过问题;最初几次运行得很好,但突然之间,没有明显的原因,就需要大幅放缓了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-29 21:09:32

好的。不确定这是否值得投票,因为这是一个有效的问题,但对所有的人来说:这是一个合法的问题,我一直能够在几台不同的机器上以弧形方式再现。因此,如果您一直试图弄清楚,对于arcpy脚本来说,wtf的处理时间是高度可变的,那么请继续阅读。

结果,TabulateArea函数出现了一个合法的内存泄漏问题。尝试在for循环中添加如下内容:

代码语言:javascript
复制
arcpy.env.workspace = 'in_memory' #Outside the loop

arcpy.Delete_management("in_memory") #after the function completes

希望这能帮上忙。几天来我都想搞清楚这事。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48394128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档