0

我读过 python 能够使用机器上可用的全部物理内存,因此在实际填满我笔记本电脑的所有可用 9+GB 之前,它不应该耗尽内存。

但是,使用 laspy 解析一个 10M 的点云(200MB)并以以下方式选择点会产生内存不足的错误:

inFile = File(sys.argv[1], mode = "r")
all_points = np.vstack([inFile.x, inFile.y, inFile.z, inFile.return_num, inFile.intensity]).transpose()
lower_points = all_points[ 1 > inFile.z ]
upper_points = all_points[ 1 <= inFile.z ]

最后一个条件选择触发内存错误。实际上满足第一个条件的点有2M,总共有10M个点,所以8M点应该满足第二个条件。

如果我将 upper_points 更改为普通列表(as:[] )并 .append 每个 z 大于 1 的点,它就可以正常工作。

8M 点应该是大约 200MB 或更多,所以我不太明白这个问题。我错过了什么?

4

0 回答 0