このトピックでは、点群データの詳細と使用方法について説明します。 点群データは、3Dスキャナが物体を走査するときに生成される点を含む。 各点は、3D座標のセットを含む。 いくつかの点は、RGB情報または強度を含み得る。 点群データは、空間座標と、複雑な属性次元で提示される多数の点とを含む。
概要
Ganos PointCloudはPostgreSQLのプラグインです。 Ganos PointCloudは、点群データの圧縮、点群データの解凍、属性統計の収集などの機能を提供し、PostgreSQLが点群データを効率的かつ迅速に保存および管理できるようにします。 Ganos PointCloudはGanos Geometryと連携して、点群データの空間解析を実行できます。
点群データ型
点群データのタイプは、pcpointおよびpcpatchを含む。 pcpointデータ型の場合、各ポイントは行として格納されます。 点のディメンションは、点群スキーマで定義されます。 pcpatchデータ型の場合、多数のポイントがセットとして格納されます。 pcpatchデータ型の点群データは空間クエリをサポートし、ストレージ使用量を減らすために圧縮することができます。 点群スキーマの圧縮パラメータは、点群データを圧縮するために使用される方法を指定する。
点群スキーマ
pointcloud_formatsテーブルは、ポイントクラウドスキーマを格納します。 各スキーマには、点群オブジェクトの属性ディメンションと各ディメンションに関する情報が含まれています。 寸法情報は、サイズ、タイプ、名前、および説明を含む。
入門ガイド
- Ganos PointCloudを有効にします。
拡張ganos_pointcloudカスケードを作成します。拡張ganos_pointcloud_geometryカスケードを作成します。
- 点群スキーマを挿入します。
INSERT INTO pointcloud_formats (pcid、srid、schema) VALUES (1、4326、'<?xml version="1.0" encoding="UTF-8"?> <pc:PointCloudSchema xmlns:pc="http://example.org/schemas/PC/1.1" xmlns:xsi="http://www.example.org/2001/XMLSchema-instance"> <pc: ディメンション> <pc:position>1</pc:position> <pc: サイズ> 4</pc: サイズ> <pc:description> 長整数としてのX座標。 を使用する必要があります。 ヘッダーのスケールとオフセット情報 ダブル値を決定します。</pc:description> <pc:name>X</pc:name> <pc:interpretation>int32_t</pc:interpretation> <pc:scale>0.01</pc:scale> </pc:dimension> <pc: ディメンション> <pc:position>2</pc:position> <pc: サイズ> 4</pc: サイズ> <pc:description> 長い整数としてのY座標。 を使用する必要があります。 ヘッダーのスケールとオフセット情報 ダブル値を決定します。</pc:description> <pc:name>Y</pc:name> <pc:interpretation>int32_t</pc:interpretation> <pc:scale>0.01</pc:scale> </pc:dimension> <pc: ディメンション> <pc:position>3</pc:position> <pc: サイズ> 4</pc: サイズ> <pc:description> 長い整数としてのZ座標。 を使用する必要があります。 ヘッダーのスケールとオフセット情報 ダブル値を決定します。</pc:description> <pc:name>Z</pc:name> <pc:interpretation>int32_t</pc:interpretation> <pc:scale>0.01</pc:scale> </pc:dimension> <pc: ディメンション> <pc:position>4</pc:position> <pc: サイズ> 2</pc: サイズ> <pc:description> intensityの値は整数表現です。 パルスリターンの大きさ。 この値はオプションです。 そしてシステム特定。 しかし、それは常にあるべきです 利用可能な場合は含まれます。</pc:description> <pc:name> 強度 </pc:name> <pc:interpretation>uint16_t</pc:interpretation> <pc:scale>1</pc:scale> </pc:dimension> <pc: メタデータ> <Metadata name="compression">dimensional</Metadata> </pc: メタデータ> </pc:PointCloudSchema>');
- 点群テーブルを作成します。
-- pcpointデータ型を使用します。 テーブルポイントの作成 ( idシリアル基本キー、 pt PCPOINT (1) ); -- pcpatchデータ型を使用します。 テーブルパッチを作成する ( idシリアル基本キー、 pa PCPATCH (1) );
- pcpointデータ型のデータを挿入します。
INSERT INTOポイント (pt) SELECT ST_MakePoint(1, ARRAY[x,y,z,intensity]) から ( SELECT -127 + a/100.0 AS x、 45 + a/100.0としてy、 1.0 * a AS z、 強度としてa/10 FROM generate_series(1,100) AS a ) AS値; SELECT ST_MakePoint(1, ARRAY[-127, 45, 124.0, 4.0]); ------------------------- 010100000064CEFFFF94110000703000000400 SELECT ST_AsText('010100000064CEFFFF94110000703000000400'::pcpoint); ------------------------- null
- pcpatchデータ型のデータを挿入します。
INSERT INTOパッチ (pa) SELECT ST_Patch(pt) FROMポイントGROUP BY id/10; SELECT ST_AsText(ST_MakePatch(1, ARRAY[-126.99,45.01,1,0, -126.98,45.02,2,0, -126.97,45.03,3,0]])); ------------------------- {"pcid":1,"pts":[ [-126.99、45.01、1,0] 、[-126.98、45.02、2,0] 、[-126.97、45.03、3,0] ]}
- pcpatchオブジェクト内のすべての属性寸法の平均値を計算します。
SELECT ST_AsText(ST_PatchAvg(pa)) パッチからWHERE id = 7; ------------------------- null
- Ganos PointCloudを無効にします。
ドロップ拡張ganos_pointcloud_geometry; ドロップ拡張ganos_pointcloudカスケード;
参考資料
詳細については、「点群 SQL リファレンス」をご参照ください。