All Products
Search
Document Center

PolarDB:Model awan titik

Last Updated:Jul 02, 2025

Topik ini menjelaskan detail dan penggunaan model awan titik.

Pendahuluan

Ikhtisar

Model awan titik biasanya terdiri dari titik-titik yang dihasilkan ketika pemindai 3D memindai sebuah objek. Setiap titik berisi satu set koordinat 3D. Beberapa titik mungkin juga mencakup informasi RGB atau intensitas. Data awan titik mencakup koordinat spasial serta sejumlah besar titik yang disajikan dalam dimensi atribut yang kompleks.

GanosBase PointCloud adalah ekstensi untuk PostgreSQL (PolarDB for PostgreSQL). GanosBase PointCloud menyediakan fitur seperti kompresi data awan titik, dekompresi data awan titik, dan pengumpulan statistik atribut, sehingga memungkinkan PostgreSQL untuk menyimpan dan mengelola data awan titik secara efisien dan cepat. GanosBase PointCloud dapat bekerja dengan modul GanosBase lainnya untuk melakukan analisis spasial pada data awan titik.

Fitur

GanosBase PointCloud menyediakan tipe data PcPoint dan PcPatch. PcPoint adalah objek dasar awan titik yang mendukung impor dan ekspor data awan titik, kueri skema awan titik, serta kueri spasial data awan titik. PcPatch adalah kumpulan data awan titik yang mendukung pengemasan data awan titik, kompresi dan dekompresi paket data awan titik, kueri skema paket data awan titik, serta penyaringan paket data awan titik.

Skenario bisnis

GanosBase PointCloud umumnya digunakan dalam skenario berikut:

  • Pemodelan 3D dan Visualisasi

    GanosBase PointCloud dapat digunakan untuk menyimpan dan memproses data pemindaian 3D, serta melakukan pemodelan 3D dan visualisasi menggunakan data awan titik. Ini berguna di bidang-bidang seperti desain arsitektur, perencanaan perkotaan, dan perlindungan benda cagar budaya.

  • Robotik dan Mengemudi Otonom

    GanosBase PointCloud dapat digunakan untuk memproses data persepsi 3D dalam sistem robotik dan mengemudi otonom. Fitur-fitur seperti persepsi lingkungan, deteksi hambatan, dan perencanaan jalur dapat dicapai dengan menggunakan data awan titik.

  • Pengukuran Industri dan Jaminan Kualitas

    Dalam sektor industri, GanosBase PointCloud dapat digunakan untuk memproses data pengukuran 3D, seperti data bentuk permukaan produk yang diperoleh dengan menggunakan pemindai 3D. Data tersebut dapat digunakan untuk jaminan kualitas, desain produk, dan optimasi proses manufaktur.

Komponen

Tabel format awan titik

Data awan titik asli mungkin berisi beberapa nilai dimensi. Nilai-nilai yang berbeda memberikan tingkat presisi yang berbeda. Format dokumen skema yang digunakan oleh GanosBase PointCloud sama dengan yang digunakan oleh pustaka PDAL. Dokumen skema tersebut menjelaskan metadata termasuk dimensi setiap titik dan tipe data setiap dimensi.

Dokumen skema dan PCID yang sesuai disimpan dalam tabel pointcloud_formats.

Objek awan titik

Anda dapat menyimpan data tipe PcPoint atau PcPatch dalam tabel awan titik.

  • PcPoint adalah objek awan titik dasar. Setiap objek PcPoint berisi setidaknya koordinat x dan y, serta dapat mencakup lebih banyak dimensi.

    Berikut adalah contoh kode JSON untuk objek PcPoint:

    {
      "pcid": 1,
      "pt": [0.01, 0.02, 0.03, 4]
    }

    Perhatikan parameter berikut:

    • PCID: kunci asing yang menunjuk ke tabel pointcloud_formats.

    • pt: informasi awan titik dalam format yang dijelaskan oleh dokumen skema dalam tabel pointcloud_formats yang ditentukan oleh PCID.

  • Objek PcPatch adalah kumpulan objek PcPoint yang berlokasi berdekatan satu sama lain. Anda dapat menggunakan objek PcPatch untuk mengurangi jumlah baris dalam database.

    Berikut adalah contoh kode JSON untuk objek PcPatch:

    {
      "pcid": 1,
      "pts": [
        [0.02, 0.03, 0.05, 6],
        [0.02, 0.03, 0.05, 8]
      ]
    }

Gunakan tipe data berdasarkan kebutuhan bisnis Anda:

  • Untuk memproses data titik tunggal, gunakan tipe data PcPoint.

  • Untuk melakukan kueri dan operasi yang efisien pada sejumlah besar data awan titik, gunakan tipe data PcPatch.

Sistem referensi spasial

Sistem referensi spasial (SRS) mendefinisikan bagaimana objek PointCloud dikaitkan dengan lokasi tertentu di permukaan Bumi.

GanosBase menggunakan bilangan bulat, yang disebut SRID, untuk merujuk pada definisi SRS. Objek PointCloud menggunakan nilai SRID untuk mengaitkan dengan SRS.

Untuk informasi lebih lanjut, lihat Referensi Spasial.

Tampilan kolom data

GanosBase PointCloud menyediakan tampilan kolom awan titik, yang mirip dengan tampilan kolom geometri dalam model geometri.

Nama kolom

Tipe

Deskripsi

schema

varchar(256)

Skema tabel.

tabel

varchar(63)

Nama tabel.

kolom

varchar(63)

Nama kolom awan titik dalam tabel.

pcid

integer

ID dokumen skema yang sesuai dengan kolom awan titik, yang merupakan kunci asing yang menunjuk ke tabel pointcloud_formats.

srid

integer

SRID kolom awan titik, yang merupakan kunci asing yang menunjuk ke tabel spatial_ref_sys.

tipe

varchar(30)

Menggunakan tipe data PcPoint atau PcPatch.

Anda dapat menjalankan pernyataan berikut untuk menanyakan semua kolom data geometri dalam database saat ini:

SELECT * FROM pointcloud_columns;

Kompresi data

Dalam kebanyakan kasus, jumlah data awan titik sangat besar. GanosBase PointCloud memungkinkan Anda menentukan metode kompresi data dengan menambahkan baris berikut ke definisi dokumen skema:

<pc:metadata>
  <Metadata name="compression"> Metode kompresi </Metadata>
</pc:metadata>

Metode kompresi berikut didukung:

  • Tidak ada: Data tidak dikompresi. Objek PcPoint dan PcPatch disimpan sebagai larik byte dengan menggunakan tipe dan format yang didefinisikan dalam dokumen skema. Ini adalah nilai default.

  • Dimensi: Objek PcPatch disimpan sebagai kumpulan larik data dimensi dengan metode kompresi yang sesuai diaktifkan. Nilai ini hanya berlaku untuk objek PcPatch. Objek PcPoint disimpan dengan cara yang sama seperti nilai Tidak ada.

  • Pengkodean panjang run: digunakan untuk dimensi dengan variabilitas rendah.

  • Penghapusan bit umum: digunakan untuk dimensi dengan variabilitas dalam rentang kecil.

  • Kompresi Deflate menggunakan zlib: digunakan untuk dimensi yang metode kompresi lainnya tidak berlaku.

  • LAZ atau LASZip: metode kompresi standar untuk data LIDAR.

Kompresi dimensi

Objek PcPatch berikut berisi empat dimensi dan enam titik:

{
  "pcid": 1,
  "pts": [
    [-126.99, 45.01, 1, 0],
    [-126.98, 45.02, 2, 0],
    [-126.97, 45.03, 3, 0],
    [-126.96, 45.04, 4, 0],
    [-126.95, 45.05, 5, 0],
    [-126.94, 45.06, 6, 0]
  ]
}

Setelah kompresi dimensi digunakan, objek PcPatch secara teori setara dengan objek berikut:

{
  "pcid": 1,
  "dims": [
    [-126.99, -126.98, -126.97, -126.96, -126.95, -126.94],
    [45.01, 45.02, 45.03, 45.04, 45.05, 45.06],
    [1, 2, 3, 4, 5, 6],
    [0, 0, 0, 0, 0, 0]
  ]
}

Untuk objek PcPatch ukuran kecil dari objek PcPoint yang mencakup area serupa, rasio kompresi kompresi dimensi antara 3:1 dan 5:1.

Panduan cepat

Ikhtisar

Ikuti petunjuk untuk menggunakan mesin GanosBase PointCloud, termasuk pembuatan ekstensi, definisi skema awan titik, pembuatan tabel, penyisipan data, dan perhitungan atribut.

Sintaksis

  • Buat ekstensi

    CREATE extension ganos_pointcloud cascade;
    CREATE extension ganos_pointcloud_geometry cascade;
    Catatan

    Instal ekstensi dalam mode publik untuk menghindari masalah izin.

    CREATE extension ganos_pointcloud WITH schema public;
    CREATE extension ganos_pointcloud_geometry WITH schema public;
  • Definisikan skema awan titik

    Sisipkan skema dalam format XML ke tabel pointcloud_formats yang dibuat secara default. Skema tersebut mendefinisikan dimensi atribut awan titik, serta ukuran data, tipe, nama, dan deskripsi setiap dimensi.

    INSERT INTO pointcloud_formats (pcid, srid, schema) VALUES (1, 4326,
    '<?xml version="1.0" encoding="UTF-8"?>
    <pc:PointCloudSchema xmlns:pc="http://pointcloud.org/schemas/PC/1.1"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <pc:dimension>
        <pc:position>1</pc:position>
        <pc:size>4</pc:size>
        <pc:description>Koordinat X sebagai integer panjang. Anda harus menggunakan
                        informasi skala dan offset header untuk
                        menentukan nilai ganda.</pc:description>
        <pc:name>X</pc:name>
        <pc:interpretation>int32_t</pc:interpretation>
        <pc:scale>0.01</pc:scale>
      </pc:dimension>
      <pc:dimension>
        <pc:position>2</pc:position>
        <pc:size>4</pc:size>
        <pc:description>Koordinat Y sebagai integer panjang. Anda harus menggunakan
                        informasi skala dan offset header untuk
                        menentukan nilai ganda.</pc:description>
        <pc:name>Y</pc:name>
        <pc:interpretation>int32_t</pc:interpretation>
        <pc:scale>0.01</pc:scale>
      </pc:dimension>
      <pc:dimension>
        <pc:position>3</pc:position>
        <pc:size>4</pc:size>
        <pc:description>Koordinat Z sebagai integer panjang. Anda harus menggunakan
                        informasi skala dan offset header untuk
                        menentukan nilai ganda.</pc:description>
        <pc:name>Z</pc:name>
        <pc:interpretation>int32_t</pc:interpretation>
        <pc:scale>0.01</pc:scale>
      </pc:dimension>
      <pc:dimension>
        <pc:position>4</pc:position>
        <pc:size>2</pc:size>
        <pc:description>Nilai intensitas adalah representasi integer
                        dari besaran pulsa kembali. Nilai ini opsional
                        dan spesifik sistem. Namun, selalu harus disertakan jika tersedia.</pc:description>
        <pc:name>Intensity</pc:name>
        <pc:interpretation>uint16_t</pc:interpretation>
        <pc:scale>1</pc:scale>
      </pc:dimension>
      <pc:metadata>
        <Metadata name="compression">dimensional</Metadata>
      </pc:metadata>
    </pc:PointCloudSchema>');
  • Tipe data awan titik

    -- Tipe data PcPoint
    CREATE type pcpoint(...);
    Informasi dimensi suatu titik didefinisikan oleh skema.
    Untuk tipe data PcPoint, setiap titik disimpan sebagai baris. 
    Misalnya, ST_MakePoint(1, ARRAY[2,3,4,0.5]) mengembalikan objek PcPoint.
    -- Tipe data PcPatch.
    CREATE type pcpatch(...);
    Objek PcPatch terdiri dari sekumpulan titik dan mendukung kompresi. Metode kompresi ditentukan dengan menggunakan parameter kompresi dalam skema.
    Anda dapat menggunakan objek PcPatch untuk mengompresi sekumpulan titik dan menyimpan data dalam satu baris untuk menghemat penyimpanan. Kueri spasial didukung. 
  • Buat tabel awan titik

    -- Tabel titik
    CREATE TABLE points (
        id SERIAL PRIMARY KEY,
        pt PCPOINT(1) -- (1) menunjukkan skema yang PCID-nya adalah 1 dalam tabel pointcloud_formats.
    );
    -- Tabel patch
    CREATE TABLE patches (
        id SERIAL PRIMARY KEY,
        pa PCPATCH(1)
    );
  • Sisipkan data tipe PcPoint.

    INSERT INTO points (pt)
    SELECT ST_MakePoint(1, ARRAY[x,y,z,intensity])
    FROM (
      SELECT
      -127+a/100.0 AS x,
        45+a/100.0 AS y,
             1.0*a AS z,
              a/10 AS intensity
      FROM generate_series(1,100) AS a
    ) AS values;
    SELECT ST_MakePoint(1, ARRAY[-127, 45, 124.0, 4.0]);
    -------------------------
    010100000064CEFFFF94110000703000000400
    SELECT ST_AsText('010100000064CEFFFF94110000703000000400'::pcpoint);
    -------------------------
    {"pcid":1,"pt":[-127,45,124,4]}
  • Sisipkan data tipe PcPatch.

    INSERT INTO patches (pa)
    SELECT ST_Patch(pt) FROM points 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]
    ]}
  • Hitung nilai rata-rata semua dimensi atribut dalam objek PcPatch.

    SELECT ST_AsText(ST_PatchAvg(pa)) FROM patches WHERE id = 7;
    -------------------------
    {"pcid":1,"pt":[-126.46,45.54,54.5,5]}
  • Hapus ekstensi (opsional)

    DROP extension ganos_pointcloud_geometry;
    DROP extension ganos_pointcloud cascade;

Pernyataan SQL

Untuk informasi lebih lanjut, lihat Referensi SQL Awan Titik.