Ikhtisar
Data raster terdiri dari matriks sel atau piksel yang disusun dalam baris dan kolom (atau grid). Setiap sel berisi nilai yang merepresentasikan informasi, seperti suhu.
Data raster dapat berupa foto udara digital, citra satelit, gambar digital, atau peta hasil pemindaian.
GanosBase mengimplementasikan model raster dalam AnalyticDB for PostgreSQL. Hal ini memungkinkan AnalyticDB for PostgreSQL untuk menyimpan dan menganalisis data raster secara efisien menggunakan teknologi dan metode basis data.
Panduan Cepat
Buat ekstensi.
Create extension ganos_spatialref; Create extension ganos_geometry; Create Extension Ganos_Raster;Buat tabel raster.
-- Tentukan kolom raster_obj sebagai kolom distribusi tabel. Create Table raster_table(id integer, raster_obj raster) DISTRIBUTED BY (raster_obj);Impor data raster dari Object Storage Service (OSS).
Insert into raster_table Values(1, ST_ImportFrom('chunk_table','OSS://<id>:<key>@oss-cn.aliyuncs.com/mybucket/data/my_image.tif')), (2, ST_CreateRast('OSS://<id>:<key>@oss-cn.aliyuncs.com/mybucket/data/my_image.tif'));Kueri informasi objek raster.
Select ST_Height(raster_obj),ST_Width(raster_obj) From raster_table Where id = 1; st_height ----------- 1241 (1 rows)Buat piramida.
DO $$ declare rast raster; begin select raster_obj into rast from raster_table where id = 1; rast = st_buildpyramid(rast); update raster_table set raster_obj = rast where id = 1; end; $$ LANGUAGE 'plpgsql'; DO $$ declare rast raster; begin select raster_obj into rast from raster_table where id = 2; rast = st_buildpyramid(rast, -1, 'Near', 'chunk_table'); update raster_table set raster_obj = rast where id = 2; end; $$ LANGUAGE 'plpgsql';Hitung level piramida optimal berdasarkan rentang koordinat dunia, lebar, dan tinggi viewport.
Select ST_BestPyramidLevel(rast, '((128.0, 30.0),(128.5, 30.5))', 800, 600) from raster_table where id = 1; --------------------- 3Ambil matriks piksel dari rentang koordinat yang ditentukan dari objek raster.
DO $$ declare rast raster; begin select raster_obj into rast from raster_table where id = 1; rast = st_buildpyramid(rast); Select ST_Clip(rast, 0, '((128.980,30.0),(129.0,30.2))', 'World'); end; $$ LANGUAGE 'plpgsql';Hitung rentang koordinat piksel area raster yang dipotong.
Select ST_ClipDimension(raster_obj, 2, '((128.0, 30.0),(128.5, 30.5))') from raster_table where id = 1; ------------------------------------ '((600, 720),(200, 300))'Hapus ekstensi.
DROP Extension Ganos_Raster; DROP extension ganos_geometry; DROP extension ganos_spatialref;
Referensi SQL
Untuk informasi lebih lanjut, lihat Istilah.