在Python中的PDAL中的filters.programmable中pdalargs的语法是什么?

时间:2017-05-11 13:19:45

标签: python point-clouds

我正在使用pdal和python,我正在尝试使用可编程过滤器。根据{{​​3}}我应该能够通过编写来解析我的python函数的其他输入参数(第141页)

{
    "pipeline":[
        "input.las",
        {
            "type":"filters.programmable",
            "module":"anything",
            "function":"filter",
            "source":"arguments.py",
            "pdalargs":"{\"factor\":0.3048,\"an_argument\":42, \"another\": \"a string\"}"
        },
        "output.las"
    ]
}

我试着复制粘贴这个(真的,我只更改了输入las文件的名称),并且我一直收到这个错误:

RuntimeError: JSON pipeline: Unable to parse pipeline:
* Line 13, Column 15
  Missing ',' or '}' in object declaration

我试着随意删除并插入"和\在pdalargs参数中,但我似乎无法正确使用语法。 (没有pdalargs就可以正常工作)

是否有更新或文档中没有的内容?语法实际上应该如何使用pdalargs?

1 个答案:

答案 0 :(得分:1)

我发现了如何更改语法。问题可能已经发生,因为我在jthon脚本中将json代码写为字符串。

无论如何,这种语法似乎有效:

jsonStr = """{
    "pipeline":[
        "input.las",
        {
            "type":"filters.programmable",
            "module":"anything",
            "function":"filter",
            "source":"arguments.py",
            "pdalargs": {"factor":0.3048,"an_argument":42, "another": "a string"}
        },
        "output.las"
    ]
}"""

希望如果其他人遇到同样的问题,这会有所帮助。