---
title: はじめての地理空間情報
tags: geo,python
---
はじめての地理空間情報
===
## はじめに
* GEOとは
* 「地球・土地」の意
* Geophysics(ジオフィジックス)の略
* Geographyは地理学
* 地理空間情報 (地理空間データ)
* 英語では、geospatial information と言われる
* 空間上の特定の地点又は区域の位置を示す情報(位置情報)とそれに関連付けられた様々な事象に関する情報、もしくは位置情報のみからなる情報をいう。
* 位置情報をもった、人間(社会・経済・文化等)及び自然環境に関する情報のことである。
* GIS (地理情報システム)
* geographic Information Systemの略
* 日本語では「地理情報システム」という
* 地理的位置を手がかりに、位置に関する情報を持ったデータ(空間データ)を総合的に管理・加工し、視覚的に表示し、高度な分析や迅速な判断を可能にする技術である。
* 地理空間情報をデータとして表現し、コンピューターで処理を行う
### 基本Geoデータ
地物は、ポイント(点)、ライン(線)、ポリゴン(面)で表現される。
- POINT(点)
- LINESTRING(線)
- POLYGON(面)
#### 参考
* [GISとは・・・](http://www.gsi.go.jp/GIS/whatisgis.html)
* [GIS実習オープン教材](https://gis-oer.github.io/gitbook/book/)
---
## 地球は丸くない?
地表は平らではなく、山や谷があるので表面は凸凹である

ジオイドとは何か? [前編]
https://qzss.go.jp/overview/column/geoid_151225.html
---
## 測地系と座標系
## 地理空間データ
地理空間データは位置を示すために様々な座標が定義されている。
座標系は大きく分けると経緯度で定義された地理座標系と平面上で定義された投影座標系の2つがある。
### 測地系
測地系とはその経緯度の座標で表す時の座標の基準(点)。
モデルとして採用する地球(楕円体)の形によって分かれる
#### 分類
* 世界測地系 - 国際的に定められた測地系
- 例)日本測地系2011(JGD2011)、WGS84、日本測地系2000(JGD2000)
* 日本測地系 - 2002年の測量法改正以前は、この測地系を使った測量が行われていた
- 旧測地系とも呼ばれている。日本でも測地系は2002年(平成14年)4月から測量法により世界測地系へ移行されることになった。
- 例)日本測地系TOKYO
##### 経度
イギリスのグリニッチ天文台跡を通る子午線(南北の線)を基準に東西を180度で表します。東まわりを東経、西まわりを西経と呼びます。子午線を経線といいます。
##### 緯度
赤道を基準として南北へそれぞれ90度で表します。赤道の北側を北緯、南側を南緯と呼びます。赤道に平行な線を緯線といいます。
### 座標系
地球上の球面(3次元の立体)を2次元の地図の平面上に表現する方法。
#### 分類
* 地理座標系
- 3次元(X,Y,Z)で位置を表現。赤道を経度 0 度(Y))、旧グリニッジ天文台跡緯度0度(X) とした座標系
- 地球の重心付近を原点としている。真の重心はわからないので統一はされてない
- 世界等の広域で表現可能だが、地球は真円ではないので面積や角度が正確でない
* 投影座標系
- 3次元である地球を 2 次元の平面に投影し、XY 座標で表現する座標系
- 地球を平面に投影した面上における原点からの距離でXY 座標で表現する座標系
- 用いる投影法によって、距離・面積・角度のいずれかを正確に表現できる
- 正しい形状での地図表現、図形の作図、距離や面積による解析などを行う場合は、投影座標系を用いる
<div align="center" style="margin-bottom:50px;margin-top:30px">
<img src="https://i.imgur.com/ZIbfrGp.png" width=100% style="">
</div>
* https://www.esrij.com/gis-guide/coordinate-and-spatial/coordinate-system/
</div>
## 投影座標系
形状・距離・方位・面積等の全てを正確に保つ事は不可能なため、用途に応じて様々な方法・分類がある。
### 性質による分類
* 正積図法:面積が正しい
* 正角図法:任意の二地点間を結んだ直線と経線のなす角度が正しい
* 正距図法:距離が正しい
### 投影法で分類
* 方位図法:地球の周辺に置かれた平面に地球の姿を投影する。
* 円錐図法:地球に傘のような円錐をかぶせて地球の姿を投影し、平面に切り広げる。
* 円筒図法:地球に帯を巻くように円筒をかぶせて地球の姿を投影し、平面に切り広げる。

* https://ja.wikipedia.org/wiki/方位図法
* https://ja.wikipedia.org/wiki/円錐図法
* https://ja.wikipedia.org/wiki/円筒図法
### 地図投影法の大きな3つ

* https://docs.qgis.org/2.8/en/docs/gentle_gis_introduction/coordinate_reference_systems.html
### 日本でよく使われる代表的な座標系
日本では一般に以下の3つが多く利用されている
#### 地理座標系
* 緯度経度の3次元(X,Y,Z)で座標を表す
* 赤道を経度0度(Y)、旧グリニッジ天文台跡を緯度0度(X) とした座標
* 原点は地球の重心付近
#### 投影座標系
* メルカトル図法
* 地球を円筒状にしてXY座標で場所を表す
* UTM座標系 (ユニバーサル横メルカトル図法)
* 地球を6度ずつ60の帯(ゾーン)に縦に分割した座標
* 平面直角座標系
* 日本国内を土地の状況に合わせて19に分割した座標
### EPSGコードとSRID
#### OGC
OGCは(Open Geospatial Consortium) <http://www.opengeospatial.org/>は、自発的合意に基づく国際的な標準化機構です。
業界主導で地理情報の標準化に取り組んでいる非営利団体
#### EPSG
EPSG(European Petroleum Survey Group)という団体によって作成された、測地系、座標系、地図投影法等をコード体系にしたもの。現在は、イギリスのInternational Association of Oil & Gas Producers(OGP)が管理している。
例) EPSG:4326 -> 世界測地系 WGS84,地理座標系 <br>
EPSGオフィシャルの検索サービスは http://www.epsg-registry.org/
#### SRID
SRID(空間参照系識別コード(Spatial Reference System Identifier)) は、“出典コード(オーソリティ):(整数コード)”とし定義されたコード体系。
EPSGで定義されたものを始めとして、さまざまな標準 SRID が認められている。整数コードの重複を回避するためのものではあるが、オーソリティのコードを省略した場合は、 EPSGコードとして認識されることが多いので、 SRID=EPSGコードと考えてよい
例) SRID(EPSG:4326) ≒ ERSG(4326)
### 地図系アプリケーションでよく使われるコード
| SRID | 測地系 | 座標系 | 目的 |
|:-----|:--------------|:---------|:------------------------|
| 4326 | WGS84 | 地理座標系 | GPSで得られる位置 緯度経度 |
| 4301 | 日本測地系TOKYO | 地理座標系 | 日本測地系 経度緯度 |
| 4612 | JGD2000 | 地理座標系 | 世界測地系 経度緯度 |
EPSG:4326は、米軍が策定した測地系でGPS等に使われている。GPSデータ等のデータはこれが主流となっている。

* http://www.gsi.go.jp/sokuchikijun/datum-main.html
### メルカトル図法
| SRID | 測地系 | 座標系 | 目的 |
|:-----|:------|:------|:-----|
| 3857 (900913) | WGS84 | 球面(半径6378137m)メルカトル図法 | Google Maps等各種ウェブ地図アプリケーション。緯度経度で表現 |
地球を円筒状にしてXY座標で場所を表す。正角円筒図法ともいう。
EPSG:3857 は、Webアプリケーションのデファクトコードになっている。 Googleによって作成されたものでWebメルカトルとも呼ばれている。緯度約85度以上の北極や南極周辺の地図を表現するのをあきらめて範囲を限定した投影法(一般的な利用シーンでは問題とならないと判断した)で、すばやく地図を表示できるようにしたもの。非公式にはGoogleをもじってEPSG:900913とも言われているがEPSGレジストリには登録されていない。BingMap等にも使われている

* https://ja.wikipedia.org/wiki/メルカトル図法
### UTM座標系 (ユニバーサル横メルカトル図法)
| SRID | 測地系 | 座標系 | 目的 |
|:-----|:------|:------|:-----|
| 51 | 6688 | 3097 | 東経120-126 |
| 52 | 6689 | 3098 | 東経126-132 |
| 53 | 6690 | 3099 | 東経132-138 |
| 54 | 6691 | 3100 | 東経138-144 |
| 55 | 6692 | 3101 | 東経144-150 |
地球を6度ずつ60の帯(ゾーン)に縦に分割した座標

* http://d.hatena.ne.jp/tmizu23/20091215/1260868350 <br>
* http://www.gsi.go.jp/chubu/minichishiki10.html
### 19の平面直角座標系
| 系 | EPSG(JGD2011) | EPSG(JGD2000) | 区域 |
|:---|:--------------|:--------------|:----|
| 1 | 6669 | 2443 | 長崎県、鹿児島県の一部 |
| 2 | 6670 | 2444 | 福岡県、佐賀県、熊本県、大分県、宮崎県、鹿児島県の一部 |
| 3 | 6671 | 2445 | 山口県、島根県、広島県 |
| 4 | 6672 | 2446 | 香川県、愛媛県、徳島県、高知県 |
| 5 | 6673 | 2447 | 兵庫県、鳥取県、岡山県 |
| 6 | 6674 | 2448 | 京都府、大阪府、福井県、滋賀県、三重県、奈良県、和歌山県 |
| 7 | 6675 | 2449 | 石川県、富山県、岐阜県、愛知県 |
| 8 | 6676 | 2450 | 新潟県、長野県、山梨県、静岡県 |
| 9 | 6677 | 2451 | 東京都の一部、福島県、栃木県、茨城県、埼玉県、千葉県、群馬県、神祭川県 |
| 10 | 6678 | 2452 | 青森県、秋田県、山形県、岩手県、宮城県 |
| 11 | 6679 | 2453 | 北海道の一部 |
| 12 | 6680 | 2454 | 北海道の一部 |
| 13 | 6681 | 2455 | 北海道の一部 |
| 14 | 6682 | 2456 | 東京都の一部 |
| 15 | 6683 | 2457 | 沖縄県の一部 |
| 16 | 6684 | 2458 | 沖縄県の一部 |
| 17 | 6685 | 2459 | 沖縄県の一部 |
| 18 | 6686 | 2460 | 東京都の一部 |
| 19 | 6687 | 2461 | 東京都の一部 |
狭い範囲だけを投影して歪みを少なくして、投影する図法日本国内を土地の状況に合わせて19に分割した座標

* http://www.gsi.go.jp/sokuchikijun/jpc.html <br>
* http://d.hatena.ne.jp/tmizu23/20091215/1260868350
---
## 空間データとファイル
### 地理情報のデータ
GISでよく利用するデータとしてベクトルデータとラスタデータがある。
| データ | 特徴 | 代表的なファイル |
|:--------|:----|:---------------|
| ベクトル | ベクトルデータ | SHAPE, KML, GeoJSON |
| | 座標値を持ったデータ | |
| | 拡大縮小による劣化がない| |
| | 地物は、ポイント(点)、ライン(線)、ポリゴン(面)で表現される。| |
| ラスタ | ピクセル(画素)で区分された画像データ | GeoTIFF, PNG, JPEG, GeoPDF |
| | 品質は解像度に依存する | |
| | 拡大縮小で劣化する | |
| | 連続性のあるデータに適している。 | |
| | ピクセルごとに値を用いて地物を表現する。 | |
| | ワールドファイルという、別ファイルに地理参照情報をもたせるものもある。 | |
* https://gis-oer.github.io/gitbook/book/materials/00/00.html#%E3%83%99%E3%82%AF%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF
* https://gis-oer.github.io/gitbook/book/materials/00/00.html#%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF
### シェープファイル(Shapefile)
* GISの世界市場でトップシェアを誇る米国ESRI社が提唱したファイル
* GIS業界のデファクト的なファイルフォーマット
* ベクターデータ形式のファイル
* 同名ファイル+拡張子の複数ファイルがセットとなる。必須ファイルとオプションファイルがある
- 必須ファイル:
- .shp - 地形情報のファイル
- .shx – レコードのインデックスファイル
- .dbf - 縦表形式の属性情報ファイル。dBASE IV形式
- 代表的なオプションのファイル:
- .prj — 座標系の定義情報. 座標系および投影情報
- 他
* 日本語の文字コードはSJISが比較的多い
* シェープファイル仕様
- <https://www.esrij.com/getting-started/learn-more/shapefile/>
### GeoJSONファイル
* JavaScript Object Notation (JSON) を元に空間情報データの拡張をしたもの
* ベクターデータ方式
* RFCで定義The GeoJSON Specification (RFC 7946)
* TopojsonはGeoJSONの拡張したファイルフォーマット
* GeoJSONの描画を高速、コンパクト化するためにデータを最適化している。
* GeoJSONのデータ量を非可逆圧縮している。
### その他
ベクター・ラスターでそれぞれで、Cloud-Optimizedな形式が実装されてはじめています。
ベクターは[FlatGeobuf](https://github.com/flatgeobuf/flatgeobuf)や[GeoParquet](https://github.com/opengeospatial/geoparquet)があります。
ラスターでは[Cloud-Optimized GeoTIFF(COG)](https://www.cogeo.org/)がデファクトスタンダードとなってきています.
また、SQliteデータベースに様々なGISデータを格納できるファイルとしてGeopackage(.gpkg)もあります。Geopackageは、ベクタデータはもちろん、ラスタや、Mbtilesなどさまざまなデータを格納でき、ひとつのファイルにすることができます。
---
# Geoデータベース
## Geoサポート 空間データベース
| Database | Library Requirements | Supported Versions | Notes |
|:-----------|:---------------------|:-------------------|:------|
| PostgreSQL | GEOS, GDAL, PROJ.4, PostGIS | 9.4+ | Requires PostGIS. |
| MySQL | GEOS, GDAL | 5.6+ | Not OGC-compliant; limited functionality. |
| Oracle | GEOS, GDAL | 12.1+ | XE not supported. |
| SQLite | GEOS, GDAL, PROJ.4, SpatiaLite | 3.7.15+ | Requires SpatiaLite 4.1+ |
**Note**:
PostGIS is recommended, because it is the most mature and feature-rich open source spatial database.
* https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#requirements
## PostGIS
* PostGIS <http://postgis.refractions.net/> はカナダにあるRefractions Research Inc.が開発したもの。
* GEO界隈ではデファクトのデータベース
* PostgreSQLに地理空間情報を扱うための拡張機能。
- PostgreSQLにExtension(postgis)を追加する
* データベースにGEOMETRY型が追加される
- POINT(点)、LINESTRING(線), POLYGON(面)が基本となるる
* 幾何関数という空間演算用の関数が追加される(ST_xxx)
* 空間インデックスをGEOMETRY型につける
### PostGISの空間演算用の関数
* PostGISの地理空間関数。ST_xxxxとSTで始まるものが多い
SQL文の例
> SELECT ST_Area(geog) FROM somegeogtable;
> SELECT road_id, ST_AsText(road_geom) AS geom, road_name FROM roads;
**関数例)**<br>
* ST_Contains() - AがBを含んでいるのかのかチェックする
* ST_Intersects() - AとBが重なっているのかチェックする
* ST_Distance () – AとBの距離を求める
* ST_Area () – ポリゴンの面積を求める
<br> : <br>

* https://qiita.com/yellow_73/items/dc7c5e1ebe95625aee60 <br>
* https://www.finds.jp/docs/pgisman/1.5.1/reference.html <br>
* http://cse.naro.affrc.go.jp/yellow/pgisman/2.0.0/postgis.html#Spatial_Relationships_Measurements
### PostGISの空間演算用の関数


* https://docs.djangoproject.com/en/2.0/ref/contrib/gis/geoquerysets/ <br>
* https://www.finds.jp/docs/pgisman/1.5.1/reference.html
---
## Geoライブラリ
### GISライブラリ
* GEOS (Geometry Engine, Open Source)
- 地理空間情報処理のためのオープンソースライブラリで、OSGeo財団が支援している
- 幾何演算ライブラリ
- <http://trac.osgeo.org/geos/>
* GDAL(Geospatial Data Abstraction Library)
- OSGeo財団が提供しているGISラスターデータフォーマット用ライブラリ
- ラスタおよびベクトル地理空間データ変換ライブラリ
- <http://www.gdal.org/>
* PROJ4 (Cartographic Projections Library)
- 一般的な座標変換ソフトウェア
- 投影変換ライブラリ
- <http://proj4.org/>
#### メモ
* OSGeo財団 (The Open Source Geospatial Foundation)
* https://www.osgeo.jp/
* 地理技術及び地理データの共有化を推進する非営利の非政府
---
# 背景地図 (ベースマップ)
背景地図 (ベースマップ)は、選択することで様々な地図表現が出来ます。

## 代表的な背景地図
### Googleマップ
* Google Maps - <https://www.google.co.jp/maps/>
* 地図データは株式会社ゼンリンのデータ使用している
* 利用規約がある
- Google マップ / Google Earth 追加利用規約 - https://www.google.com/intl/ja_US/help/terms_maps.html
- (例)印刷して道案内のガイドブックに利用は不可
* Google Maps JavaScript APIはフリーミアムモデル
- Maps JavaScript API - <https://developers.google.com/maps/documentation/javascript/?hl=ja>
- 無料で外部に公開されているサイトで1日あたり最大 25,000 回のマップロードが無料 (他のモデルもあり)
- 価格の詳細 - <https://developers.google.com/maps/pricing-and-plans/#details>
### OpenStreetMap
* OpenStreetMap - <https://www.openstreetmap.org/>
* 誰でも自由に利用でき、ユーザ自身が編集することが可能な世界地図のデータセット
* 編集にルールがある。例)事実データしか入力出来ない
* ライセンスはオープンデータベースライセンス (ODbL)
- 著作権とライセンス - (https://www.openstreetmap.org/copyright)
- Open Data Commons Open Database License (ODbL) - (https://opendatacommons.org/licenses/odbl/)
* 無料で利用可能
* データの2次利用と配布が可能
* https://wiki.openstreetmap.org/wiki/JA:タイル
### 地理院地図
* 地理院地図 (電子国土Web) - (https://maps.gsi.go.jp/)
* 国土地理院が提供しているWeb地図
* 地形図や写真の表示か可能
* ライセンスは国土地理院コンテンツ利用規約
- 国土地理院コンテンツ利用規約 - (http://www.gsi.go.jp/kikakuchousei/kikakuchousei40182.html)
### Mapbox
* Mapbox - <https://www.mapbox.com/>
* アプリケーション向けオンラインカスタムマップ
* フリーミアムモデル
- pricing - https://www.mapbox.com/pricing/
* 米国カリフォルニアに本社がある法人
* 様々な地図表現が出来る
### MapTiler(マップタイラー)
* MapTiler - https://maptiler.jp/
* スイスのKlokan Technologiesと共同で日本地図の配信サービス
* 日本の[MIERUNE](https://www.mierune.co.jp/)が提携している
* 「OpenStreetMap」をベースに、地形は国土地理院の「基盤地図情報」を使用
### Geolonia(ジオロニア)
* Geolonia Map - https://geolonia.com/maps/
* OpenStreetMap や国土地理院が公開する情報がベース
* 日本のGeolonia(ジオロニア)が提供 - https://geolonia.com/