【问题标题】:Extracting LiDAR ground points within radius from XY position using Python?使用Python从XY位置提取半径内的LiDAR地面点?
【发布时间】:2018-11-14 09:39:15
【问题描述】:

我通过单次扫描获得了地面 LiDAR 点云。我导入了点云(.las 文件)并创建了 GeoPandas 数据框,包括每个点的 XY 坐标。有人可以给我指导如何使用 Python 3x 从扫描位置(X = 0,Y = 0)提取半径 20 米内的点。

【问题讨论】:

    标签: python extract geopandas lidar


    【解决方案1】:

    我建议使用PDAL 并开发pipeline 来实施您的工作流程。你可以轻松install PDAL via Conda

    使用 PDAL,您可以crop 将点保留在指定点的 2D 或 3D 半径内(分别使用 distancepoint 选项)。 PDAL 还有像SMRFPMF 这样的接地滤波器。

    我想您要使用的 basic 管道是这样的,尽管您可能需要根据您的数据对其进行调整或设置一些高级选项。

    {
        "pipeline":[
            {
                "type":"filters.crop",
                "point":"POINT (0 0)",
                "distance":20.0
            },
            {
                "type":"filters.smrf"
            }
        ]
    }
    

    一旦你安装了 PDAL 并弄清楚你的处理管道需要是什么样子,你也可以在 Python 中execute it,最终结果是一个 Numpy 数组。

    更新

    SMRF 过滤器的建议用法对点进行分类,但不提取它们。您需要使用 PDAL 或 Python 通过逐点检查 Classification 值来提取地面返回,其中值 2 表示地面返回。

    更新

    前面提到的例子,用 Python 显示,在 cmets 中讨论过。

    import pdal
    
    json = """{
        "pipeline":[
            "/path/to/input.laz",
            {
                "type":"filters.crop",
                "point":"POINT (0 0)",
                "distance":20.0
            },
            {
                "type":"filters.smrf"
            },
            "/path/to/output.laz"
        ]
    }"""
    
    pipeline = pdal.Pipeline(json)
    pipeline.validate()
    pipeline.execute()
    

    【讨论】:

    • 也许@Sher 这里还有其他事情发生,但至少有一个问题是你写的是POINT (1000, 2000) 而不是POINT(1000 2000)(没有逗号)。
    • 这似乎是您尝试将路径传递给 JSON 文件的第一个示例。那是行不通的。有关示例,请参见 pdal.io/python.html#extend
    • 您的管道不正确(无效的 JSON)。我看到的两个问题。您的阅读器阶段缺少 filename 键(它只列出了值)。此外,读取器和写入器中的路径都不正确 - 斜杠应该颠倒(这表明两个文件都位于根目录中)。
    • 它真的在运行@Sher吗?据我所知,您已经创建并可能验证了管道。您的最终命令应该打印 True 表明管道是有效的,但您仍然没有执行它。也尝试运行pipeline.execute()
    • 非常感谢@chambbj。添加pipeline.execute() 后,它现在正在运行并按预期创建子集。
    猜你喜欢
    • 2014-04-28
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多