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_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 ビットマスク 配列 |