29.13 SDO_PC_PKG.PC_DIFFERENCE
Format
SDO_PC_PKG.PC_DIFFERENCE(
pc_table1 IN VARCHAR2,
pc_column1 IN VARCHAR2,
id_column1 IN VARCHAR2,
id1 IN VARCHAR2,
pc_table2 IN VARCHAR2,
pc_column2 IN VARCHAR2,
id_column2 IN VARCHAR2,
id2 IN VARCHAR2,
result_table_name IN VARCHAR2,
tol IN NUMBER,
query_geom IN MDSYS.SDO_GEOMETRY DEFAULT NULL
) DETERMINISTIC PARALLEL_ENABLE;
Description
Compares two point clouds, that may or may not have neighbors in the other point cloud, and returns the output difference as a new point cloud.
Parameters
- pc_table1
-
Name of the table that has the
SDO_POINT_CLOUD
column andID
column defined for the first point cloud. - pc_column1
-
Column name of the
SDO_POINT_CLOUD
object in the table provided forpc_table1
parameter. - id_column1
-
Column name for the
ID
column in the table provided forpc_table1
parameter. - id1
-
ID
value. - pc_table2
-
Name of the table that has the
SDO_POINT_CLOUD
column andID
column defined for the second point cloud. - pc_column2
-
Column name of the
SDO_POINT_CLOUD
object in the table provided forpc_table2
parameter. - id_column2
-
Column name for the
ID
column in the table provided forpc_table2
parameter. - id2
-
ID
value. - result_table_name
-
Name of the table for storing the output difference as a new point cloud data.
- tol
-
A length unit of measure that determines the neighborhood of a point.
- query_geom
-
Query geometry.
Usage Notes
The procedureSDO_PC_PKG.PC_DIFFERENCE
can be used to compare two point clouds by
identifying points in either without close neighbors in the other.
For example, consider two point clouds, A and B. A point in point cloud A without a geometric neighbor in point cloud B may signify:
- A real change, such as a car that was not there, previously.
- A change due to an obstructed spot not reached by the laser.
- Combination of the preceding two scenarios - a newly arrived car may register in the second point cloud, while it obscures a section of the building wall or a light pole. A portion of the wall may appear to have disappeared.
- Growing canopy cover can make some points disappear, to essentially reappear a meter higher. Difference detection may consider them as one feature disappearing and another appearing.
Therefore, in the context of multiple point clouds, detecting differences between two point clouds can be very useful to determine:
- Weekly progress at a development or infrastructure project.
- Damage from natural or man-made disasters.
- Change in canopy cover or other slow-moving processes.
- Discovery of human activity, such as real estate changes or tree felling.
In the procedure SDO_PC_PKG.PC_DIFFERENCE
, the two point
clouds, A and B, are identified by the following input parameters:
- Point Cloud A:
pc_table1
,pc_column1
,id_column1
,id1
- Point Cloud B:
pc_table2
,pc_column2
,id_column2
,id2
It is important that the two point clouds have the same SRID. A coordinate transformation between SRIDs is supported.
The output difference is a new
point cloud which is a simple table with columns VAL_Di
.
Examples
The following example generates the difference between two point clouds and the
output point cloud data is stored in the table PC1M2_B
.
SQL> call
2 sdo_pc_pkg.pc_difference(
3 pc_table1 => 'PCS',
4 pc_column1 => 'PC',
5 id_column1 => 'ID',
6 id1 => '1',
7 pc_table2 => 'PCS',
8 pc_column2 => 'PC',
9 id_column2 => 'ID',
10 id2 => '2',
11 result_table_name => 'PC1M2_B',
12 tol => 1,
13 query_geom => SDO_GEOMETRY(
14 2003,
15 27700,
16 NULL,
17 SDO_ELEM_INFO_ARRAY(
18 1, 1003, 3),
19 SDO_ORDINATE_ARRAY(
20 0, 0,
21 1000, 1000))
);
Call completed.
You can then query the ordinates as shown:
SQL> select * from pc1m2_b order by val_d1, val_d2, val_d3;
VAL_D1 VAL_D2 VAL_D3
---------- ---------- ----------
1 1 5
1 row selected.
Parent topic: SDO_PC_PKG Package (Point Clouds)