ST_Raster 格納タイプとは

ST_Raster はユーザ定義データ タイプです。オブジェクト タイプ ST_Rasterはユーザ定義テーブルの 1 つの行の 1 つの列に格納されます。ST_Raster はラスタ データへの SQL アクセスだけではなく、ジオデータベースの完全なサポートを提供します。これにより、DBMS(Database Management System)を使用して、ラスタ操作とクエリを実行できる SQL アプリケーションを作成することが可能になります。

ST_Raster は Oracle、Microsoft SQL Server、および PostgreSQL データベースをサポートしています。SQL Server Express はサポートしていません。

ST_Raster タイプを使用するには、DBMS を設定する必要があります。手順については、「Oracle での ST_Raster タイプのインストール」、「PostgreSQL での ST_Raster タイプのインストール」、または「SQL Server での ST_Raster タイプのインストール」をご参照ください。

ST_Raster のオブジェクト タイプは次のように定義されます。

CREATE TYPE ST_Raster AS OBJECT (
  raster_id			    INTEGER,
  type				        INTEGER,
  extent			       SE_EXTENT,
  properties			   SE_RASTERPROPERTY_LIST,
  rasterband_list	ST_RASTERBAND_LIST
	 data					       ST_PIXELDATA);

属性

説明

raster_id

ST_Raster として定義されるテーブル列の各ラスタの一意な ID

type

現在、内部でのみ使用するために予約されています

extent

検索範囲を格納するオプションの属性

properties

個別のラスタ バンドではなくラスタに関連付けられたさまざまな属性を格納するために使用されます

rasterband_list

バンド固有の属性を格納するラスタ バンドのコレクション

data

予約フィールド

ST_Raster オブジェクトはいくつかのサブオブジェクトから構成されます。

ST_Raster タイプのオブジェクト モデル ダイアグラム

ST_RASTERBAND および ST_RASTERBAND_LIST

ST_RASTERBAND_LIST タイプは次のように定義されます。

CREATE TYPE st_rasterband_list 
AS VARRAY(4096) OF ST_RASTERBAND;

ST_RASTERBAND タイプは次のように定義されます。

CREATE TYPE st_rasterband AS OBJECT (
  rasterband_id	INTEGER,
  sequence			   INTEGER,
  types			      INTEGER,
  width			      INTEGER,
  height			     INTEGER,
  extent			     SE_EXTENT,
  block_origin		SE_COORD,
  block_width		 INTEGER,
  block_height		INTEGER,
  flags			      INTEGER);

属性

説明

rasterband_id

ST_Raster タイプ列内の各ラスタ バンドの一意な ID

sequence

ラスタ バンド コレクション内の各バンドの順序を管理します。指定したラスタ バンド コレクションに対して、コレクション内の各バンドの順序の値は一意である必要があります。

types

さまざまなラスタ バンド メタデータの格納に使用されるビットマスク。ビットマスクに格納された個々の属性は SQL 関数を通じて検証され、割り当てられます。この属性値を直接変更してはいけません。

width

ラスタ バンドのピクセル幅を定義します

height

ラスタ バンドのピクセルの高さを定義します

extent

ラスタ バンドの地理範囲

block_origin

ブロックの原点の地理座標を管理します

block_width

ラスタ バンド タイルのピクセル幅を定義します

block_height

ラスタ バンド タイルのピクセルの高さを定義します

flags

ラスタ バンド メタデータのビットマスクを保持します。ビットマスクに格納された個々の属性は SQL 関数を通じてアクセスでき、割り当てることができます。この属性値を直接変更してはいけません。

SE_RASTERPROPERTY および SE_RASTERPROPERTY_LIST

SE_RASTERPROPERTY_LIST タイプは次のように定義されます。

CREATE TYPE se_rasterproperty_list
  AS VARRAY(1048576) OF SE_RASTERPROPERTY;

SE_RASTERPROPERTY タイプは次のように定義されます。

CREATE TYPE se_rasterproperty AS OBJECT (
  name				 VARCHAR2(65),
  intvalue	INTEGER,
  strvalue	VARCHAR2(160));

属性

説明

name

ラスタ プロパティの名前

intvalue

ラスタ プロパティの整数値を格納します

strvalue

ラスタ プロパティの文字列値を格納します

SE_EXTENT

SE_EXTENT タイプは次のように定義されます。

CREATE TYPE se_extent AS OBJECT (
  minx				FLOAT(64),
  miny				FLOAT(64),
  maxx				FLOAT(64),
  maxy				FLOAT(64));

属性

説明

minx

X 座標の最小値

miny

Y 座標の最小値

maxx

X 座標の最大値

maxy

Y 座標の最大値

SE_COORD

SE_COORD タイプは次のように定義されます。

CREATE TYPE se_coord AS OBJECT (
  x				FLOAT(64),
  y				FLOAT(64));

属性

説明

x

X 座標の値

y

Y 座標の値

ST_PIXELDATA

ST_PIXELDATA タイプは次のように定義されます。

CREATE TYPE st_pixeldata AS OBJECT (
width    INTEGER,
height   INTEGER,
numbands INTEGER,
extent   SE_EXTENT,
types    INTEGER,
data     BLOB,
mask     BLOB);

属性

説明

width

オブジェクトのピクセル幅

height

オブジェクトのピクセルの高さ

numbands

オブジェクトのバンド数を定義します

extent

オブジェクトの地理範囲

types

さまざまなラスタ メタデータの格納に使用されるビットマスク。ビットマスクに格納された個々の属性は SQL 関数を通じて検証され、割り当てられます。この属性値を直接変更してはいけません。

data

オブジェクトのピクセル値の配列

mask

オブジェクトの NoData ビットマスク 配列

関連トピック

9/14/2013