ちずのつくりかた / map school
地図とはそもそもなんでしょうか? 1980年代までの地図とは、手作業で作られる精緻な文書のことでした。対して近年における地図は、多くの場合、コンピュータの力を借りて制作されています。現代の地図とは共有の場であり、目的地へのナビゲーションや状態の可視化、国境線の主張や論争など、様々な目的や利用方法が存在しています。ここでは、地図を制作する側の視点から、地図が地図として成り立つために必要な要素について深く考えてみましょう。
まず基本的なこととして、コンピュータによって制作される地図はデータを原材料としています。このデータとは、数多くのポイントであったり、面積をあらわすポリゴンの集合体であったり、あるいは色調や気温を画像のような形式であらわしたものであったりします。大切なのは、一概にデータと呼称する場合、そこには複数の意味合いが含まれている、ということです。
私たちはさまざまなデータを元にして、数字や画像を作り出し、また、物事の判断を行います。通常、画像は’シンボル化’という作業を行うことで作成します。シンボル化の作業では、対象となるデータセットに含まれているそれぞれの情報をどのように視覚的に表現するかを定めます。データの分析では、データを改変し、集約し、要約を作り出すことによって、そこからさまざまな結果を得、多様な知見を導き出します。データのシンボル化と分析という2つの作業は、往々にして組み合わせて用いられます。データのシンボル化によって可能な表現の幅を定め、データの分析によってフォーカスするデータの要素や、対象となる部分を定めるという具合です。
データ
地理データは ラスタ と ベクトル のどちらかの方法で表現されます。ラスタはデータがピクセルとして格納され、ベクトルではジオメトリとして格納されます。実際にデータを利用する際、この2つの形式はしばしば同時に利用されます。例えばラスタ形式で提供される衛星画像の上に、ベクトルデータとして道路データを重ねて表示する方法はたいへん一般的です。
ラスタ
ラスタ データは、デジタルカメラで撮影した写真のような画像による形式を指します。このデータ形式では拡大を行うたびに、情報がピクセル単位に分割されます。ラスタデータに対して’ズームイン’してゆくと、どこかの段階でこの形式はデータがピクセル、つまり画素単位として表現されていることがわかります。
ラスタデータは、例えば衛星写真から取得された地表データを画像として表現する場合などに利用されています。この際、それぞれのピクセルが必ずしもなにかしらの色だけをあらわしているわけではありません。例えば、それぞれのピクセルはその対応する場所の標高を数値データとして持っていたり、ラスタデータ全体が特定の標高データを持っている場合もあります。また、それぞれのピクセルが保持してるデータは、例えば気温のデータなど、なにかその場所の環境をあらわす内容である場合もあります。
ラスタ・バンド
ラスタデータに含まれるピクセルは、必ずしも色と対応しているわけではありません。通常、そこに含まれる情報は’バンド’と呼ばれます。一般的な画像ファイルで使われるのは、赤緑青の三原色です。私たちがよく見かける写真は、この三原色の組み合わせによって成り立っています。また、ラスタの種類によって、使われるバンドの数はさまざまです。例えば標高データではバンドの数が少なくなりますし、赤外線や紫外線といった可視光以外のバンドを利用するラスタもあります。ラスタデータを分析し、表示する際には、そのラスタからどのような内容を引き出したいのかによって、利用するバンドの組み合わせを考える必要があります。
ラスタ形式
ラスタ形式とはそもそも、データをコンパクトにまとめ、分析と表示を素早く実行することを目的としたフォーマットです。GeoTIFF や JPEG2000など、一般的に使われる画像形式に対して位置情報が付与されている場合もあります。
内部的に、ラスタデータ形式は2つのタスクを管理します。ひとつは、データをピクセル化すること。もうひとつは、ピクセルがカバーする地球上の位置とデータの’範囲’を紐付けることです。
ベクトル
ベクトル データはピクセルよりもさらに基礎的なジオメトリ(位置情報)をあらわします。ベクトルデータをどこまで’ズームイン’しても、ピクセルはでてきません。データはジオメトリとしてあらわされるポイントやラインから構成されており、必要な場合にのみ画像に変換されます。
ベクトルデータは道路や建物、情報を持ったポイント (point of interest, POI) など、世界における特定の場所を表現するために利用されています。
ベクトル形式
ベクトルフォーマットでは Shapefile形式がもっとも広く使われています。Shapefileはシンプルなファイル形式のフォーマットで、地理データは .shp
(実際のジオメトリデータを格納)・ .prj
(使用する投影法を指定する文字列)・ .shx
(検索を高速化するためのインデックス)・ .dbf
(.shpファイルのジオメトリと紐づくすべてのデータが格納されるデータベースファイル) という4つのファイルに分割して格納されています。これらのファイルはほとんどがバイナリデータであり、平文のテキストで投影法の定義が記述されている .prjファイルを除き、テキストエディタで内部のデータを確認することができません。また、.dbfデータベースは古いデータベースの仕様から派生した形式で記述されているため、 LibreOffice Calcで読み込むことが可能です。しかしながら、この古いデータベース仕様の関係で、1つのShapefileに対して格納可能な属性データの最大容量が規定されています。例えば、.dbfファイルのサイズが最大2GBであったり、他にも、値としてNULLや特殊文字を指定できない、フィールドの名称にスペースを含めたり10文字以上を設定できないなど、多くの制限があります。
GeoJSON と TopoJSON 、および KML は比較的新しいフォーマットであり、それぞれ JSON や XML といったテキスト用のフォーマットをもとに作られています。テキスト形式であることによって、これらの形式のデータを扱うソフトウェアは、Shapefileを取り扱うよりも簡易な実装が可能です。さらにこれらの形式は機能追加や改良の柔軟性にも優れているため、最近のウェブソフトウェア実装では標準の地位を確立しつつあります。
トポロジ
ベクトルデータによっては、単にデータの位置と形状を保存するだけでなく、隣接する複数の形状の関連性といったトポロジ情報が含まれることがあります。例えばこの例として、行政区の境界がよくあげられます。片方の足をアリゾナ州に、もう片方の足をニューメキシコ州に置いて立っている、と考えてみてください。多くの地理データでは、アリゾナ州をあらわす形状がひとつ作成され、もうひとつ別の形状としてニューメキシコ州が作成されます。2つの州の境界線は正確に重複しますが、2つの州の地理データの間にデータとしての関連性はありません。
この状態で、例えば ‘どちらの州に触れているか?’ という判定を行ったり、境界線の線の形を保ったままオブジェクトの形状を単純化する処理を行うことを考えてみてください。私たちはそのようなとき、トポロジ、という考え方を用います。この場合、ベクトルデータの中にはアリゾナ州やニューメキシコ州の形状を保存するのではなく、どのラインがどのオブジェクトの境界線を形成しているかを関連付けます。そのため、2つの州の境界線は1本のラインとして表現可能であり、その状態で2つの州を同時にあらわすことが可能です。また、もし境界線のラインが1本の場合は、そのラインを修正することで2つの州の内容を同時に編集することが可能となります。
ジオコーディング
地理データには、ここまでに挙げた事例以外でも有用な使い方があります。そのなかのひとつでは、地理データをテキストとして保存することによって、データをコンピュータだけが解析可能な数字の羅列ではなく、特定地点の場所やストリートの名前、住所などへのリファレンスとして利用しています。
不幸なことに、そこで得られる結果を直接地図にあらわすことはできません。例えば、場所の名称のつけかたに相違があったり、1つの地点に対する複数の定義などがあったりするため、例えば United States
という単語を ‘120, 40’というポイント情報として変換するなど、得られる結果が直接的ではなく、誤った結果が返されることもよくあります。この処理は ジオコーディング と呼ばれます。
リバースジオコーディング
この処理プロセスを逆に実行したものは リバースジオコーディングと呼ばれ、あらかじめ地理的な位置が明確に定まっていることを前提として、例えばUnited States
や1714 14th Street
など、人間にとって可読性がある形式で対象の検索や変換を行います。ジオコーディングと同様、検索結果が常に正しいとは限りません。1つの地球上に存在する1つのポイントを示す場合、境界線の範囲が矛盾や重複を起こしていたり、その地点が複数の住所ポイントに関与していたりする場合が存在します。
ジオコーディングやリバースジオコーディングはとてもトリッキーです。緯度経度の誤りや、構造の整っていない住所データ、そして更新されない道路や建物データなど、住所表記と緯度経度を正しく相互に変換するのは困難を極めます。
データの収集
地図データは長い時間をかけて、船の航海日誌から、ジオコーディングされたTweetまで、数えきれないほど多くの方法を使って収集されてきました。現在ではメジャーな情報源として、メリットの多い方法がいくつか採用されています。
GPS は複数の人工衛星から構成されるシステムです。携帯電話の地図上の青い丸印の表示は、このシステムを利用しています。GPSは正確なベクトルデータを作成するための基盤を支えています。地図の調査員は高性能なGPS機器を車に搭載しておき、収集したログデータを他のデータと組み合わせて利用します。
観測用の 衛星・航空写真 からは、現在私たちが利用している様々なラスタデータが生成されます。様々な高度から撮影された写真を結合させることで、地表の写真が完成します。同じ仕組みを利用し、赤外線など’可視光以外のスペクトラム’を感知できるセンサーで撮影された写真は農業に関する情報のマッピングにとても有用となります。LiDARなどのレーザーセンサーを追加することで、ラスタに標高データを追加することも可能です。
企業、行政、コミュニティ はそれぞれ異なった視点の地図を所有しています。例えばGoogleや OpenStreetMap は、世界中の道路やその関連情報をすべてマッピングすることにフォーカスしていますし、 CIA World Factbook や Natural Earth などの組織は行政や国家の境界線についての情報を発信しています。
情報の保存
地理データを格納・保存しておく方法はひとつではありません。例えば印刷物もデータ保存方法のひとつではありますが、現在ではデジタルで保存しておいて、閲覧や共有を行う方法が一般的です。
地理データをデジタルで保存する際のファイル形式や保存方法は様々で、利用するツールやデータの変換方法も多岐にわたります。データの保存方法は大きく分けて、データベースへ格納する方法と、独立したファイルに格納する方法があります。ただし、どちらの方法でも実際の用法について根本的な違いはありません。
情報
地図とは、情報が可視化されたものです。地図を表現する作業を行うには、測地系や数値、データの格納先といった問題が横たわっており、さらに、地球上のそれぞれの場所でその場所の記録や地域ごとの差異を表現するための技法として、様々な手法がナットとボルトのように噛み合って存在しています。データを変換して可視化する技法は ‘投影’ と呼ばれます。 ‘投影’ を行うことによって、地球を紙に印刷したり、コンピュータの画面に表示させたりという平坦な情報として表現することができます。そして最終的に、地図の配色や色調、シンボル化を細かく定めることによって、人間がその地図を見てすぐに情報を理解し、解釈できるように様々な表現が生み出されています。
緯度と経度
特定地点の位置情報を格納するにあたって、緯度と経度による方法はもっとも広く利用されています。伝統的に、緯度と経度は38° 32
のような60進法による度分秒表記で表記されています。しかし近年ではコンピュータによる可読性を高めて、38.2
のように単純な数値情報として表記する方法が新しい標準となっています。
緯度 は南北方向を示しています。南極点である -90 から、北極点である 90 までの値をとります。赤道上の緯度は常に0となります。
経度 は東西方向を示しています。グリニッジやアフリカ大陸を通過する本初子午線
を 0 としてスタートし、地球の反対側の子午線までを -180 から 180 までの値であらわします。
緯度と経度の組み合わせは一般的に座標 (coordinate) と呼ばれ、緯度, 経度
あるいは 経度, 緯度
のように表記されます。前者のほうが標準的に利用されてきましたが、数学のユークリッド空間での座標表記方法である X, Y
の順番を反映して経度, 緯度
という表記も近年では一般的になりつつあります。
現在、緯度と経度のどちらを先に表記するか、若干の混乱が生じています。ウェブブラウザ上で行われる地図表記ではほとんどの場合緯度, 経度
の順番で表記され、多くのワイヤフォーマットでは経度, 緯度
の順番で指定が行われています。
状況によっては、単に緯度と経度だけを記録するだけではなく、高度・標高や記録が行われた日時など、その他の情報もデータに含まれる場合があります。高度情報がデータに含まれる場合、緯度, 経度, 高度
のように座標の3番目の項目として表記が行われるのが一般的です。
地球の形状
地球全体を格納し、表現しようとすることを考えた場合、その地球の形状についての疑問が湧き上がります。緯度と経度の値を使うことによって、球体を完全に地図化し、なおかつ空間的な位置正確性を保つことは可能なのでしょうか。
地球は自転する物体であり、それによって形状も変化しています。球体は中ほどが膨らんでおり、完全な球体というよりも、 回転楕円体 に近い形状をしています。しかし細かい形状を見てみると、正確にはそのどちらも違うことがわかります。地球の表面には山脈や渓谷、あるいは人間の活動としては都市の生成など、多くの凹凸が存在し、 標高・地形 として認識されています。
日常的な作業で扱う際には、私達はこうした形状の違いを概数値として扱います。例えば WGS84 では、地球の2方向の地軸の長さを両方とも正確な値として定義しています。この定義があるために、私たちは地球を完全な球体ではなく、 地球楕円体 として概算値を得ることが可能となっています。また、局地的な計測や科学分野で扱う場合、地表に関する正確な値は ジオイド・モデル として算出が可能です。この方法では、海面の高さを純理論的に三次元計算として扱っています。
加えて、地球科学の分野から派生した 測地学 と呼ばれる分野では、地球そのものの形状が変化しつつ、自身が高速で移動していることを計測し、モデル化する技術について継続した研究が行われています。
投影法
投影法は、もともと球体である地球を印刷物やスクリーン上に平面図としてあらわす際、それら2つを数学的に同一化する処理のことを指します。このような変換を行うのは非常に手のかかるタスクです。球体であるはずの地球を平面として表現する際には、なにかしらの手法で歪みを発生させる以外にありません。どの情報を歪めるかは投影手法によりけりですが、地図上の向きや相対的な表示の大きさを変更する、あるいは特殊な表現方法を採用するなどの方法があります。
シンボル化
地図の世界では、なにかしらの方法でデータを図としてあらわす方法をまとめて、シンボル化、という一風変わった呼び方で表現します。
根本的に言えば、データ自体にはどのような見た目もありません。地図上で表わされるデータは単なるピクセルの値ですし、道路を意味する線の情報もスプレッドシートやグラフで表現されるものでしかありません。そのため、データを使って私たちが行うことを正しく説明するにあたって、変換
という言葉は正しくありません。最も基礎的な段階において、この方法は作成者によるなんらかの判断の結果を意味しています。
シンボル化の技術は、画像やあるいは3Dによる表現方法を含んでおり、注視しているひとはそれほど多くありません。
連続値と絶対値
シンボル化を行う過程では、連続値と絶対値という、データがもつ2つの側面が浮かび上がります。連続値、あるいは連続したデータは linear とも呼ばれます。例えば卒業者の率が 0から100 の値をとるように、値はしばしば特定の範囲の数字であらわされます。逆に絶対値、あるいは個別値のデータでは、例えばtrue
、false
、民主党
や共和党
など、特定の内容の値がひとつだけ与えられます。
この観点でデータの形式を区分することは、シンボル化を行うにあたってとても重要です。連続値のデータは規模や程度をあらわす地図に利用できますし、絶対値のデータはそれぞれのデータをマーカーなどを使って表現することに向いています。
コロプレス・統計区分
統計区分を利用した地図は、既存の境界線などの形状を利用し、色やテクスチャ、模様などを使ってそれぞれの領域のデータ内容をあらわす手法です。この地図表現は、選挙結果や人口統計をあらわすのに向いており、利用されるデータは、例えば特定地域における投票率をパーセンテージで表記した形式などが利用されます。
統計区分マップは、割合や密集度、パーセンテージといった内容のデータに対して高い親和性をもちます。この表現形式は、データの内容が絶対値の場合にはあまりお勧めできません。なぜならばこの表現形式では、表現対象となるエリアが変更されるわけではなく、大きな地物を強く表現しすぎる傾向があるためです。また、統計区分マップは配色の違いで情報の内容を表現するため、利用する色合いは、わかりやすく一貫性を持ち、さらに色盲の利用者にとっても使いやすいものが選ばれる必要があります。
Point ポイントデータ
ポイントデータをもとにした地図は、データの値が絶対値の場合によく利用される方法です。この場合、1つの地物データに対して、1つのジオメトリが割り振られています。
この様式で利用される特定の点情報、あるいはマーカーの内容は千差万別です。データの種別や値の大小によって異なる色を使って表現されたり、あるいはデータが保持している値によって表現の大きさ自体を変えたりすることもあります。こうしたシンボルは、特定の形状や画像をつかって表現されます。円や四角形をはじめ、その対象を撮影した写真などが利用されることもあります。利用されるデータに複数の値が含まれている場合は、その合計が円グラフであらわされることもあり、データの内容が特に複雑な場合はそうした表現がとても有効に機能します。
この表現方式を行う場合、一度にあまりに多くのポイントが表示されすぎないように気をつける必要があります。あまりに多くのものが表示されると、かえって地図から情報を読み解くことが難しくなるからです。それでも多くの情報を表示する必要がある場合は、それぞれのポイントがもっている値を集計し、統計区分のように表示する方法もあります。また、別の方法として、複数のポイントを1つのポイントとして表示させ、特定のレベルまでズームインした場合のみそれぞれのポイントを表示させる、という方法もあります。
データの公開
データの分析
ラスタとベクトル分析におけるデータの集合と変形
ベクトルからラスタへの変換
ラスタとベクトルは本質的に異なる地図データ形式です。ただし、2つの形式をお互いに変換することは可能ですし、変換自体はそれが直接的かどうかは別としてよく行われています。
一般的に、ベクトルデータはラスタに変換可能です。そうしたデータを表示する際にとられる手法は、ラスタライズ
あるいはレンダリング
と呼ばれています。印刷物やコンピュータの画面では、ラインやシェイプ単位ではなく、ピクセル単位での処理が行われます。そして、変換を行う際にはすべての機能がそのまま維持されるわけではありません。例えば、ベクトルデータはピクセル単位の形式ではないことを思い出してください。ラスタに変換してしまうことで、ズームインしてゆく過程において、ある一定以上のズームインができなくなります。さらに、たいていの場合、いったんベクトル形式からラスタ形式に変換を行うと、同じデータをラスタ形式から全く同じベクトル形式に戻すことはできなくなります。
ベクトル形式からラスタ形式への変換は比較的短時間で完了します。この変換ではピクセルから計算を行うよりも簡単な、いくつかの分析処理を実行すればよいだけだからです。
ラスタからベクトルへの変換
同様に、ラスタデータをベクトルデータ化することも可能です。ラスタ形式の衛星画像を使って、道路のラインや家屋のポイント、建物の外形ポリゴンなどの図形を描いたり、トレース
したりします。こうしてデータをベクトル形式にすることで、より多くの情報を扱うことができるようになります。例えば、道路をあらわすベクトルデータを使った経路探索などもできるようになります。衛星画像に映された道路の画像そのままでは、こうした計算はできません。
シミュレーション
地理データを使うことによって、ある特定の自然現象をシミュレーションすることができるようになります。また、このシミュレーションは地図作成者が行う作業の大部分を占めています。例えば、山麓の範囲に対して標高のデータが与えられていれば、山麓の日照や陰影を算出し、陰影図、と呼ばれるシミュレーションを行うことが可能になります。
データの量と質次第では、より複雑な工程も可能です。例えば、降雨があった後に水が流れる領域を測る分水嶺
のシミュレーションや、山麓の頂上に立った時に周辺に見えるものをあらわす可視域
のシミュレーションなどがあります。
データの集約
データ集約のもっとも基本的な形は、足し算です。複数の数字を対象とし、それらを一度にまとめて利用することが可能です。例えば国家のGDPという数値は、単純にそれぞれの経済活動の結果を一覧化した情報よりも手軽に利用が可能でしょう。
地図における集約も同様です。各家庭の収入データが大量に存在するなど、個々のデータが複数ある場合に、特定地域ごとに対象を区切って、値の合計や平均を求めることができます。こうすることで、例えば特定の市町村ごとの収入平均を地図上に可視化することが可能になります。
集約の考え方は、 ビニング (binning) と呼ばれる技術手法でも使われます。複数のポイントが個別に点在する状況で、地図の上に四角形や六角形の領域を区切ります。区切られた領域の中にすべてのポイントが収まるようにします。このような処理を行うことで、大量に存在する小さなポイント情報を個別に扱うのではなく、統計区分のような形式で地図のスタイルを変更することが可能になります。
補間
大量のデータを集め、抽出することによって分析や可視化を簡素化するという集約の考え方と違い、補間の処理では値の空白を埋める
ことを行います。補間作業は標高データなどのデータセットでよく使われる手法です。例えば、山麓地域で、数センチ単位の高さデータをもったピクセル状のラスタデータがあり、なおかつ、そのなかのいくつかの場所でデータが欠落している(プログラマ用語で、値がnull
になっている)とします。
補間処理を行う場合、空白
ピクセルの周囲にあるピクセルの値を確認し、空白になっている値が基本的に周辺の値と似通った値である、と仮定します。山麓の頂上付近のピクセルが欠落している場合、その地点の標高はそれなりに高いはずですし、逆に、渓谷になっている部分の標高の値は低くなっているはずです。
補間処理はベクトルデータ形式に対しても行われます。ボロノイ図の生成アルゴリズムを使い、複数のポイント情報を元データとして、それらをつないだポリゴンにする処理などがあげられます。
ポイントデータの補間には、例えば以下のような方法があります:
- ヒートマップ ではそれぞれのポイントに重み付けを与え、”温度表示”に似た色合いでポイントの密度を表現します。
- 等高線 では、ポイントの中からサンプルを選び出し、それぞれをラインでつなぐことによって、おおまかな値の連続性を表現します。標高を表現する地図ではこの技術がよく使われます。
- ティン (TIN) (不整三角形網 / Triangulated Irregular Network) は、それぞれのポイントの間を三角形になるように結ぶことでその地域を表現します。
- ボロノイ図 では複数のポイントをひとまとめとして、それぞれを囲う領域をポリゴンとして表現します。
結びにかえて
私たちはこの文書が、あなたの視野を広げ、思考の幅を広げる読み物になっていることを願っています。地図に関する領域にはとても高いポテンシャルがあり、そして、答えを得ていない多くの質問があります。芸術や数学、物理学、経済学など、地図には多くの論題が集まり、そこから異なる分野へ道が伸びているのです。
もしよろしければ、今後の内容提案やご指摘をいただけるとたいへん嬉しく思います。
ライセンス
日本語版に関して
日本語翻訳や内容の指摘については こちらまでお寄せください。
comments powered by Disqus