1

我正在我的新 Mac 上安装 python pdal。这台 Mac 运行 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 notebook 中导入 pdal。但是,我在使用 pdal 处理 LAS 文件时收到错误消息: RuntimeError: filters.smrf: No return to process。

事实上,我有另一台正确安装 pdal 的旧电脑,运行 python 代码时没有出现错误。

我见过其他人建议使用 brew install 来处理它,但我还没有尝试过。我不想让我的电脑环境一团糟。

所以我只是在这里等着看是否有人有一个好主意来处理它。或者有人可以告诉我如何正确地做到这一点?蟒蛇代码是:

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()
4

2 回答 2

0

您应该查看输入点云中的返回信息。SMRF 的默认行为是处理最后一个 (ReturnNumber == NumberOfReturns > 1) 并且仅 (NumberOfReturns == 1) 返回。如果它没有发现符合这些标准的点,那么它就没有什么要处理的了。

您可以"returns":"first,last,intermediate,only"在舞台上作为附加选项传递,filters.smrf以指示它处理所有点。

于 2019-01-02T00:54:00.590 回答
0

最后,我通过将旧 Mac 克隆到新 Mac 来解决我的问题。无论如何,我可以在我的新 Mac 上工作,并且可以导入 PDAL 包并且工作顺利。

感谢所有查看我的问题并做出回应的人。

最好的,赵云

于 2019-01-03T02:48:58.867 回答