B.4 GeoRaster REST APIエンドポイントの例

Oracle Spatial GeoRaster REST APIは、ユーザーがWebクライアントを介してGeoRasterデータおよびGeoRaster機能にアクセスできるようにする、一連のRESTエンドポイントです。

これらのエンドポイントは、データ・アクセスデータ処理仮想モザイクインポートおよびエクスポートの4つのカテゴリに整理されます。

次の各項では、いくつかのREST APIエンドポイントの例を示します。

B.4.1 GeoRasterオブジェクトの開始

HTTP PUTリクエスト: 次のcurlコマンドは、GeoRaster列イメージを含むGeoRaster表image_tableがすでに存在し、id = 1の行があることを前提として、id = 1が指定されたrdtおよびrid値を持つ行のGeoRaster列を更新することで、空のGeoRasterオブジェクトを開始します。

curl -v -u username:userPassword! -X PUT -d @request_body.json https://localhost:8080/oraclespatial/georaster/v1/datasource1/image_table/image?q={'id'=1}

リクエスト本文

{
  "rdt": "image_table_rdt1",
  "rid": 1
}

B.4.2 ラスター・イメージのロード

HTTP PUTリクエスト: 次のcurlコマンドは、GeoRaster表image_tableにラスター・イメージをインポートします。ラスター・イメージworld.tifは、GeoRaster REST APIがデプロイされたサーバー上の環境変数GEOR_IMPORT_EXPORT_FOLDERで指定されたディレクトリに存在する必要があります:

curl -u username:userPassword! -X PUT -d @request_body.json https://localhost:8080/oraclespatial/georaster/v1/datasource1/image_table/image/image_table_RDT1/1

リクエスト本文

{
  "fileName": "world.tif",
  "creationOption": [
    "BLOCKXSIZE=254",
    "SPATIALEXTENT=TRUE"
  ]
}

レスポンス本文: 次のようにジョブIDを返します。

{
  "id": 237492503845
}

HTTP GETリクエスト: 次のcurlコマンドは、ジョブのステータスをチェックします。

curl -u username:userPassword! -X GET https://localhost:8080/oraclespatial/georaster/v1/datasource1/jobs/237492503845

レスポンス本文: 次のようにジョブ・ステータスを返します。

{
  "items": [
    {
      "id": 237492503845,
      "status": "FINISHED",
      "type": "IMPORT",
      "fileName": "world.tif",
      "progress": 100,
      "job_creation_time": "2022-04-05 10:08:02-0700",
      "start_time": "2022-04-05 10:08:02-0700",
      "end_time": "2022-04-05 10:08:03-0700"
    }
  ]
}

B.4.3 ロードされたラスター・イメージの表示

HTTP GETリクエスト: 次のcurlコマンドは、ピラミッド・レベル3のラスター・イメージをJPEG形式で取得します。

curl -u username:userPassword! -X GET https://localhost:8080/oraclespatial/georaster/v1/datasource1/image_table/image/image_table_rdt1/1/rasterImage?pyramidlevel=3&format=jpeg

B.4.4 ラスター・イメージの分類

HTTP POSTリクエスト:次のcurlコマンドは、イメージをオンザフライで分類し、分類されたイメージをGIF形式で返します:

curl -u username:userPassword! -X POST -d @request_body.json https://localhost:8080/oraclespatial/georaster/v1/datasource1/image_table/image/image_table_rdt1/1/rasterImage?format=gif

リクエスト本文

{
  "renderOps": {
    "colorMap": [
      {
        "value": 0,
        "red": 200,
        "green": 0,
        "blue": 0,
        "alpha": 255
      },
      {
        "value": 1,
        "red": 0,
        "green": 200,
        "blue": 0,
        "alpha": 255
      },
      {
        "value": 2,
        "red": 0,
        "green": 0,
        "blue": 200,
        "alpha": 255
      },
      {
        "value": 3,
        "red": 100,
        "green": 100,
        "blue": 100,
        "alpha": 255
      }
    ]
  },
  "rasterOps": {
    "opName": "classify",
    "croparea": null,
    "expression": "0",
    "rangearray": [
      30,
      100,
      200
    ],
    "valuearray": [
      0,
      1,
      2,
      3
    ],
    "nodata": "true",
    "storageparam": "celldepth=8bit_u"
  }
}

前述のリクエスト本文で、renderOpsはレンダリング用のcolorMapを指定し、rasterOpsclassify操作のパラメータを指定します。ラスター・イメージのバンド0は4つの値に分類され、colorMapを使用して4つの色にマップされます。

B.4.5 ラスター・イメージの幾何補正

HTTP POSTリクエスト: 次のcurlコマンドは、GeoRasterオブジェクト内のラスター・イメージを幾何補正し、幾何補正したイメージを別のGeoRasterオブジェクトに格納します。

curl -u username:userPassword! -X POST https://localhost:8080/oraclespatial/georaster/v1/datasource1/sdo_geor/rectify

リクエスト本文

{
  "ingeoraster": {
    "rasterDataTable": "image_table_rdt1",
    "rasterID": 1
  },
  "pyramidlevel": 0,
  "elevationparam": null,
  "dem": null,
  "outsrid": 4326,
  "outmodelcoordloc": null,
  "croparea": null,
  "polygonclip": null,
  "layernumbers": null,
  "outresolutions": [
    30,
    30
  ],
  "resolutionunit": "unit=meter",
  "resamplparam": "resampling=bilinear",
  "storageParam": null,
  "outgeoraster": {
    "rasterDataTable": "image_table_rdt1",
    "rasterID": 2
  }
}

B.4.6 仮想モザイクの作成、表示および管理

仮想モザイクを作成および表示するには、仮想モザイクREST APIエンドポイントを使用します。作成された仮想モザイクの定義は、ユーザー・スキーマのSDO_GEOR_VM_REGISTRY_$$という名前のレジストリ表に格納されます。REST APIエンドポイントを介して操作をリストおよび削除することで、定義された仮想モザイクを管理できます。

HTTP PUTリクエスト: 次のcurlコマンドは、仮想モザイクを作成します。

curl -u username:userPassword! -X PUT -d @request_body.json "https://localhost:8080/oraclespatial/georaster/v1/datasource1/vm/landsat_mosaic"

リクエスト本文

{
  "sourceImages": {
    "tableNames": "image_table",
    "columnNames": "image"
  },
  "outSRID": 4326,
  "outResolutions": [
    2,
    2
  ],
  "resolutionUnit": "meter",
  "commonPointRule": "high",
  "nodata": true,
  "fillgap": true,
  "bgValues": [
    0,
    0,
    0
  ]
}

HTTP POSTリクエスト: 次のcurlコマンドは、仮想モザイクの領域をJPEG形式で表示します。

curl -u username:userPassword! -X POST -d @request_body.json https://localhost:8080/oraclespatial/georaster/v1/datasource1/vm/landsat_mosaic/rasterImage?format=JPEG

リクエスト本文

{
  "cropArea": [
    0,
    0,
    100,
    100
  ]
}

HTTP GETリクエスト: 次のcurlコマンドは、定義されているすべての仮想モザイクをリストします:

curl -u username:userPassword! -X GET https://localhost:8080/oraclespatial/georaster/v1/datasource1/vm

HTTP DELETEリクエスト: 次のcurlコマンドは、landsat_mosaicという名前の仮想モザイクを削除します:

curl -u username:userPassword! -X DELETE https://localhost:8080/oraclespatial/georaster/v1/datasource1/vm/landsat_mosaic