我有一个使用 arcpy 模块的非常简单的 python 脚本。我把它变成了 arcmap 中的脚本工具,并以这种方式运行。它工作得很好,我已经在小型数据集上对其进行了多次测试。问题是我有大量的数据。我需要在具有 4 列和 490,481,440 行的 .dbf 表上运行脚本/工具,目前需要几天时间。有人对如何加快速度有任何建议吗?为了节省时间,我已经在运行脚本之前创建了将在表中填充的列。“back”表示“back_pres_dist”列中逗号后的第二个数字,“dist”表示第四个。我想要的只是让他们在自己的单独列中。表格和脚本如下所示:
back_pres_dist back dist
1,1,1,2345.6
1,1,2,3533.8
1,1,3,4440.5
1,1,4,3892.6
1,1,5,1292.0
import arcpy
from arcpy import env
inputTable = arcpy.GetParameterAsText(0)
back1 = arcpy.GetParameterAsText(1) #the empty back column to be populated
dist3 = arcpy.GetParameterAsText(2) #the empty dist column to be populated
arcpy.CalculateField_management(inputTable, back1, '!back_pres_dist!.split(",")[1]', "PYTHON_9.3")
updateMess = arcpy.AddMessage("back column updated.")
arcpy.CalculateField_management(inputTable, dist3, '!back_pres_dist!.split(",")[3]', "PYTHON_9.3")
updateMess = arcpy.AddMessage("dist column updated.")
updateMess = arcpy.AddMessage("All columns updated.")
任何建议将不胜感激。我知道将数据的某些部分读入内存可能会加快速度,但我不确定如何用 python 做到这一点(当使用 R 时,它需要很长时间才能读入内存,并且试图写入 .csv 是一场噩梦)。