PTCLD2WF Process
To access this process:
-
ribbon
-
Solids ribbon >> Create >> Point Cloud Solid
See this process in the Command Table .
Process Overview
PTCLD2WF reconstructs surface data files from input point cloud files.
A single input points file containing surveyed point data is expected. Point density and arrangement can be uniform or irregular. Points can optionally be declustered and, if normal calculation is required, these stages can be performed independently of surfacing or as one combined operation, depending on @RUNMODE.
The Point Reconstruction Console provides a workflow-based approach to setting up parameters for PTCLD2WF. It also offers automated file loading and scenario management and access to an additional reconstruction method (you can also record PTCLD2WF macros if one of the supported methods is selected). Unless you require a process for your point reconstruction project, it is a recommended alternative.
PTCLD2WF processing involves up to 3 phases, depending on the wireframe surfacing method chosen:
-
Input points are declustered to decrease point density and encourage a more uniform point layout.
-
Input point data is appended with normal information, indicating the normal direction to be considered when specific surfacing methods are used. Not all methods require point normal calculation.
Normal data can also be extracted from the input points file if it is present.
-
A surface is interpolated between points using a combination of surface method and appropriate parameters.
In all cases, the input file is a Datamine (.dm) points file and the output files are a wireframe file pair.
Note: PTCLD2WF parameters can be dependent on other settings. For example, @DEPTH, @WIDTH, @SAMPNODE, @PTWEIGHT and @BOUNDTYP are only used if @WFMETHOD is 1 or 2. Similarly, if @WIDTH is greater than zero, @DEPTH is not used.
Another example: if @WFMETHOD is not 1, @BOUNDTYP is not used.
Declustering Raw Point Cloud Data
Raw point cloud data can be denser than required for a suitable surface reconstruction.
Declustering options are:
-
Random point removal (to achieve a target @SSDIST number of points in the declustered output file). This is @SSMETHOD=1.
Warning: Depending on the arrangement of your input points, random declustering can have a significant (possibly adverse) effect on your output wireframe. Where input points are generally regularly spaced in a grid pattern, random declustering can be effective, whereas if the variability of point spacing is high throughout the data, random declustering may occasionally generate undesirable results. With this subsampling option, the output wireframe will not be reliably reproducible. In cases where data inputs are highly irregular, or a reproducible wireframe output is required, @SSMETHOD 2 or 3 is recommended.
-
To achieve a target @SSDIST distance between points. This is @SSMETHOD=2. Subsampling performed using this method is static, that is, it will always generate the same declustered point data, given the same input data. A higher value tends to produce smaller declustered data (= fewer points).
-
To decluster to a specific octree depth, again provided by @SSDIST). This is @SSMETHOD=3. A higher value tends to produce larger declustered data (= more points). This is also a static declustering method.
See DECLUST.
Computing Point Normals
Point normal computation relies on the following parameters: @NNEIGHBS and @RADIUS. An explanation of these parameters can be found in the table further below.
Point normal computation is only required if @WFMETHOD is either 1 or 2. Surface reconstruction will not complete if either method is specified and point normal data is not available. If @WFMETHOD is anything other than 1 or 2, all point normal computation parameters are ignored.
Note: The Balanced point reconstruction method available via the Point Reconstruction Console is not powered by the PTCLD2WF process and has its own surface calculation method with additional parameters.
Point normals can be computed for any input point data, either as an independent task (@RUNMODE=2) or as part of the full surface reconstruction process (@RUNMODE=4). Alternatively, if normal data is already available for the input point cloud, *NORMALX, *NORMALY and *NORMALZ can be mapped beforehand.
Note: If normal attributes are specified but a run subsequently includes normal computation (e.g. @RUNMODE is either 2 or 4), computed normals will be used in preference to mapped fields.
See Point Reconstruction Methods and Tips.
Input Files
Name |
Description |
I/O Status |
Required |
Type |
IN |
Input point cloud data file used to create the wireframe surface. |
Input |
Yes |
Points |
Output Files
Name |
Description |
I/O Status |
Required |
Type |
POINTS | Output file prefix for subsampled points and points with normals. A file containing subsampled points will have an _SS suffix. Points with normals will have a _SSNORM suffix. This must be specified if @RUNMODE = 1,2 or 4. | Output |
Yes, if @RUNMODE=1, 2 or 4. Otherwise, no. |
Points |
WIRETR | Output surface wireframe triangle file. | Output | Yes | Wireframe Points |
WIREPT |
Output surface wireframe point file. |
Output |
Yes |
Wireframe Triangles |
Fields
Name |
Description |
Source |
Required |
Type |
Default |
X / Y / Z |
Name of X/Y/Z coordinate field in *IN. |
IN |
Yes |
Numeric |
Undefined |
NORMAL X/Y/Z |
Name of X normal field in input file IN. Only used if @RUNMODE = 3 (calculate surface) |
IN |
No |
Numeric |
Undefined |
RED |
Name of red colour field in input file IN. Only used if @WFMETHOD is 1 or 2. |
IN |
No |
Any |
Undefined |
GREEN |
Name of green colour field in input file IN. Only used if @WFMETHOD is 1 or 2. |
IN |
No |
Any |
Undefined |
BLUE |
Name of blue colour field in input file IN. Only used if @WFMETHOD is 1 or 2. |
IN |
No |
Any |
Undefined |
Parameters
Name |
Description |
Required |
Default |
Range |
Values |
RUNMODE |
Specify the functions for the process to execute:
|
Yes |
1 |
1,4 |
1,2,3,4 |
SSMETHOD |
The method to use for subsampling.
|
Yes if @RUNMODE=1 or 4, otherwise no. |
2 |
1,3 |
1,2,3 |
SSDIST |
A parameter controlling the extent to which subsampling is performed and depends on the chosen @SSMETHOD.
|
Yes if @RUNMODE=2 or 4, otherwise no. | 0.5 | Undefined | Undefined |
NNEIGHBS | The number of neighbours used when orienting the normals using a spanning tree. Normals are not required if @WFMETHOD is 3,4 or 5. |
No unless: @RUNMODE=2 or; @RUNMODE=4 and @WFMETHOD = 1 or 2 |
Undefined | Undefined | Undefined |
RADIUS |
Where @WFMETHOD = 1 or 2: the neighborhood radius used to compute normals. The bigger the radius, the more points will be used to compute the local surface model, resulting in generally smoother normals but also in a longer process time. A value of zero will allow the program to compute a radius value automatically, based on the mean average inter-point distance. Where @WFMETHOD = 4, this represents the radius of the sphere used to generate the surface by rolling across the input points. Not used if @WFMETHOD Is 3 or 5. |
Yes if @WFMETHOD = 1, 2 or 4 | Undefined | Undefined | Undefined |
DEPTH |
The octree depth to be used in surface construction. A higher number gives greater resolution but will be slower and use more memory. Should ideally be between 4 and 24. Values larger than 10 are likely to be process intensive. This parameter is ignored if WIDTH is specified as greater than zero. Not considered if @WFMETHOD 3,4 or 5. |
No | Undefined | Undefined | Undefined |
WIDTH |
This floating point value specifies the target width of the finest level octree cells used in surface reconstruction. If set to zero then DEPTH is used to control octree size. Not considered if @WFMETHOD 3,4 or 5. |
No | Undefined | Undefined | Undefined |
WFMETHOD |
The method to use to construct the wireframe surface from the set of points with oriented normals.
|
Yes | 5 | 1,5 | 1,2,3,4,5 |
SAMPNODE |
Number of samples per node during Reconstruction. This floating point value specifies the minimum number of sample points that should fall within an octree node as the octree construction is adapted to sampling density. For noise-free samples, small values in the range [1.0 - 5.0] can be used. For more noisy samples, larger values in the range [15.0 - 20.0] may be needed to provide a smoother, noise-reduced, reconstruction. Only used if @WFMETHOD is 1 or 2. |
No | Undefined | Undefined | Undefined |
PTWEIGHT | The importance that interpolation of the point samples is given in the formulation of the screened Poisson equation. This is a floating point number. Only used if @WFMETHOD is 1 or 2. | No | Undefined | Undefined | Undefined |
Example
!START M1
# - Use !LOCDBOFF to look for files outside the local folder
# - Use local files by deleting the next line or use !LOCDBON
!LOCDBOFF
!PTCLD2WF &IN(pointcloudCMS1),
&POINTS(pointsout),
&WIRETR(comb1tr),
&WIREPT(comb1pt),*X(XPT),*Y(YPT),*Z(ZPT),@RUNMODE=1.0,
@SSMETHOD=3.0,@SSDIST=9.0,@MODEL=2.0,@NNEIGHBS=6.0,
@RADIUS=1.0,@DEPTH=12.0,@WIDTH=0.05,@WFMETHOD=2.0,
@SAMPNODE=6.0,@PTWEIGHT=10.0
!END