はじめに 地図の話題 地図のデータ 地図のソフト AMI入門 GISパラダイム インフォメーション

地図の話題


図形データと画像データ

図形的手法と画像的手法
 図面として作成されている地図から必要な情報を地図データ化するための方法としては、地図を 図形として処理するか、あるいは画像として処理するかの二通りが考えられます。
 通常ベクター型処理と呼ばれている図形として処理する方式のものは、地図を座標値の集まりと して考えます。つまり、直線は始点および終点の2点の座標値で形成すると考えるわけです。する と、点を表現するためには1つの座標値、直線は2つの座標値、曲線は直線近似して3点以上の 座標値の列として、面は曲線の場合の始点と終点が同じ座標値をもつものとして取り扱うことが できます。実際には、この座標値の集まりに対して、それがいったい何であるかという情報が必要 になります。例えば、複数の線が描かれていた時、この線は道路、この線は河川といった具合に、 それぞれの線にそれを認識するための情報が必要になります。このような情報を属性情報と呼び、 ベクター型データにはなくてはならないものです。
 座標値の集合である図形に対して、ラスター型処理と呼ばれている画像として処理する方式の ものは、新聞の写真のように小さな点(ピクセルやドットという)の集合として地図を捉えます。 その1点1点には、白黒の濃淡あるいは色調(これがラスター型データの属性)が記録されており、 1点のみ見てもそこが何であるかは分からないものの、全体として捉えると非常に鮮明に認識する ことができます。これは人間のパターン認識のすばらしい能力に負うところが大きく、ベクター 型データの認識に比較すると、より人間的であると言えます。

入力と計算処理
 図形データの入力方法は下記2通りがあります。一つはデジタイザー(小さいものはタブレット と呼ばれることもある)による直接座標計測です。デジタイザーはオペレータがカーソルを用いて 図面上の点の座標を一点一点入力していくものです。この作業はオペレータの能力に依存する ところが大きく、単位時間当りの生産性(計測点数)に限界があり、精度においても熟練した オペレータでトレースの精度0.1mm程度と言われます。入力もれやダブリ等の人為的過誤も避けら れず、これらの防止策として、入力したデータを点検・修正するソフトウェアのサポートがかかせ ません。
 他の一つはラスター型データのベクトル化です。これはスキャナ等によりデータ取得後に細線化 処理をし、その後にベクトル化しますが、この際のアルゴリズムは複雑で、現段階でも完全な ソフトウェアは開発されていません。この方法では、計算量が多いこと、属性情報はベクトル化 された後に付け加える必要があること等、問題点はありますが、人為的過誤が生じないこと、精度 が一定であること、人手による膨大な作業時間を短縮できる利点があり、データ入力の「前処理」 として使われることが多くなっています。
 地図データの代表的な計算処理として、線の長さや面の面積を求めるといった処理と、部分的 切り出しや重ね合せといった処理について考えます。
 線の長さや閉領域(面)の面積を求める計算は、図形データの場合、全ての情報に対して相対的 (あるいは絶対的)な座標値を持っていますので簡単に計算することができます。しかし画像 データの場合、1つ1つの点(ドット)には隣り合うドットとの関連性はありませんので、自分 を中心とする点から同じ情報を持つ周囲の点をサーチしながらカウントしていく他はありません。 このため大量のデータを一度に計算処理の対象としなくてはならず、計算も複雑になります。
 部分的な切り出しや重ね合せといった処理は、図形データの場合、交点計算・面の再構築・属性 の処理など、かなり難しいアルゴリズムが必要です。これに対して画像データの場合は、1点ごと の計算になりますので、計算量は多いものの単純な計算になります。

ベクター型データの作成
 ベクター型データの一般式として下記が考えられます。
  ベクター型データ:Σ(Xi,Yi)
 デジタイザにより取得したものであれラスターデータをベクトル化したものであれ、この形式で 捉えることができます。
 点状のデータは、この形式のデータに属性が付加されれば完成です。
 線状のデータは次のような処理が必要になります。まず丁字路のような場合、2つの線は必ず 交わらねばならず、またはみ出してもいけないのですから、交点計算なり不足分を補う処理が 必要になります。さらにY字路のような場合は、3つの端点は同一点でなくてはならず、これら 3点を同一点として認識した後、3つの線について同様の処理を行う必要があります。以上の処理 をした後に属性データが付加されると、線状のデータが完成します。
 面状のデータはさらに複雑です。線状のデータ作成の時に行った処理をした後に、複数の線を 集めて面を構成しなければなりません。この時、面は複数の線から成るだけではなく、それらの 線がどのような向き(順方向かあるいは逆方向に並べ直す必要があるか)に繋がっているかが重要 となります。面を構成する線を、始点から始まってその点に戻ってくるように点列を[複数の線]で 構築する必要がある訳です。これらの情報以外に、ある面の中に完全に含まれてしまう面の情報、 ある線の左右の面の識別符号、ある分岐点(ノード)に何本の線が接続しているか等の情報が必要 になります。これらの情報を線状のデータから幾何学的に求めるというアルゴリズムは非常に複雑 で、高度なプログラムが必要となります。このようにして作成された面状のデータに属性を付加す ることにより、項目別の面積集計や属性別の出力などの処理が可能になります。

ラスター型データのベクトル化
 ラスター型データの一般式として下記が考えられます。
  ラスター型データ:Σ(ΣM(i,i))
 ラスター型データは広義に解釈すると、メッシュデータとして考えることができます。ある地図 に細かいメッシュを被せ、1つ1つのメッシュごとに色や白黒の濃淡を読み取ったもので、メッシュ の大きさをピクセルサイズにしたものがラスター型データと言えます。
 この時に必要な情報は、左下(あるいは左上)から何行目、何列目のデータで、色(あるいは白黒 の濃淡のレベル)は何であるかの3種類ということになります。たった1つのドットに対して3種類 の情報が必要ですから、全体では膨大なデータ量になります。このため、通常ラスターデータは 圧縮された持ち方をされるのが普通で、JPEGやTIFF等の形式がよく用いられます。
 ラスター型データは下記のような手法でベクトル化されます。
 入力図をスキャニングして作成されたラスターデータでは、1本の線であってもラスターが細か ければ細かい程、その幅を読み取ってしまい、複数のドットが線の太さとして認識されてしまいま す。そこで1ドットを線の幅とするよう細線化と呼ばれる処理を行います。細線化処理は、中心線を 出す方法や、右端あるいは左端を取る方法等、いろいろなアルゴリズムがあります。細線化された 後に、連続するドットをサーチしながら何ドットおきかにその位置を求めベクトル化します。
 この時に難しいのが直線の認識です。デジタイザ入力であればオペレータが直線と判断すれば 始終点だけを計測してくれますが、ラスター型データをベクトル化する場合、この判断が難しく、 一見直線のようにベクトル化されていても始終点の間にむだな点が存在したり、よく確かめると 直線になっていない場合があります。この他にも、分岐点の判断、入力した地図がかすれていて線 が切れている場合、2本の近い線が1本として認識される場合等、かずかずの問題点が残されて おり、完全な自動化は達成されていません。それでも、精度が一定であること、人手が省略できる こと、高速処理が可能になったことなどにより、データ入力の「前処理」には欠かせないものに なって来ています。



戻る