我lasinfo
使用 .las 文件运行并收到以下错误消息。
$ lasinfo a.las
错误:主版本超出范围
我想知道是什么原因,我该如何解决?
在不了解您的 lastools 版本或文件头中的数据的情况下,我无法确定抛出错误的“原因”。我可以猜测 las 标头中定义的 las 文件版本对于您的 lastools 版本来说太高了,这可能会对这些版本值进行边界检查(我的本地版本的 lastools 没有进行任何边界检查我可以看到,所以我不能确定这是正确的答案)。
version_major
对于 las 文件格式的所有现有版本,在 .las 头文件中必须为“1”:http ://www.asprs.org/Committee-General/LASer-LAS-File-Format-Exchange-Activities.html 。
如果您想检查 lasfile 版本,因为它写在 las 标头中,您可以使用以下 python 脚本(取决于laspy
, install with pip install laspy
):
import laspy.file
lasfile = laspy.file.File("a.las")
print "File major version:", lasfile.header.version_major
print "File minor version:", lasfile.header.version_minor
据我所知,laspy
不会对该标头版本进行任何检查,因此您应该能够使用该脚本来检查文件中广告的 las 版本。
关于解决您的问题,我不知道您要使用此 lasfile 做什么,但如果您只是想获取有关它的信息(我可能会通过您使用该lasinfo
命令来猜测),您可以尝试:
这两个软件包都是免费和开源的,可以在大多数主要操作系统上通过软件包或从源代码安装。我不知道他们是否会乐于阅读带有 invalid 的 lasfile version_major
,但值得一试。
如果你version_major
真的是无效的(例如它被设置为“2”或类似的奇怪的东西),你可以尝试使用laspy
或其他软件套件重置它。