zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    第六次学习笔记
    第四篇笔记
    第三篇学习笔记
    第二篇学习笔记
    第一篇学习笔记
    px与dp、sp之间的转换
    SQLite的使用(二):数据增删改查
    Logcat的级别以及Logcat的调试使用
    Android 创建服务(一)
    简说SQLite
  • 原文地址:https://www.cnblogs.com/waterbbro/p/14039222.html
Copyright © 2011-2022 走看看