【No.011】【GIS初心者必見】ベクタデータとラスタデータとは?ポリゴン、線、点データについて解説、ファイル形式も紹介

はじめに

GIS(地理情報システム)において、地理的な情報は主にベクタデータとラスタデータの2つの形式で表現されます。ベクタデータは、点、線、ポリゴンなどの幾何学的な形状を使用して、地理的な現象を表現します。一方、ラスタデータは、画像のように、ピクセル(画素)を使用して地理情報を表現します。GISでは、ベクタデータとラスタデータの適切な使用により、地理的な現象を正確かつ効率的に表現することができるようになります。

★関連リンク
業務で活用できるAI技集のまとめはこちら

ベクタデータ

ベクタデータは先ほども触れたとおり、点、線、ポリゴンの3種類を表現することができます(イメージとしては以下の通りです)。もし電車で例えるなら、点は駅、線は線路になります。ポリゴンは線で囲まれた領域のことであり多角形の形をしています。

点データ

点データは位置情報、データ情報の2つで構成されています。下図の例でいうと位置情報が「緯度経度」、データ部分が「名称、人数」となっています。データ部分は任意の項目を付与することができますが、たくさん情報を付けすぎるとファイルサイズが大きくなり動作が重くなるケースもあるので注意ください。

線データ

線データも位置情報、データ情報の2つで構成されています。ただ点と異なる部分としては、線は始点と終点が存在するので、2つの緯度経度が必要になります。データ部分は任意の情報を付与することができます。

ポリゴンデータ

ポリゴンデータも位置情報、データ情報の2つで構成されています。点や線と異なる部分としては、多角形を表現するために複数の頂点が存在するため、3つ以上の緯度経度が必要になります。したがって単純な三角形/四角形くらいなら問題ないのですが、例えば東京都の形を表現しようとすると、かなり複雑な形(頂点の数が膨大に増える)ためファイルサイズが大きくなりやすいという特徴があります。

ファイル形式

ベクタデータのファイルの種類を紹介します。比較的よく目にする汎用性の高いファイルはShapefileやGeoJSONになりますが、QGISなどのGISソフトウェアを使う必要があります。簡単に点だけ落としたいときはExcel→3D Mapが一番ラクですので、興味のある方はこちらのページもご確認下さい。

名称形式説明
Shapefile (.shp)バイナリデスクトップGISで最も一般的に使用されているファイル形式。点、ライン、ポリゴンなどのベクター形式を扱える。
GeoJSON (.json)テキストテキスト形式のベクターファイル。地理情報を記述するJSON形式を採用しており、Web上で広く使われている。
CSV(.csv)
Excel File(.xlsx)
テキストカンマ区切りで構成されるテキスト形式のファイル。緯度経度の情報を使った点データの作成によく用いられる。
KML (.kml)テキストGoogle Earthで使用されるベクターファイル形式。点、ライン、ポリゴンなどを扱え、3Dデータも表示できる。
GML (.gml)テキストXML形式のベクターファイル形式。国際標準であり、多くのGISソフトウェアで扱える。
MapInfo Interchange Format (.mif/.mid)テキストMapInfo Proで使用されるベクターファイル形式。点、ライン、ポリゴンなどを扱える。

続いて上表のファイル形式を見てみると、shapeファイルのみバイナリ形式、残りはすべてテキスト形式となります。バイナリ形式とは専用のソフトウェアでしか開くことのできない機械語に置き換えられたファイルのことです。テキスト形式とはテキストエディタ等で開くことのできる人間でも可読できるファイルのことです。双方の特徴を挙げるとすれば、「ファイルサイズが軽いものはバイナリ、編集しやすいものはテキスト」となります。

ラスタデータ

ラスタデータは簡単にいうと画像データのことです。一般的には、空中写真、衛星画像、デジタル標高モデルなどに使用され、ピクセル単位で表現される値を持ちます。具体的には、地物の種類や属性、高度などの情報になります。ちなみに下の図は国土地理院の地球地図日本(標高)というラスタデータです。画像のピクセル毎に値を持ち、標高の値を表現しています。ピクセルのセルサイズはファイルによってきまっており、解像度が高い(=セルサイズが小さい)ラスタファイルは精度が高いというメリットがある反面、ファイルサイズが大きくなるというデメリットもあります。

ファイル形式はGeoTIFF、JPEG、PNGなどがあります。上図はDEM(Digital Elevation Model)といって数値標高モデルを表示しているのですが、こちらはGeoTIFF(.tif)を使っています。JPEGやPNGは画像データでおなじみですが、こちらはタイル地図などで良く活用されます(タイル地図についての詳細はこちら)。

Appendix

ベクタファイルの種類は様々なものがありますが、今回はテキスト形式であるCSV、JSON、XMLの形式について簡単にまとめたいと思います。

CSV

CSVは「Comma-Separated Values」の略称で、データを表形式で保存するためのファイル形式の一つです。各データをカンマで区切って1行に並べ、改行で行を区切ってファイルに保存します。CSVはテキスト形式であり、ExcelやGoogle Sheetsなどのスプレッドシートソフトウェアやプログラミング言語でも読み書きできるため、データの共有や処理に利用されます。また、CSVファイルは軽量で扱いやすいため、データベースなどで扱う前に一時的にデータを保存する場合にもよく使われます。

名称,経度,緯度
東京タワー,139.7454,35.6586
浅草寺,139.7967,35.7147
東京ドーム,139.7519,35.7057

上記コードをテキストにコピー&ペーストして、拡張子を.csvにすれば完成です。

JSON

JSONは「JavaScript Object Notation」の略称で、データを階層的なキーと値のペアで表現し、JavaScriptで扱いやすい形式で表現されます。JSONはGIS以外にも他のプログラミング言語やAPIのデータ送受信などで広く使用されています。ちなみにJSONとGeoJSONの最大の違いは、地理空間情報を扱うかどうかです。GeoJSONは、点、ライン、ポリゴンなどのジオメトリタイプと、ジオメトリを含むフィーチャを表現するためのプロパティを持つFeatureオブジェクトから構成されます。以下のコードはGeoJSONの一例になります。

{
  "type": "FeatureCollection",
  "name": "itp_point_test",
  "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
  "features": [
    { "type": "Feature", "properties": { "name": "東京タワー"}, "geometry": { "type": "Point", "coordinates": [ 139.7454, 35.6586 ] } },
    { "type": "Feature", "properties": { "name": "浅草寺"}, "geometry": { "type": "Point", "coordinates": [ 139.7967, 35.7147 ] } },
    { "type": "Feature", "properties": { "name": "東京ドーム"}, "geometry": { "type": "Point", "coordinates": [ 139.7519, 35.7057 ] } }
  ]
}

上記コードをテキストにコピー&ペーストして、拡張子を.geojsonにすれば完成です。

XML

XMLは「eXtensible Markup Language」の略称で、タグ形式でデータを表現する言語の1つです。タグは、<>で囲まれた要素名や属性から構成され、データの階層構造を表現することができます。今回のコードではKMLを紹介します。KMLは「Keyhole Markup Language」の略称で、Google Earthで使用されることが多く、ポイント、ライン、ポリゴンなどの地理情報を含む地図データを記述するために用いられます。KMLファイルには、地理情報を含むPlacemark、レイヤー、スタイルなどの要素が定義されています。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
	<name>東京ドーム.kml</name>
	<Style id="style_1">
		<IconStyle>
			<scale>1.1</scale>
			<Icon>
				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
			</Icon>
		</IconStyle>
	</Style>

	<Placemark>
		<name>東京タワー</name>
		<styleUrl>style_1</styleUrl>
		<Point>
			<gx:drawOrder>1</gx:drawOrder>
			<coordinates>139.7454,35.6586,0</coordinates>
		</Point>
	</Placemark>
	<Placemark>
		<name>浅草寺</name>
		<styleUrl>style_1</styleUrl>
		<Point>
			<gx:drawOrder>1</gx:drawOrder>
			<coordinates>139.7967,35.7147,0</coordinates>
		</Point>
	</Placemark>
	<Placemark>
		<name>東京ドーム</name>
		<styleUrl>style_1</styleUrl>
		<Point>
			<gx:drawOrder>1</gx:drawOrder>
			<coordinates>139.7519,35.7057,0</coordinates>
		</Point>
	</Placemark>
</Document>
</kml>

上記コードをテキストにコピー&ペーストして、拡張子を.kmlにすれば完成です。

コメント