【地図データ処理】地図データに関する用語のまとめ

# 0. はじめに

　久しぶりの投稿です。最近、私が地図データに興味を持ったので、今回はそれについてまとめてみようと思います。
　この記事では、地図データを扱う上でのことはじめとして、地図データに関する用語についてまとめてみました。

# 1. 地域メッシュコード

　**地域メッシュ**とは、[Wikipedia](https://ja.wikipedia.org/wiki/%E5%9C%B0%E5%9F%9F%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A5)によると、

>統計に利用するために、緯度・経度に基づいて地域をほぼ同じ大きさの網の目（メッシュ）に分けたもの。

のことです。

　また、**地域メッシュコード**は、それぞれの地域メッシュに対してコード(番号)を割り当てたものです。[MULTISOUP](https://maps.multisoup.co.jp/exsample/mesh/mesh_search.html)を用いて調べるとこのようにでてきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541751/4c77e505-b496-e38a-212d-ec0a262de6c4.png)

　地域メッシュコードには1次メッシュから4次メッシュまであり、次数が大きくなるにつれてメッシュの面積が小さくなります。1次メッシュから3次メッシュまでは[JIS規格](https://www.jisc.go.jp/app/jis/general/GnrJISNumberNameSearchList?toGnrJISStandardDetailList)の規格番号[X0410](http://www.jiskikaku-s.co.jp/mysite1/jis-kigou-bangou.pdf)で定められています。


### 1次メッシュ
　地域メッシュコードの先頭から４桁が1次メッシュコードにあたります。1辺の長さは`約80km`になります。

### 2次メッシュ
　１次メッシュを緯線方向・経線方向にそれぞれ8等分することで64等分したメッシュです。メッシュの1辺の長さは`約10km`になります。
　1次メッシュに緯度方向の分割を表す桁と経度方向の分割を表す桁の2桁をつけ加えた6桁で表します。例えば、`503043`のメッシュコードは、メッシュコード`5030`の1次メッシュを64分割したうち、緯度方向南から5番目(0から数えるので)、経度方向西から4番目のメッシュを意味します。

### 3次メッシュ
　2次メッシュを緯線方向・経線方向にそれぞれ10等分することで100等分したメッシュです。メッシュの1辺の長さは`約1km`になります。
　2次メッシュに緯度方向の分割を表す桁と経度方向の分割を表す桁の2桁をつけ加えた8桁で表します。例えば、`50304367`のメッシュコードは、メッシュコード`503043`の1次メッシュを100分割したうち、緯度方向南から7番目、経度方向西から8番目のメッシュを意味します。

### 4次メッシュ
　3次メッシュを緯線方向・経線方向にそれぞれ2等分することで4等分したメッシュです。メッシュの1辺の長さは`約500m`になります。3次メッシュに1から4の数字をつけ加えた9桁で表します。１が南西、２が南東、３が北西、４が北東です。

　地域メッシュコードはこのようなつくりになっているので、低い桁を切り落とすことで用途に応じてメッシュの大きさを簡単に調整することができます。



# 2. Shapefile

　**Shapefile**(シェープファイル)とは、[Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%97%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB#:~:text=%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%97%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%20(Shapefile)%20%E3%81%AF%E3%80%81,%E3%81%AE%E5%B1%9E%E6%80%A7%E3%82%92%E4%BB%98%E4%B8%8E%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82)によると、

> 他の地理情報システム(Geographic Information System)間でのデータの相互運用におけるオープン標準として用いられるファイル形式である。例えば、井戸、川、湖などの空間要素がベクタ画像である点 (数学)、線分、多角形で示され、各要素に固有名称や温度などの任意の属性を付与できる。 また、データ変換ツールなどによって、Google Earthで用いられているKML形式にも出力が可能である。

とのことです。

 Shapefileとはファイル単体の名称ではなく、

- `.shp` —シェープ規格；地形情報の本体。
- `.shx` —シェープインデックス規格；地形データの前方検索、後方検索を高速にするための位置インデックス。
- `.dbf` —属性規格；各シェープに対する縦表形式の属性情報。dBASE IV形式準拠。

の3つの拡張子を必須としたファイルのまとまりを指します。
また、これら３つに加えてオプショナルなファイルとして、

- `.prj` —投影規格；座標系および投影情報。投影法をWell-known text形式で記述したプレーンテキストファイル。
- `.sbn` 及び `.sbx` —空間インデックス。
- `.fbn` 及び `.fbx` —読み取り専用空間インデックス。

などがあります。
　日本地図の5次メッシュまでのShapefileは、[e-Stats](https://www.e-stat.go.jp/gis/statmap-search?page=1&type=2&aggregateUnitForBoundary=H)からダウンロードすることができます。
他にも、[こちら](https://www.esrij.com/gis-guide/esri-dataformat/shapefile/)のページも参考になりました。

# 3. GeoJSON

 GeoJSONとは、[Wikipedia](https://ja.wikipedia.org/wiki/GeoJSON)によると、
>JavaScript Object Notation (JSON) を用いて空間データをエンコードし非空間属性を関連付けるファイルフォーマットである。 属性にはポイント（住所や座標）、ライン（各種道路や境界線）、 ポリゴン（国や地域）などが含まれる。 他のGISファイル形式との違いとして、Open Geospatial Consortiumではなく世界各地の開発者達が開発し管理している点で異なる。

とのことです。

　要するに、図形をJSON形式の辞書で表現したものです。図形の各々の要素(点や線)などに対して、メタ情報(住所など)を埋め込めることから、GISにも使われています。

　GeoJSONは可読性のあるファイルフォーマットなので、

```json:GeoJSON

    "features": [
      { "type": "Feature",
        "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
        "properties": {"prop0": "value0"}
        },
      { "type": "Feature",
        "geometry": {
          "type": "LineString",
          "coordinates": [
            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
            ]
          },
        "properties": {
          "prop0": "value0",
          "prop1": 0.0
          }
        },
      { "type": "Feature",
         "geometry": {
           "type": "Polygon",
           "coordinates": [
             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
               [100.0, 1.0], [100.0, 0.0] ]
             ]
         },
         "properties": {
           "prop0": "value0",
           "prop1": {"this": "that"}
           }
         }
       ]
     }
```

　このように可読性があります。



# 4. 最後に

　今回は地図データを扱う上で重要になってくるであろう、地域メッシュコード・Shapefile・GeoJSONの3つの用語についてまとめてみました。次は、これらのデータを実際に**GeoPandas**や**Folium**などのライブラリを使って扱ってみようと思います。