👋

Automating GIS Processes 2023 を読む その2

2024/01/30に公開

概要

ヘルシンキ大学地球科学・地理学科の GIS コースの教材であるAutomating GIS Processes 203を読んでいきます。

Lesson2

講義動画

https://youtu.be/DzkEbhQEbpY

Overview

このレッスンでは、Geopandasを使ってPythonで空間データを扱う方法を学びます。Geopandasは、表データを分析するPandasと、ジオメトリを扱うshapelyのパワーを組み合わせたものです。

空間データをファイルから読み書きする方法、ジオメトリを操作する方法、異なる座標参照系(CRS)間でデータを変換する方法を学びます。

Learning goals

この1週間で以下のことができるようになる:

一般的なファイルフォーマットから空間データを読み書きできる、

空間および非空間特性によるデータのフィルタリングと再グループ化

データセットの座標参照系の管理と変換

Pythonのshapelyパッケージを使って、Pythonで「単純な特徴」を作成し、操作する方法を学びます。

https://autogis-site.readthedocs.io/en/latest/lessons/lesson-1/overview.html

Pythonを使って空間データを扱い、分析する方法を学びます。コースでは、GIS関連のアプリケーションのために特別に書かれた多くのPythonパッケージのいくつかも知ることができます。

https://autogis-site.readthedocs.io/en/latest/lessons/lesson-1/course-motivation.html

Definitions

シェープファイル:位置情報と関連する属性を保存するためのベクターデータフォーマット。シェープファイルは共通の接頭辞を持つ複数のファイルで構成され、同じディレクトリに保存される必要がある。.shp、shx、.dbf はシェープファイルの必須ファイル拡張子である。その他のファイル拡張子は必須ではありませんが、例えば.prjはしばしば必須です。シェープファイルの拡張子についての詳細は、こちらをご覧ください。シェープファイルフォーマットはESRIによって開発されました。

GeoPackage: 地理空間情報を保存・転送するためのオープンソースフォーマット。GeoPackageはベクターデータとラスターデータの両方を保存できる。詳しくは、GeoPackage は SQLite データベースのコンテナで、拡張子は .gpkg です(すべて 1 つのファイルです!)。GeoPackage フォーマットは Open GeoSpatial Consortium によって管理されている。詳細は https://www.geopackage.org/ を参照。

CRS: 座標参照系 と は、 座標が地球上の実際の位置に ど の よ う に関連す る か を定義す る も のです。地理座標参照系では一般に、 緯度 と 経度 を用います。投影座標参照系は、 x 座標 と y 座標を用いて平面上の位置を表 し ます。このレッスンでは、座標参照系についてさらに学びます!

datum:座標参照系に関連する参照面の中心点、向き、縮尺を定義する。データムによって、同じ座標でも異なる場所に関連付けることができる!例えば、WGS84は世界的に広く使われているデータムである。ETRS89はヨーロッパで使用されているデータムである。

EPSG:EPSGコードは特定の参照系を指す。EPSGは「European Petroleum Survey Group」の略で、もともと空間参照系のデータベースを公開していた。た と えば EPSG:3067 は、 フ ィ ン ラ ン ド で一般的な座標参照系 ETRS-TM35FIN を指す。EPSG:4326はWGS84を指す。EPSG コ ー ド は https://spatialreference.org/ で検索で き ます。

Vector Data I/O

https://autogis-site.readthedocs.io/en/latest/lessons/lesson-2/vector-data-io.html

多くの分析ワークフローの最初のステップはファイルからデータを読み込むことであり、最後のステップは出力ファイルにデータを書き込むことである。多くのジオインフォマティクス研究者が恐れているように、GISデータには多くのファイル形式が存在する。古くから嫌われているが、愛されて確立されたESRI Shapefile、普遍的なGeopackage(GPKG)、ウェブに最適化されたGeoJSONは、より有名な例のほんの一部である。

Pythonはそれらすべてを読むことができます(保証はありませんが)!

現在のPython GISパッケージのほとんどはGDAL/OGRライブラリに依存しており、その最新のインターフェースがfionaとrasterio Pythonパッケージとして存在します。

今日はベクター・データに集中するので、まずfionaの機能を詳しく見て、次にgeopandasを使ってデータのインポートとエクスポートを行いましょう。

Geopandas: an introduction

https://autogis-site.readthedocs.io/en/latest/lessons/lesson-2/geopandas-an-introduction.html

このセクションでは、地理空間ベクトルデータを操作するためのPythonライブラリであるgeopandasの基本について説明します。

Geopandasはベクトルデータセットへの使いやすいインターフェースを提供します。Geo-Pythonコースで学んだデータ解析パッケージであるpandasの機能と、shapelyのジオメトリ処理機能、fionaのジオ空間ファイルフォーマットのサポート、pyprojの地図投影ライブラリを組み合わせたものです。

geopandasの主なデータ構造はGeoDataFramesとGeoSeriesです。これらはpandas.DataFramesとpandas.Seriesの機能を拡張したものです。つまり、geopandasで作業するときにも、pandasのすべてのスキルを使うことができます。

Codes

lesson2 のコードを実行した結果は以下に置きました。

https://github.com/mopinfish/auto-gis-notebooks/tree/main/lessons/lesson-2

Discussion