🏕️

GIS × Python Tutorial Session2 ~ 主要ライブラリ ~

2023/12/18に公開

はじめに

この記事は「GIS × Python Tutorial」の関連記事です。
今回はPythonでGISを扱う際によく見るライブラリなどの一覧を纏めています。
実際にライブラリをどの様に扱うのかに関しては、次回以降の記事に書いていきます。

Vector

1. shapely

Shapelyでは、ジオメトリの操作や分析を行うことができます。二点間の距離を計測したり、エリアの面積を計測することができます。
また、wktやjsonのシリアライズ、デシリアライズができるため、地理空間データを計算するためのライブラリとして広く使われています。
https://shapely.readthedocs.io/en/stable/#

2. pyproj

pyprojでは、座標系の変換や座標の計算を行うことができます。pyprojは、PROJ.4というC言語で書かれたライブラリをPythonから使えるようにしたものです。pyprojを使うことで、緯度経度座標から平面直角座標系への変換や、逆に平面直角座標系から緯度経度座標への変換ができます。
https://pyproj4.github.io/pyproj/stable/

3. geopy

geopyは、Pythonでジオコーディングを行うためのライブラリです。ジオコーディングとは、住所や地名などのテキスト情報から緯度経度を算出することです。geopyは、様々なジオコーディングサービスを利用して、住所や地名から緯度経度を算出することができます。
https://geopy.readthedocs.io/en/stable/

4. geopandas

GeoPandasは、Pandasの拡張であり、地理空間情報をPandasのようにDataFrameでデータを扱うことができます。座標変換やポリゴン操作などの複雑な処理も簡単に実装できます。
https://geopandas.org/en/stable/docs.html

5. geopolars

geopolarsはgeopandasと同じように地理空間情報をpolarsのようにDataFrameでデータを扱う事が出来ます。geopolarsはまだプロトタイプなので、実務で使うにはgeopandasを使用した方がいいでしょう。普段polarsを使用している自分としては結構期待しています。
https://geopolars.org/latest/

6. osmnx

OSMnxは、PythonでOpenStreetMapからストリートネットワークやその他の地理空間データをダウンロード、モデル化、分析、可視化するためのライブラリです。OSMnxを使うことで、歩道、自転車道、自動車道のネットワークをダウンロードしてモデル化し、1行のコードで分析や可視化を行うことができます。また、都市の施設/興味ポイント、建物のフットプリント、交通停留所、標高データ、ストリートの方向性、速度/移動時間、ルーティングなども同様に簡単に扱うことができます。
https://osmnx.readthedocs.io/en/stable/

Raster

7. rasterio

rasterioは、Pythonで地理空間ラスターデータを扱うためのライブラリです。rasterioは、GeoTIFFやJPEG2000などの一般的なフォーマットのラスターデータを読み込んだり、書き出したりすることができます。また、座標変換やリサンプリングなどのラスターデータの操作もサポートしています。
https://rasterio.readthedocs.io/en/latest/index.html

8. gdal

GDAL(Geospatial Data Abstraction Library)は、OSGeo財団が提供する、ラスターおよびベクター地理空間情報データフォーマットのための変換用ライブラリです。GDALは、フリーのGISライブラリであり、ラスターとベクターを扱うことができます。GDALは、Pythonからも利用することができ、Pythonで地理空間データを扱うための有用なライブラリの一つです。GDALを使うことで、GeoTIFFやJPEG2000などの一般的なフォーマットのラスターデータを読み込んだり、書き出したりすることができます。また、座標変換やリサンプリングなどのラスターデータの操作もサポートしています。
https://gdal.org/api/python_bindings.html#tutorials

9. rasterstats

rasterstatsは、Pythonでラスターデータを扱うためのライブラリです。rasterstatsは、ベクター形式のジオメトリとラスターデータを組み合わせて、ジオメトリに含まれるピクセルの統計情報を計算することができます。rasterstatsは、zonal statisticsやinterpolated point queriesなどの機能を提供しています。また、GeoJSONツールとの簡単な相互運用性を可能にするコマンドラインインターフェイスも提供しています。rasterstatsは、PythonでGISを扱うための有用なライブラリの一つです。
https://pythonhosted.org/rasterstats/

10. RSGISLib

RSGISLibは、リモートセンシングおよびGISデータセットを処理するためのPythonモジュールおよびコマンドラインユーティリティのセットです。RSGISLibは、地理空間データの処理や分析に使われます。RSGISLibは、画像変更検出、分類、高度なデータソース、標高、画像計算、画像キャリブレーション、画像フィルター、画像形態学、画像登録、スペクトルアンミキシング、ラスタGIS、回帰、画像セグメンテーション、時系列解析、ベクトル属性、ベクトルジオメトリ、ベクトルユーティリティ、ゾーン統計などの機能を提供しています。RSGISLibは、リモートセンシングおよびGISデータセットの処理に必要な多くの機能を提供するため、PythonでGISを扱うための有用なライブラリの一つです。
http://rsgislib.org/

11. gee

Google Earth Engine(GEE)は、Googleが提供する地球観測データの解析プラットフォームです。GEEは、Googleが保有する大量の衛星画像や地球観測データをクラウド上で処理し、分析することができます。GEEは、PythonやJavaScriptを使って、地球観測データの取得、処理、分析、可視化を行うことができます。GEEは、地球観測データの解析に必要な多くの機能を提供するため、PythonでGISを扱うための有用なライブラリの一つです。
https://developers.google.com/earth-engine/guides

Visualization

12. Plotly

plotly mapboxは、plotlyの地図描画ライブラリの一つで、mapboxの地図タイルを使用して地図上にデータをプロットすることができます。plotly mapboxは、データの可視化に特化しており、インタラクティブなグラフを簡単に作成できます。また、plotly mapboxは、Pythonの他のライブラリとの連携が容易であるため、データの前処理や後処理にも適しています。
https://plotly.com/python-api-reference/generated/plotly.express.scatter_mapbox.html
https://plotly.com/python-api-reference/generated/plotly.graph_objects.Scattermapbox.html

13. folium

foliumは、Pythonの地図描画ライブラリの一つで、Leaflet.jsを使用して地図上にデータをプロットすることができます。foliumは、Pythonの他のライブラリとの連携が容易であるため、データの前処理や後処理にも適しています。また、foliumは、地図上にマーカーやポリゴンなどのオブジェクトを描画することができ、インタラクティブなグラフを簡単に作成できます。
https://python-visualization.github.io/folium/latest/

14. ipyleaflet

ipyleafletは、Pythonの地図描画ライブラリの一つで、Leaflet.jsを使用して地図上にデータをプロットすることができます。ipyleafletは、Jupyter Notebook上で動作するため、データの可視化に適しています。また、ipyleafletは、Pythonの他のライブラリとの連携が容易であるため、データの前処理や後処理にも適しています。
https://ipyleaflet.readthedocs.io/en/latest/index.html

15. geemap

geemapは、Google Earth Engineを使用して地図上にデータをプロットすることができるPythonのライブラリです。geemapは、Google Earth Engineが提供する大量の衛星画像データを利用できるため、高解像度の地図を作成することができます。また、geemapは、Pythonの他のライブラリとの連携が容易であるため、データの前処理や後処理にも適しています。
https://geemap.org/

おわりに

上記で紹介したライブラリの中には私自身も使用した事のないライブラリもありますが、調べてみて便利そうだと思うものも紹介してみました。また面白そうなライブラリを見つけ次第追記していく予定です。
次回以降のチュートリアルでライブラリごとに実際のpythonコードを紹介していくつもりです。

Discussion