SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド

さまざまな「空間データ」を活用しよう~ラスターデータ、点群データをデータベースで扱うには

オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド 第11回

  • X ポスト
  • このエントリーをはてなブックマークに追加

ラスターデータとは

 空間データには、画像の形式で格納されるラスターデータと呼ばれる形式があります。画像の形式というのは、格子状に並んだ各ピクセルに色(RGB/RGBA)の値を持たせることで一枚の写真を表現するような形となっていますが、このピクセルが空間上のどこ位置であるかの情報を付与しつつ、各ピクセルに値を持たせることで空間的な情報を表現する形となります。

 ラスターデータとして代表的な形式であるGeoTiffもTiffの画像形式にどの測地座標系のどの範囲といった地理参照情報を持つデータ構造になっています。

 比較的わかりやすい例としては、衛星写真や航空写真が挙げられるかと思います。衛星画像や航空画像では、それがどの場所を撮影したものであるかという地理参照情報(多くの場合、測地座標系の情報を含む)を、ファイル内のメタデータ領域、あるいは専用の別ファイル等に保持させています。各ピクセルには、普通の写真と同様に色(RGB/RGBA)が格納されています。このようなデータ構造によって、地表面を撮影した写真は、その位置の色を表現した空間データとして利用可能なものとなります。

ラスターデータの構造のイメージ
ラスターデータの構造のイメージ

 またラスターデータと呼ばれるものは衛星写真や航空写真だけではありません。写真は可視域の光学センサーの出力と言えますが、赤外線やX線センサーの出力を上記と同様に格納することで温度分布を表現したり、衛星から雲を透過し雨季の森林の状態を表現したりするようなデータもあります。また、先ほどの衛星写真と呼ばれるデータではRGBAのような色のデータの他に赤外線等の可視光外の波長のデータを持つものも少なくありません。そのため、これらのデータは地球等の対象を人工衛星のような遠隔地からセンシングしたデータ、リモートセンシングデータという呼ばれ方をすることもあります。

 更に、光学センサー系のデータ以外にも標高、雨量、積雪量、風速、土地の利用用途などさまざまなデータを各セルの値として採用することで、さまざまな空間的な情報を表現することが可能なこともあり、ラスターデータは空間データとして広く利用されています。

ラスターデータの有効性

 空間データとしてベクターデータというデータ表現があるにもかかわらず、このラスターデータというデータ形式が必要となるのには理由があります。

 例えば、関東全域を5m×5m単位で計測した標高データがあった場合、これをベクターで表現しようとすると「中心点の座標点とその標高というデータ」、あるいは「各5m×5mのポリゴンと高度」というデータを関東全域分積み上げることになります。

 関東の面積が約32000km2 (出典:Wikipedia:関東地方)とのことなので、それだけで約13億行のデータとなってしまいます。このように範囲内に高密度にデータが分布存在するデータはベクターデータとして表現すると非常にデータが大規模化しやすく、取り回しにも大きなコストがかかってしまうことがあります。画像形式にしておくことで画像内での位置は行列のように暗黙的に解釈されるものとなり、データ量自体も圧縮されるというメリットがあります。つまり広域にデータが高密度で分布しているような情報の格納に優れたデータ型という位置づけで広く利用されているものとなります。余談ですが、標高データは、各位置の標高をそのまま格納するのではなく、標高の値の範囲を領域型で表現する等高線というベクターデータで表現することもありますが、この場合、元の精緻な標高のデータは丸められた形となります。

 また、空間データの可視化という観点でもラスターデータはよい面があります。実際に我々がWebなどで目にする地図は、河川は青、森林は緑といったように色付けがされたものであることが多いのですが、河川、森林、道路、線路と元のデータであるベクターデータに色を与えて、画像化し重ね合わせて表示させると非常に多くの演算が必要となってしまいます。そのため、あらかじめ各ベクターデータを着色し、重ね合わせたラスターデータ(背景地図)を生成しておくことでコストを低減するような利用もされています。

ラスターデータの処理

 ラスターデータは広域の情報の保持に威力を発揮するものですが、どのようにアクセスされるものなのでしょうか。

 標高のデータから各避難所の標高を取得し利用したいような場合には、各地点(緯度経度)の位置でラスターデータを参照します。この場合、ラスターデータは場所で検索されることになります。

 また、ラスターデータでは、特有の演算処理というものがいくつかあります。ラスターデータに含まれる情報から新しい情報を得るような処理になりますが、例えば、衛星写真(赤外線等の非可視光含むマルチスペクトラム画像)のデータに含まれる可視光赤と赤外線の、葉緑素に対する反射率の違いを利用し演算を行うことで、各セルごとの植生のレベルを判定する数値(NDVI)を算出するような処理などがあります。

 また、衛星写真では、多くの撮影用の人工衛星が地球に近い周回軌道に乗ってしまうことと、解像度と撮影範囲の問題で、一日で地球全体の範囲の撮影はできないのですが、地球をぐるぐる回りながら、毎日少しずらした位置を撮影し、それらをつなぎ合わせることで、地球全体の写真を得るといったことが行われます。このようにバラバラな写真を位置の情報をもとにつなぎ合わせて、重なる部分には一枚の絵として不自然が少ないように平均化や最新の画像を優先する等の演算を行うモザイク化と呼ばれる処理があります。この処理では、同時に複数のラスターデータが読み込まれ、その空間的な位置ごとに参照され演算などの処理が行わることになります。

 このようにラスターデータの処理においては、空間に基づいた参照が行われることが多く、また、ごく一部のデータ参照のケースと、ラスター全域、あるいは広域の大量のデータを読み込み演算を行うような処理が共存する必要があるため、大規模化した場合にはこれらを両方満たすような構造が必要となります。

次のページ
ラスターデータの実装

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載記事一覧

もっと読む

この記事の著者

中井 亮矢(日本オラクル株式会社)(ナカイ リョウヤ)

 日本オラクル株式会社でOracle Databaseを担当するエンジニア。主に地理空間機能、グラフ機能、機械学習機能を中心とするデータ活用や性能チューニングの領域で、製造業、小売業、公共・公益などの様々な問題解決およびコンサルティングに従事。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17492 2023/03/15 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング