5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Autonomous AI Database] 組み込みツールですぐ使えるようになったSpatial Studioで空間分析にチャレンジ

5
Posted at

はじめに

Oracle Spatial Studio は Oracle Database の空間機能をノーコードで利用できる Web ベースツールです。これまではマーケットプレイスからのデプロイが必要でしたが、2026年4月のアップデートで、Autonomous AI Database の組み込みツールとして追加されました。

Unlock Spatial Insights Faster with Spatial Studio, Now Built into Autonomous AI Database

Spatial Studioを利用すれば、Autonomous AI Database上で

  • 地図データのロード
  • 空間データの可視化
  • ジオコーディング
  • 空間分析

をGUIベースで実施できます。どんなものなのか、Oracle LiveLabs のハンズオンをベースに試してみました。

前提条件

  • Autonomous AI Databaseを作成済み

1.Spatial Studio にアクセス

ADMINユーザーでDatabase Actionsにログインし、検証用のデータベースユーザーを作成して、Spatial Studioを利用できるように有効化します。

image.png

image.png

コンソールの「ツール構成」でSpatial StudioのアクセスURLを確認し、アクセスします。

image.png

有効化したユーザーでログインを行うと、

image.png

Spatial StudioのUIが表示されます。

image.png

2.サンプルデータをロード

Spatial Studioは、空間データの交換で最もよく使用される2つのフォーマット、シェープファイルとGeoJSONファイルなど標準フォーマットのファイルからデータをAutonomous Databaseにロードする機能が提供されています。
サンプルデータは以下のLivelabsのデータをダウンロードして使います。

  • GeoJSONファイル accidents.geojson:架空の交通事故のデータ
  • シェープファイル SAPS_police.zip:南アフリカ警察(SAPS)の警察署と警察署の境界線データ

Spatial Studioの左のメニューからDatasetsを選択し、Create Datasetをクリックします。

image.png

Local fileでダウンロードしたaccidents.geojsonを選択し、Createをクリックします。
image.png

ロードの設定を行います。接続先(Upload to connection)、表の名前(Table name)、データセットの名前(Dataset name)、列名、データ型の編集が可能です。
DEFAULT_CONNECTIONという事前定義された接続名がローカルのADBには作成されており、それがデフォルト設定されます。ここではDATE_TIME以外の列のデータ型をSTRINGからNUMBERに変更し、Submitをクリックします。

image.png

以下のようなメッセージが出力され
image.png

Spatial Studioで利用できるデータセットが作成されます。
image.png

Database Actionsで確認すると、表と空間索引が作成されています。GEOM列が地理空間データでSDO_GEOMETRYがデータ型です。
image.png
image.png

同様にシェープファイルのzipファイルもロードします。

image.png

zipには警察署の管轄地域と警察署の位置の2つのシェープファイルが含まれているので、順に確認し、デフォルトのままロードします。
image.png

image.png

3つデータセットが作成されました。しかし、黄色でIssuesがあることが表示されています。

image.png

アイコンをダブルクリックすると、キーとなる列がないことが原因でした。

image.png

メッセージのリンクをクリックし、キーを作成します。キーは既存の列の指定のほか新規に作成することができます。
ACCIDENTSはキーとなることができる(一意、Nullがない)列がないため、Create Key Columnをクリックし、ACCIDENT_IDという名前で新しくキーを作成します。

image.png

Applyをクリックすることで適用がされます。
image.png

キーが作成されたので、黄色のIssueがなくなりました。
image.png

同様にPOLICE_BOUNDSのデータセットに対してもキーの作成を行います。
POLICE_BOUNDSは既存の列であるCOMPNT_NMがキーとして利用できそうなので、Use as Keyのトグルをオンにし、Vaildate keyをクリックして検証を行います。

image.png

Key is validとメッセージが返されたら検証成功です。Applyをクリックします。
image.png

同様にPOLICE_POINTのデータセットに対しても、COMPNT_NMをキーとして適用します。その結果すべてのデータセットから黄色のIssueがなくなりました。

image.png

3.プロジェクトの作成

データを視覚化および分析する場所としてプロジェクトを作成します。プロジェクト単位で
保存して作業を再開したり、公開して結果を他のユーザーと共有したりすることができます。

左のメニューからProjectsを選択し、Create projectをクリックします。

image.png

表示された画面でAdd datasetをクリックし、作成したデータセットを利用できるよう追加します。

image.png

image.png

DataタブのDatasetsを展開すると選択したデータセットが追加されていることが確認できます。
image.png

4.データの視覚化

データセットをドラッグアンドドロップすることで、地図上に空間データの表示ができます。
ACCIDENTSをView 1の地図にドラッグアンドドロップすると、地図上で事故データが表示されました。Layers listペインにACCIDENTSが追加されていることも確認できます。

image.png

他の2つのデータセットもドラッグアンドドロップで地図に追加してみます。

image.png

後で追加したデータセットのレイヤーが既存のレイヤーの上になるため、最後に追加したPOLICE_BOUNDSで他の表示が見えなくなってしまいました。そのため、Layers listで上がACCIDENTS、次にPOLICE_POINTS、一番下がPOLICE_BOUNDSになるよう位置をいれかえます。

image.png

データをすべて参照することができるようになりました。
またLayesrs listではデータセットを右クリックし、Settingを選択することでレイヤーの詳細設定ができます。ここではPOLICE_BOUNDSのFILLのOpacityを小さくして透明度を上げ、Outlineの色を白に変更してみると、最初より見やすくすることができました。

image.png

image.png

Settingではデータの表示のスタイルの設定もできます。ConfigureStyleを選択すると、レンダリングのスタイルをCircle(円)、Symbol(シンボル)、Heatmap(ヒートマップ)、Cluster(クラスタ)から選択できます。例えばデータセットACCIDENTSのスタイルをクラスタにするとこちらのようになりました。ズームアウト、ズームインでクラスタの円の大きさも変わります。

image.png

image.png

スタイルをCircle(円)に戻してから、次はConfiguteInteractionに指定します。
Tooltipでマウスオーバーしたときに表示される列、Info Windowでクリックしたときに表示される列を指定することができます。デフォルトはどちらも無効になっています。

image.png

image.png

Spatial Studioではデータを地図だけでなく、表形式で表示することも可能です。Visualizationsで参照したい形式を選択し、ドラッグアンドドロップすることで新しいビューを作成することができます。

image.png

Tableを既存の地図ビューView1の下に、Mapを上にドラッグアンドドロップで追加してみました。
image.png

追加したビューにデータセットをドラッグアンドドロップすることでデータを表示することができます。ACCIDENTSを両方のビューに追加しました。

image.png

表でデータを選択すると、地図上でも選択したデータが赤く表示されます。

image.png

ひととおり動作を確認したので、後で追加した地図のビューと表のビューを右上の×アイコンで削除します。
image.png

ここで一度保存します。右上のSaveをクリックし、Livelabs Spatial Introという名前で保存します。

image.png

5.データの分析

空間分析を行ってみます。
DataタブでCreate AnalysysやLayers Listの各レイヤーのメニューにあるSpatial analysysを選択すると、様々な空間分析操作を実行できます。
image.png

選択した警察署から指定された距離内で発生した事故を特定

地図上で任意の警察署を選択します。赤い色がわかりづらかったので、POLICE_POINTSのスタイルの色を青に変更しました。

image.png

Layers ListからACCIDENTSのメニューにあるSpatial analysysをクリックします。

image.png

Filter-> Return Shapes within a spacified distance of anotherを選択します。

image.png

フィルターされるレイヤー(Layer to be filterd)にACCIDENTS.GEOM、フィルターに使うレイヤー(Layer to be used as the filter)にPOLICE_POINTS.GEOMを指定します。すでに警察署を選択しているので、Include only selected items in the aboveのトグルがオンになります。範囲(Distance)は150kmとしました。

image.png

分析はOracle Databaseの地理空間機能Oracle Spatialを使ってデータベース内で行われるため、Preview SQLをクリックすると、SQLが確認できます。Oracle Spatialの空間演算子が利用されています。
image.png

RUNをクリックすると、次のメッセージが表示され、分析が行われます。

image.png

分析が完了すると、DataタブのAnalysisに設定した分析名が表示されます。

image.png

分析結果はデータセットの一種として追加がされているので、Datasetsの画面でも確認ができます。

image.png

これまで利用したデータセット同様にドラッグアンドドロップで、表や地図のビューで視覚化が可能です。たとえば、地図のビューの一番上のレイヤーに追加するとこのようになります。

image.png

選択した警察管轄区域内で発生した事故を特定

次に別の分析を行います。その前にLayers Listから先ほどの分析をremoveします。
image.png

Select by Shapeのアイコンをクリックしてから

image.png
 
任意の警察管轄区域をクリックすると、色が変わって選択がされます。

image.png

Layers ListからACCIDENTSのメニューにあるSpatial analysysをクリックし、Filter-> Return Shapes that are inside anotherを選択します。

image.png

フィルタされるレイヤーにACCIDENTS.GEOM、フィルターに利用するレイヤーにPOLICE_BOUNDS.GEOMを指定します。

image.png

実行されるSQLはこちらのとおりです。

image.png

実行し、分析が完了すると、Analysisの下に追加がされます。

image.png

地図ビューにドラッグアンドドロップをして、色をわかりやすくしてみました。
image.png

さらにLayers listでACCIDENTの左のアイコンをクリックして非表示にするとより見やすいですね。
image.png

各事故に、その事故を含む警察管轄区域を付加(空間的な関係に基づいてデータセットを結合)

先ほど追加した分析データセットをLayers listからRemoveします。
Layers ListからACCIDENTSのメニューにあるSpatial analysysをクリックし、Filter-> Return Shapes that are inside anotherを選択します。

image.png

空間関係(Based on spatial relationship) がInsideであることを確認し、ACCIDENTS のアイテムを POLICE_BOUNDS のアイテムと結合するよう設定します。
image.png

Preview SQLは以下の通りです。
image.png

実行し、分析が完了すると、分析名がAnalysisの下に追加されます。展開すると、ACCIDENTSのデータに警察管轄区域の情報であるCOMPAT_NMが結合されていることが確認できます。
image.png

これでACCIDENTSにはなかった警察管轄区域の情報を追加で表示ができます。
地図に追加し、ACCIDENTSを非表示、追加した分析ACCIDENT JOINのInfo Windowで列名を追加するとこちらのような表示が可能です。

image.png

警察管轄区域に事故情報の概要を追加

次は警察管轄区域に事故情報の概要を追加します。先ほど作成した分析をLayers ListからRemoveします。Create Analysisをクリックし、Analytics->Summarize by regionをクリックします。

image.png

POLICE_BOUNDSの各項目について、ACCIDENTSから事故件数を集計します。

image.png

Preview SQLは以下の通りです。
image.png

実行し、分析が完了すると、分析名がAnalysisの下に追加されます。指定したNUM_ACCIDENTSという列が存在することを確認できます。

image.png

事故件数(NUM_ACCIDENTS)ごとに色を分けた視覚化をしてみます。追加した分析SUMMARIZE REGIONを地図にドラッグアンドドロップし、ACCIDENTSとPOLICE_POINTSを非表示にします。

image.png

SUMMARIZE REGIONのSettingsでStyleのFillのColorをBased on dataにします。そのあと隣の鉛筆アイコンをクリックして、

image.png

列名にNUM_ACCIDENTSを選択し、+ボタンで値を1,5,10,15,20で追加します。
image.png

Set palleteで色を変更します。事故件数で色分けすることができました。
image.png

ツールチップでNUM_ACCOUNTSを追加するとマウスオーバーで件数の確認ができるような表示も可能です。

image.png

各警察署から最も近い事故を特定

SUMMAIZE REGIONをRemoveし、次は各警察署から最も近い事故の特定を行います。
Create Analysisをクリックし、Analytics->Nearest per itemをクリックします。

image.png

警察署の位置から最も近い事故の位置を検索するように指定します。
距離もDISTANCEという列名で表示するようにします。単位はKmです。

image.png

Preview SQLはこちらです。
image.png

実行し、分析が完了すると、分析名がAnalysisの下に追加されます。DISTANCEという列があることが確認できます。
image.png

地図に追加して視覚化します。例えばPOLICE_POINTSを非表示、情報を追加、新しい表ビューを追加しそちらにも追加してみるとこのような表示ができました。

image.png

おわりに

Spatial Studioを使って地図データフォーマットのファイルをロードすることから視覚化、分析をGUIで実行することができました。ADBにビルトインとなり、プロビジョニング後すぐに利用できるのでお試しいただければと思います。また分析機能はツールではなくOracle Databaseの機能なので、ロードしたデータはデータベース内の他のデータと、またAIやグラフの他のデータベース機能を組み合わせて活用するといったこともできると思います。

参考資料

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?