[pgpointcloud] How to create a PcPoint table in PostGIS?
Regina Obe
lr at pcorp.us
Wed Jun 28 11:18:35 PDT 2023
If you are talking about adding an additional column to the table, I see no reason why you shouldn’t be able to, just as you can have say multiple geometry or a geometry and geography column in same table.
or are you talking about adding an additional attribute to the pcpatch column? Such a change would be a bit more involved.
From: Neil Underhill [mailto:neil.underhill at gmail.com]
Sent: Wednesday, June 28, 2023 4:35 AM
To: Regina Obe <lr at pcorp.us>
Cc: pgpointcloud at lists.osgeo.org
Subject: Re: [pgpointcloud] How to create a PcPoint table in PostGIS?
Hello all,
A follow on question to the below... is it possible to add an additional column to data stored as a pgPointcloud ?
Reason I ask is that I am using the RANSAC algorithm to detect roof shapes (i.e. which Cartesian equation of a plane fits the most points).
Currently the algorithm will only find the plane equation which fits the biggest number of points in a point cloud. However there is usually more than one roof in a point cloud, so I would like to add a column to indicate that a point already belongs to a plane so the algorithm can exclude, re-reun and find the next biggest biggest plane, etc. etc., until a minimum threshold in area is reached.
I am thinking the new column should be either a binary flag, or a foreign key to a separate table of plane equations.
If the above is not possible, then I would assume that I need to dump out the pgPointcloud into a standard PostGIS point geometry table, where I can add additional column?
Thanks,
Neil
On Tue, 28 Mar 2023 at 21:08, Regina Obe <lr at pcorp.us <mailto:lr at pcorp.us> > wrote:
You can use the PC_Explode function to access individual points. It converts a patch into individual PcPoints.
https://pgpointcloud.github.io/pointcloud/functions/patchs.html#pc-explode
You can use the PC_PointN to access individual points by index number in the patch.
https://pgpointcloud.github.io/pointcloud/functions/patchs.html#pc-pointn
So for example to pick at random 3 points, you can do something like (NOT TESTED)
SELECT PC_PointN(pa, index) AS pcp
FROM patches AS p, PC_NumPoints(p.pa <http://p.pa> ) AS np
CROSS JOIN LATERAL (SELECT index FROM generate_series(1, np) AS index ORDER BY random() LIMIT 3) AS pi(index);
Hope that helps,
Regina
From: pgpointcloud [mailto:pgpointcloud-bounces at lists.osgeo.org] On Behalf Of Neil Underhill
Sent: Tuesday, March 28, 2023 12:47 PM
To: pgpointcloud at lists.osgeo.org <mailto:pgpointcloud at lists.osgeo.org>
Subject: [pgpointcloud] How to create a PcPoint table in PostGIS?
I have a .laz file with about 51m points in it (225 MB in size), and want to run a RANSAC algorithm to detect roof planes.
I would like to add the LIDAR data to a PostGIS database so I can interact with other geospatial layers (e.g. use a mask to filter the points to consider) and also access individual points to input into the algorithm.
I have been following the information here (https://pgpointcloud.github.io/pointcloud/concepts/objects.html) about the different Point Cloud Objects.
My question is, if I store the data as a PcPatch, will I be able to access the individual points (e.g. select three points at random, that may or may not be in the same patch) ?
If not, it seems I will need to store as PcPoint. If it's the latter, I am not clear how I create a database with PcPoint objects, as the example in the Quickstart (https://pgpointcloud.github.io/pointcloud/quickstart.html) only creastes a PcPatch table.
Thanks for any advice,
Neil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgpointcloud/attachments/20230628/16d4f950/attachment.htm>
More information about the pgpointcloud
mailing list