laspy读取laz点云文件--TypeError: a bytes-like object is required, not 'FakeMmap'

1.缘由

  在使用python结合laspy读取laz格式的点云的时候,突然发现之前正常运行的代码出现了错误。搜索后发现此问题,解答甚少,仅在GitHub对应laspy的issues下有解答,故而记录之。

2.问题描述

  在运行下面代码时出错,具体错误为TypeError: a bytes-like object is required, not 'FakeMmap'。看大家的解释是说不适应numpy 1.17版本,可适应numpy 1.16,改后可行。

inFile = File('C:/data/lidar.laz', mode='r')

3.解决办法

  查看numpy版本,发现为1.17.4。

 

import numpy
numpy.__version__

 

  将numpy版本降到1.16.1。

 

pip3 uninstall numpy
pip3 install numpy==1.16.1

 

  正文已完!

 

 

 

  看Github上说,可修改报错指向的base.py的部分代码也可以实现,我试后均未成功(同样的改动方式,修改地方不同)。

  1)第一种改动

143              _pmap = np.frombuffer(self._mmap, self.pointfmt,
to 
143              _pmap = np.frombuffer(self._mmap.__buffer__, self.pointfmt,

  2)第二种改动

163              _pmap = np.frombuffer(self._mmap, self.pointfmt,
to 
163              _pmap = np.frombuffer(self._mmap.__buffer__, self.pointfmt,

4.解决办法

参考链接:https://github.com/laspy/laspy/issues/112

 

posted on 2020-11-25 22:18  他的博客  阅读(625)  评论(0编辑  收藏  举报

导航

// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css