如何在 Mac 上安装 python pdal?
How to install python pdal on Mac?
我正在我的新 Mac 上安装 python pdal。这个 Mac 运行s python 3.6 和 anaconda 已经安装好了。在尝试使用 pdal 文档推荐的命令行 "pip install pdal" 安装 pdal 时,我收到错误消息:
没有那个文件或目录: 'pdal-config': 'pdal-config'
然后我尝试在Anaconda中搭建一个新的环境并下载pdal,这是论坛用户推荐的。所以我使用了命令"conda create -n pdalenv -c conda-forge python-pdal"。一切顺利,可以在 Jupyter 笔记本中导入 pdal。但是,在使用 pdal 处理 LAS 文件时出现错误消息:
RuntimeError: filters.smrf: 没有 returns 处理。
事实上,我有另一台旧计算机正确安装了 pdal,并且当我 运行 我的 python 代码时没有出现错误。
我看到有人建议用brew install来处理,但我还没有尝试过。我不想让我的计算机环境变得一团糟。
所以我就在这里等着看是否有人有好的处理方法。或者有人可以告诉我如何正确地做吗?
python代码是:
pip = json.dumps(
{
"pipeline": [
"../data/p2.las",
{
"type":"filters.smrf"
},
{
"type":"filters.hag"
},
{ "type":"filters.eigenvalues",
"knn":16},
{ "type":"filters.normal",
"knn":16}
]})
pipeline = pdal.Pipeline(pip)
pipeline.validate()
p = pipeline.execute()
您应该查看输入点云中的 return 信息。 SMRF 的默认行为是处理最后一个 (ReturnNumber == NumberOfReturns > 1) 并且仅处理 (NumberOfReturns == 1) returns。如果它没有找到满足这些条件的点,那么它就没有什么可处理的。
您可以将 "returns":"first,last,intermediate,only"
作为附加选项传递给 filters.smrf
阶段,以指示它处理所有点。
最后,我通过将旧 Mac 克隆到新 Mac 解决了我的问题。无论如何,我可以处理我的新 Mac 并且可以导入 PDAL 包并且运行顺利。
感谢所有查看我的问题并回复我的人。
最好的,
赵云
我正在我的新 Mac 上安装 python pdal。这个 Mac 运行s python 3.6 和 anaconda 已经安装好了。在尝试使用 pdal 文档推荐的命令行 "pip install pdal" 安装 pdal 时,我收到错误消息: 没有那个文件或目录: 'pdal-config': 'pdal-config'
然后我尝试在Anaconda中搭建一个新的环境并下载pdal,这是论坛用户推荐的。所以我使用了命令"conda create -n pdalenv -c conda-forge python-pdal"。一切顺利,可以在 Jupyter 笔记本中导入 pdal。但是,在使用 pdal 处理 LAS 文件时出现错误消息: RuntimeError: filters.smrf: 没有 returns 处理。
事实上,我有另一台旧计算机正确安装了 pdal,并且当我 运行 我的 python 代码时没有出现错误。
我看到有人建议用brew install来处理,但我还没有尝试过。我不想让我的计算机环境变得一团糟。
所以我就在这里等着看是否有人有好的处理方法。或者有人可以告诉我如何正确地做吗? python代码是:
pip = json.dumps(
{
"pipeline": [
"../data/p2.las",
{
"type":"filters.smrf"
},
{
"type":"filters.hag"
},
{ "type":"filters.eigenvalues",
"knn":16},
{ "type":"filters.normal",
"knn":16}
]})
pipeline = pdal.Pipeline(pip)
pipeline.validate()
p = pipeline.execute()
您应该查看输入点云中的 return 信息。 SMRF 的默认行为是处理最后一个 (ReturnNumber == NumberOfReturns > 1) 并且仅处理 (NumberOfReturns == 1) returns。如果它没有找到满足这些条件的点,那么它就没有什么可处理的。
您可以将 "returns":"first,last,intermediate,only"
作为附加选项传递给 filters.smrf
阶段,以指示它处理所有点。
最后,我通过将旧 Mac 克隆到新 Mac 解决了我的问题。无论如何,我可以处理我的新 Mac 并且可以导入 PDAL 包并且运行顺利。
感谢所有查看我的问题并回复我的人。
最好的, 赵云