[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