[pdal] Merging buffered tiles

Eric Robeck erobeck at gmail.com
Thu May 3 08:05:51 PDT 2018


Howard / Mike,

Thanks for your feedback. Based on your recommendation, I built a pipeline
that reads all 24 input tiles, crops each to non-overlapping bounding
boxes, merges, and reprojects the results prior to writing the composite
LAZ file.

The pipeline works and the output file looks great. I can't find any
obvious errors or omissions. However, PDAL returns the following error
message when writing the file, repeated 24 times (one per input file):

*(pdal pipeline Error) writers.las: Attempting to write
'C:/data/forest_park/mcc/mcc_merge_UTM (s-1_5, t-0_3).laz' with multiple
point spatial references.*

Should I be worried about this error? Is there any way to structure my JSON
pipeline to prevent it from occurring? The full pipeline is copied below.

Thanks,
Eric

{
  "pipeline":
  [
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_1 (s-1_5,
t-0_3).las",
        "tag":"tile_1"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_2 (s-1_5,
t-0_3).las",
        "tag":"tile_2"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_3 (s-1_5,
t-0_3).las",
        "tag":"tile_3"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_4 (s-1_5,
t-0_3).las",
        "tag":"tile_4"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_5 (s-1_5,
t-0_3).las",
        "tag":"tile_5"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_6 (s-1_5,
t-0_3).las",
        "tag":"tile_6"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_7 (s-1_5,
t-0_3).las",
        "tag":"tile_7"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_8 (s-1_5,
t-0_3).las",
        "tag":"tile_8"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_9 (s-1_5,
t-0_3).las",
        "tag":"tile_9"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_10 (s-1_5,
t-0_3).las",
        "tag":"tile_10"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_11 (s-1_5,
t-0_3).las",
        "tag":"tile_11"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_12 (s-1_5,
t-0_3).las",
        "tag":"tile_12"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_13 (s-1_5,
t-0_3).las",
        "tag":"tile_13"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_14 (s-1_5,
t-0_3).las",
        "tag":"tile_14"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_15 (s-1_5,
t-0_3).las",
        "tag":"tile_15"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_16 (s-1_5,
t-0_3).las",
        "tag":"tile_16"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_17 (s-1_5,
t-0_3).las",
        "tag":"tile_17"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_18 (s-1_5,
t-0_3).las",
        "tag":"tile_18"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_19 (s-1_5,
t-0_3).las",
        "tag":"tile_19"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_20 (s-1_5,
t-0_3).las",
        "tag":"tile_20"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_21 (s-1_5,
t-0_3).las",
        "tag":"tile_21"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_22 (s-1_5,
t-0_3).las",
        "tag":"tile_22"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_23 (s-1_5,
t-0_3).las",
        "tag":"tile_23"
    },
    {
        "type":"readers.las",
        "filename":"C:/data/forest_park/mcc/forest_park_sp_tile_24 (s-1_5,
t-0_3).las",
        "tag":"tile_24"
    },
    {
        "inputs":"tile_1",
      "type":"filters.crop",
      "bounds":"([737943,738600],[4280246,4281046])",
      "tag":"crop_1"
    },
    {
        "inputs":"tile_2",
      "type":"filters.crop",
      "bounds":"([737143,737943],[4280246,4281046])",
      "tag":"crop_2"
    },
    {
        "inputs":"tile_3",
      "type":"filters.crop",
      "bounds":"([737943,738600],[4279446,4280246])",
      "tag":"crop_3"
    },
    {
        "inputs":"tile_4",
      "type":"filters.crop",
      "bounds":"([737143,737943],[4279446,4280246])",
      "tag":"crop_4"
    },
    {
        "inputs":"tile_5",
      "type":"filters.crop",
      "bounds":"([737943,738600],[4279000,4279446])",
      "tag":"crop_5"
    },
    {
        "inputs":"tile_6",
      "type":"filters.crop",
      "bounds":"([737143,737943],[4279000,4279446])",
      "tag":"crop_6"
    },
    {
        "inputs":"tile_7",
      "type":"filters.crop",
      "bounds":"([737943,738600],[4281046,4281300])",
      "tag":"crop_7"
    },
    {
        "inputs":"tile_8",
      "type":"filters.crop",
      "bounds":"([737143,737943],[4281046,4281300])",
      "tag":"crop_8"
    },
    {
        "inputs":"tile_9",
      "type":"filters.crop",
      "bounds":"([734385,734743],[4279446,4280246])",
      "tag":"crop_9"
    },
    {
        "inputs":"tile_10",
      "type":"filters.crop",
      "bounds":"([734385,734743],[4280246,4281046])",
      "tag":"crop_10"
    },
    {
        "inputs":"tile_11",
      "type":"filters.crop",
      "bounds":"([734743,735543],[4279446,4280246])",
      "tag":"crop_11"
    },
    {
        "inputs":"tile_12",
      "type":"filters.crop",
      "bounds":"([734743,735543],[4280246,4281046])",
      "tag":"crop_12"
    },
    {
        "inputs":"tile_13",
      "type":"filters.crop",
      "bounds":"([735543,736343],[4279446,4280246])",
      "tag":"crop_13"
    },
    {
        "inputs":"tile_14",
      "type":"filters.crop",
      "bounds":"([735543,736343],[4280246,4281046])",
      "tag":"crop_14"
    },
    {
        "inputs":"tile_15",
      "type":"filters.crop",
      "bounds":"([734385,734743],[4279000,4279446])",
      "tag":"crop_15"
    },
    {
        "inputs":"tile_16",
      "type":"filters.crop",
      "bounds":"([734743,735543],[4279000,4279446])",
      "tag":"crop_16"
    },
    {
        "inputs":"tile_17",
      "type":"filters.crop",
      "bounds":"([735543,736343],[4279000,4279446])",
      "tag":"crop_17"
    },
    {
        "inputs":"tile_18",
      "type":"filters.crop",
      "bounds":"([734385,734743],[4281046,4281300])",
      "tag":"crop_18"
    },
    {
        "inputs":"tile_19",
      "type":"filters.crop",
      "bounds":"([734743,735543],[4281046,4281300])",
      "tag":"crop_19"
    },
    {
        "inputs":"tile_20",
      "type":"filters.crop",
      "bounds":"([735543,736343],[4281046,4281300])",
      "tag":"crop_20"
    },
    {
        "inputs":"tile_21",
      "type":"filters.crop",
      "bounds":"([736343,737143],[4279446,4280246])",
      "tag":"crop_21"
    },
    {
        "inputs":"tile_22",
      "type":"filters.crop",
      "bounds":"([736343,737143],[4280246,4281046])",
      "tag":"crop_22"
    },
    {
        "inputs":"tile_23",
      "type":"filters.crop",
      "bounds":"([736343,737143],[4279000,4279446])",
      "tag":"crop_23"
    },
    {
        "inputs":"tile_24",
      "type":"filters.crop",
      "bounds":"([736343,737143],[4281046,4281300])",
      "tag":"crop_24"
    },
    {

"inputs":["crop_1","crop_2","crop_3","crop_4","crop_5","crop_6","crop_7","crop_8","crop_9","crop_10","crop_11","crop_12","crop_13","crop_14","crop_15","crop_16","crop_17","crop_18","crop_19","crop_20","crop_21","crop_22","crop_23","crop_24"],
      "type":"filters.merge",
      "tag":"merge_tiles"
    },
    {
        "inputs":"merge_tiles",
      "type":"filters.reprojection",
      "tag":"reproject_tiles",
      "in_srs":"EPSG:26915",
      "out_srs":"EPSG:32615"
    },
    {
        "inputs":"reproject_tiles",
      "type":"writers.las",
      "filename":"C:/data/forest_park/mcc/mcc_merge_UTM (s-1_5, t-0_3).laz"
    }
  ]
}



On Sun, Apr 29, 2018 at 10:19 AM Howard Butler <howard at hobu.co> wrote:

>
>
> On 4/28/18 5:03 PM, Eric Robeck wrote:
> > Is there a way within PDAL to merged buffered tiles with a constant
> buffer
> > width, while filtering out only the buffers from each tile?
> >
> > For context, I am using an external software to modify a large point
> cloud.
> > Due to memory constraints, I first tiled the data using the "splitters"
> > filter, but included a 10 m buffer to minimize edge effects. Now that the
> > data are processed, I want to merge them back into a single file.
>
> You could use filters.assign to set a "buffer" value for the points that
> are in your buffer ring (or the ones that aren't), and then use
> filters.range to cull out points that have the "!buffer" classification
> before you go back to merge them altogether. It would be laborious, but
> you could get the job done.
>
> Additionally, Connor Manning of Hobu demonstrated a workflow at FOSS4G
> 2017 [1] that is very similar to what you're doing except it is based on
> Greyhound and Entwine for the data management (and PDAL for the
> processing). The goal is to be able to put back information into an
> Entwine tree and not be constrained by a fixed tiling scheme while
> processing. It's all very much a prototype at the moment, but dynamic
> workflows based on adaptive tiling schemes is something we are actively
> working on.
>
> Howard
>
>
> [1] https://vimeo.com/245073446
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20180503/f36e3194/attachment-0001.html>


More information about the pdal mailing list