在Oracle 11g中构建点云数据类型
来源:互联网 发布:衬衫品牌 知乎 编辑:程序博客网 时间:2024/04/30 06:11
转载自:http://blog.csdn.net/creativemobile/article/details/11630941
1.发展历程
2处理流程
3存储模型
将逻辑结构从物理结构中分离出来(1)逻辑结构:
这些表含有一个类型为SDO_PC的列
包含一般的属性和所占用空间的单位数量
并且包含一个指向点云块表的指针
(2)物理结构:
“分块表”
包含点云块
可以是非常庞大的
在SDO_PC_BLK对象类型中定义结构
4创建点云表
点云表的数量没有限制支持由任何类型的字段组合
场景可以被任何属性所检索
并且场景具有空间幅度
CREATE TABLE LIDAR_SCENES (
SCENE_ID NUMBER PRIMARY KEY,
COLLECTION_TS TIMESTAMP,
DESCRIPTION CLOB,
... (any number of attributes) ...
POINT_CLOUD SDO_PC
);
5SDO_PC类型
PC_EXTENT是点云所占空间的单位数量需要一个空间索引以支持空间检索
属性
说明
BASE_TABLE
包含一个SDO_PC类型的列的表名称
BASE_TABLE_COL
SDO_PC类型的列的名称
PC_ID
点云ID
BLK_ID
包含点云中各块信息的表名称
PTN_PARAMS
点云分区的参数
PC_EXTENT
SDO_GEOMETRY对象展示点云的空间幅度(最小边界对象封闭点云中所有对象)
PC_TOL
点云中点的容差值
PC_TOT_DIMENSIONS
点云中维度的总数。包括空间维度和其他非空间维度,最大值为9
PC_DOMAIN
(目前未使用)
PC_VAL_ATTR_TABLES
SDO_STRING_ARRAY对象为点云指定任何值属性表的名称
PC_OTHER_ATTRS
XMLTYPE对象指定点云的任何其他属性
6创建点云分块表
使用SDO_PC_BLK类型在块ID上定义一个主键
使用SECUREFILE lobs(11g的新结构)
允许LOBs压缩(加密和删除重复)
CREATE TABLE PC_BLK_01 OF SDO_PC_BLK (
PRIMARY KEY (
OBJ_ID, BLK_ID
)
)
LOB(POINTS) STORE AS SECUREFILE
(COMPRESS HIGH NOCACHE NOLOGGING);
7SDO_PC_BLK类型
描述点的一块包含块的唯一标识
场景ID(OBJ_ID与PC_ID一致)和分块ID(BLK_ID)
属性
说明
OBJ_ID
点云对象ID
BLK_ID
块ID
BLK_EXTENT
块的空间幅度
BLK_DOMAIN
(目前未使用)
PCBLK_MIN_RES
在一个查询中可见块的最小分辨率
PCBLK_MAX_RES
在一个查询中可见块的最大分辨率
NUM_POINTS
POINTS BLOB中点的总数
NUM_UNSORTED_POINTS
POINTS BLOB中无序点的数量
PT_SORT_DIM
有序点的维度
POINTS
BLOB包含的点
8BLOB结构
BLOB包含一个存放点的数组各点编码
d 64位浮点数(d = 点的维度)
一个32位整型表示点数
一个32位整型表示分区数
将来:压缩格式
从块MBR的来源处存储坐标以作为偏移量
使用短整型
9初始化一个点云
(1)定义点云的结构和组织分辨率、维度、幅度
块的容量
(2)为各点云指定块的位置
点块表的名称
表的唯一标识
INSERT INTO LIDAR_SCENES (
SCENE_ID, POINT_CLOUD)
VALUES (
1,
SDO_PC_PKG.INIT (
BASETABLE => 'LIDAR_SCENES',
BASECOL => 'POINT_CLOUD',
BLKTABLE => 'PC_BLK_01',
PTN_PARAMS => 'BLK_CAPACITY=1000',
PC_TOL => 0.005,
PC_TOT_DIMENSIONS => 3,
PC_EXTENT =>
SDO_GEOMETRY (2003, 4326, NULL,
SDO_ELEM_INFO_ARRAY (1, 1003, 3),
SDO_ORDINATE_ARRAY (-74, 40, -73, 41)
)
)
);
10加载一个点云
(1)从一个普通表中加载一个点云DECLARE
PC SDO_PC;
BEGIN
SELECT POINT_CLOUD INTO PC
FROM LIDAR_SCENES WHERE SCENE_ID = 1;
SDO_PC_PKG.CREATE_PC (PC, 'INPUT_POINTS');
END;
(2)用来输入的表的结构
(3)这个用来输入的表可以是文本文件,被关联成一个外部表使用
0 0
- 在Oracle 11g中构建点云数据类型
- 在Oracle 11g中构建点云数据类型
- Oracle 11g点云数据类型的构建和检索脚本
- Oracle 11g点云数据类型的构建和检索脚本
- Oracle 11g 数据类型
- Oracle 11g 数据类型
- Oracle 11g 数据类型
- 在CentOS7中安装Oracle 11g
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
- Oracle 10g数据类型
- Oracle 10g数据类型
- 菜鸟在Linux系统中安装Oracle 11G
- 在Oracle 11g中给scott用户解锁
- 在Oracle 11g中给scott用户解锁
- 在Oracle 11g中给scott用户解锁
- 如何在oracle 11g 中导出空表
- ORACLE中10g和11g之后版本在parallel ctas时的区别
- XML-Schema学习笔记
- iOS提交版本时苹果官方审核拒绝原因详解
- Scala中常见的容器 List
- java虚拟机性能监控与故障处理工具
- 常用的数据统计Sql 总结
- 在Oracle 11g中构建点云数据类型
- hdu 1796 How many integers can you find 容斥原理
- Linux命令(1):用户管理和文件管理
- MySQL5.7在win10 64位操作系统下的安装步骤
- C#控制台基础 helloworld之 用委托输出
- Android群英传学习笔记-AM&PM
- Windows Socket 异步编程(非阻塞)
- 程序员的生活,其实苦不堪言
- linux 平台下C语言创建文件