GIS用語解説

GEOS(Geometry Engine - Open Source)とは|メリット・空間検索例

1月 13, 2015

今回はGEOS(ジオス)についてご紹介します。

GEOSとは

GEOS(ジオス:Geometry Engine - Open Source)とは、地理空間情報を処理するためのオープンソースライブラリのことをいいます。OSGeo財団が支援するオープンソースプロジェクトの1つです。

GEOSはJTS Technology Suiteのすべての機能をC++に移植したもので、GISの標準化に取り組んでいる団体「OGC(Open Geospatial Consortium)」が定義している OpenGIS Simple Features for SQLに含まれる空間関数と、JTSの高度なトポロジー関数が実装されています。

こちらに詳細が記載されていますので、ご参照ください。(英文)

ここではGEOSを使用するメリットと、GEOSを使用した場合の空間検索の考え方についてご紹介します。

GEOSのメリット

GEOSは、PostGIS、QGIS、GDAL/OGR、MapServer、FMEなど各種オープンソースのプロジェクトで利用されており、また弊社のGISソフト「SIS」でもバージョン7.1から利用しています。

GEOSを使用した場合の最大のメリットは処理速度の高速化です。 例えば、以下のサイトでは、ジオメトリ処理にGEOSを使用した場合と使用しない場合でのパフォーマンスが比較されています。https://github.com/phayes/geoPHP/wiki/GEOS/

SISでは、GEOSを使用することで従来バージョンと比べて、空間検索やブール演算などのジオメトリ関連の処理速度が向上しました。このように、GEOSを使用することで、ジオメトリ処理の高速化が期待できます。

GEOSを使った空間検索

GEOSには、主に以下の機能があります。

上記の「ジオメトリ」と「空間関係」を組み合わせると、空間検索の定義が作成されます。では、どのように空間検索の定義が作成されるのか、具体例を使って見てみましょう。

検索例:
図1で「赤色の太線で囲まれた領域に対して、対象のジオメトリを含む」という条件で、家形の図形を検索します。 「赤の網掛けの図形」が検索条件に合致したものです。

図1:家形と検索領域のポリゴン

GEOSではこの検索を、OGCのDE-9IM(参考:http://en.wikipedia.org/wiki/DE-9IM)を使用して、以下のように実施します。

検索条件:
今回使用した条件は以下のとおりです。

Relate式:
この条件では、「を含む」という図形どうしの関係を「Relate」という式を使って定義しています。 Relate式は、「交差する」や「一致する」など、「空間関係」の条件に応じて、OGCのDE-9IMで定義されています。 例えば、「交差する」は「not Relate("FF*FF****") 」、「一致する」は「Relate("TFFF*FFF*") 」で表わされます。

空間検索を行う場合、まず検索元の領域や検索対象の図形を「内部」「境界」「外部」の3つに分けて、「表1」の①~⑨の空間関係がどのようになっているかを調べます。

表1:DE-9IM

これを、「Relate("①②③④⑤⑥⑦⑧⑨")」となるようにRelate式の引数に当てはめます。①~⑨の値は、以下のいずれかの空間関係になります。

今回使用した条件は以下のとおりです。
今回の検索条件の「を含む:Relate("T*****FF*") 」は、①が「T」、⑦と⑧が「F」で、それ以外は「*」です。
つまり、検索元の領域と検索対象の図形が、以下の空間関係を持っていることになります。


図1で検索された赤の網掛けの図形(検索対象)と赤色の太線で囲まれた領域(検索元)の空間関係を、表1に当てはめたものが「表2」です。

表2:図1の「赤の網掛け図形」と検索元図形の空間関係のDE-9IM

Relate式では「Relate("212FF1FF2")」となり、「を含む:Relate("T*****FF*") 」の条件と合致します。

一方、検索されていない図形は、「Relate("212101212")」(図2)あるいは「Relate("FF2FF1212")」(図3)であるため、 「を含む:Relate("T*****FF*") 」の条件に合致しません。

GEOSを使用した空間検索は、このようにして行われます。

おわりに

GEOSを使用した空間検索をメインにご紹介しましたが、いかがでしたでしょうか?これ以外の検索条件もRelate式で定義されています。空間検索の結果を確認したい場合は、実際にRelate式に当てはめて検証するとよいでしょう。

GEOSを使用した空間検索の定義はシンプルなので、パズルのように組み合わせて確認するのも楽しいと思います。

記事の評価をお願いします!

  • この記事を書いた人
  • 最新記事

空間情報クラブ編集部

空間情報クラブ編集部です。GISソフトの便利な機能をご紹介する活用講座やGIS用語解説、地図、位置情報、AI機械学習などをテーマにしたコラムを掲載しています。ご意見・ご感想、寄稿、コラボ企画などありましたらぜひご連絡ください。お待ちしております!

-GIS用語解説
-, , ,

© 2020 株式会社インフォマティクス