Как установить python pdal на Mac? - PullRequest
0 голосов
/ 01 января 2019

Я устанавливаю python pdal на мой новый Mac.Этот 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".Все идет хорошо и pdal можно импортировать в блокнот Jupyter.Тем не менее, я получил сообщение об ошибке при использовании pdal для обработки файла LAS: RuntimeError: filters.smrf: нет возврата к процессу.

На самом деле у меня есть другойстарый компьютер, на котором правильно установлен 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()

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Наконец, я решил свою проблему, клонировав старый Mac на мой новый Mac.В любом случае, я могу работать над моим новым пакетом Mac, а PDAL можно импортировать и работает без сбоев.

Спасибо всем, кто просматривает мой вопрос и отвечает на него.

Best, YUN ZHAO

0 голосов
/ 02 января 2019

Вам следует взглянуть на информацию о возврате в вашем облаке точек ввода.Поведение SMRF по умолчанию заключается в обработке последних из многих (ReturnNumber == NumberOfReturns> 1) и только (NumberOfReturns == 1) возвратов.Если он не находит точек, отвечающих этим критериям, то ему нечего обрабатывать.

Вы можете передать "returns":"first,last,intermediate,only" в качестве дополнительной опции на этапе filters.smrf, чтобы дать ему команду обработать все точки.

...