学ぶこと

  • Pythonではじめる地理空間情報

  • 地理空間情報データ

インタラクティブなマッピングと地理空間分析を行うための無料でオープンソースの Pythonパッケージ  ユーザーが最小限のコーディングで地理空間データを分析および視覚化可能にしたもの  Google Colab、JupyterNotebook環境で動作  テネシー大学 地理学部 准教授のQiusheng Wu, PhDが開発  foliumやipyleafletなどのライブラリをベースに構築  geemapは、Google Earth Engine (GEE) が動作  leafmapは、geemapのスピンオフでgeemapのGEEなしのバージョン

1. leafmapとは

Leafmapは、Google Colab、JupyterNotebook環境で地図作成と地理空間分析を行うためのPythonパッケージです。

  • 背景地図を自由に変えられる

  • 初期表示位置やズームレベルなど細かく設定できる

  • COGなど、最新のクラウドネイティブなラスター形式も読める

  • GeoPandasのGeoDataFrameが読めるので、つまりほとんどの形式のベクターデータが読める

  • 地物の属性情報は当然みれる

  • HTMLファイルを書き出せる

  • 地物を画面上で書いて、出力できる

  • mapbox style specっぽい書き方でスタイリングできる

  • 地図上からベクターデータにクエリできる

  • 複数のレイヤーを追加できる

  • WhiteboxToolsを取り込んでおり、高度なGIS処理ができる

  • バックエンドとしてkepler.glやpydeckを選択することもできる

  • これらをほぼコーディングせずに行える


2. leadmapのサイト

leafmapを使って手軽にマップ表示をしてみます。

Leafmapは、foliumやipyleaflet(インタラクティブマップ作成用)、WhiteboxToolsやwhiteboxgui(地理空間データ分析用)、ipywidgets(インタラクティブなGUIデザイン用)などのオープンソースのパッケージをベースに構築されています。


3. 演習:Google Colab ファイル

  1. 対話型マッピングのためのPythonパッケージであるleafmapの紹介

    • Introducing the leafmap Python package for interactive mapping (video | gif | notebook)

  2. leafmapでベースマップを使用する

  3. Cloud Optimized GeoTIFF(COG)とSpatioTemporal Asset Catalog(STAC)の利用について

    • Using Cloud Optimized GeoTIFF (COG) and SpatioTemporal Asset Catalog (STAC) (notebook)

  4. Cloud Optimized GeoTIFF(COG)のバーチャルモザイクの作成

    • Creating a virtual mosaic of Cloud Optimized GeoTIFFs (COG) (notebook)

  5. leafmapを使ったローカルラスターデータセットの読み込み

    • Loading local raster datasets with leafmap (notebook)

  6. 地図にカスタム凡例を追加する

    • Adding custom legends to the map (notebook)

  7. 地図にカスタムカラーバーを追加する

    • Adding custom colorbars to the map (notebook)

  8. LeafmapでWhiteboxToolsを使用する

    • Using WhiteboxTools with leafmap (notebook)

  9. CSVをポイントに変換する

  10. ローカルベクターデータ(shp, geojson, kmlなど)を地図に追加する

    • Adding local vector data (e.g., shp, geojson, kml) to the map (notebook)

  11. 複数の地図を同時に可視化するリンクマップの作成

    • Creating linked maps for visualizing multiple maps simultaneously (notebook)

  12. 1行のコードで分割地図を作成する

    • Creating a split-panel map with a single line of code (notebook)

  13. 1行のコードでGeoPandas GeoDataFrameを地図に追加する。

    • Adding a GeoPandas GeoDataFrame to the map with a single line of code (notebook)

  14. PostGISデータベースから地図にデータを追加する

    • Adding data from a PostGIS database to the map (notebook)

  15. OpenStreetMapのデータを1行のコードで地図にダウンロードする。

    • Downloading OpenStreetMap data to the map with a single line of code (notebook)

  16. HERE Map Widget for Jupyterをプロットのバックエンドとして使用する。

  17. 地図にベクタータイルレイヤーを追加する

    • Adding vector tile layers to the map (notebook)

  18. ポップアップ属性を持つポイントレイヤーを地図に追加する

    • Adding a point layer with popup attributes to the map (notebook)

  19. 地図をhtmlファイルとして保存する

  20. プラネットグローバルマンスリーとクオータリーモザイクの追加

    • Adding Planet global monthly and quarterly mosaic (notebook)

  21. タイムセリーズインスペクタをワンクリックで使用する

    • Using timeseries inspector with one click (notebook)

  22. タイムスライダーを使った時系列画像の可視化

    • Using time slider for visualizing timeseries images (notebook)

  23. 1行のコードでカラーマップを作成する

    • Creating colormaps with a single line of code (notebook)

  24. csvからヒートマップを作成する

  25. カラーバーと地図タイトルを使った人口ヒートマップの作成

    • Creating a population heat map with a colorbar and map title (notebook)

  26. kepler.glプロッティングバックエンドを利用したインタラクティブマップの作成

    • Creating an interactive map using the kepler.gl plotting backend (notebook)

  27. ベースマップギャラリーの作成

  28. 1行のコードで地図を公開

    • Publishing maps with a single line of code (notebook)

  29. pydeckプロッティングバックエンドを使用する

    • Using the pydeck plotting backend (notebook)

  30. 米国国勢調査のデータを使用

  31. xyzservicesでベースマップを検索する

    • Searching basemaps with xyzservices (notebook)

  32. ローカル ラスター データセットと Cloud Optimized GeoTIFF (COG) の読み込み

    • Loading local raster datasets and Cloud Optimized GeoTIFF (COG) (notebook)

  33. 地図に画像をオーバーレイ表示する

    • Adding image overlay to the map (notebook)

  34. xyデータからポイントを追加する

    • Adding points from xy data (e.g., CSV, Pandas DataFrame) (notebook)

  35. xyデータからサークルマーカーを追加する

    • Adding circle markers from xy data (e.g., CSV, Pandas DataFrame) (notebook)

  36. 地図にラベルを追加する

  37. Planetary Computer STACアイテムを地図に追加する

    • Adding Planetary Computer STAC item to the map (notebook)

  38. plotlyのプロッティングバックエンドを使用する

    • Using the plotly plotting backend (notebook)

  39. インスペクターツールを使った画素値の取得

    • Getting pixel values using the Inspector tool (notebook)

  40. インタラクティブなplotlyツールバーGUIを使用する

    • Using the interactive plotly toolbar GUI (notebook)

  41. ラスターGUIによるCOG/STACアイテムの読み込み

    • Loading COG/STAC items using the raster GUI (notebook)

  42. クラウド最適化GeoTIFF(COG)の作成

    • Creating Cloud Optimized GeoTIFF (COG) (notebook)

  43. ベクターデータ内の位置や特徴を検索する

    • Searching for locations and features in vector data (notebook)

  44. ベクターデータの属性テーブルをコーディングなしで開く

    • Opening vector data attribute table without coding (notebook)

  45. コーディングなしでインタラクティブにベクターデータを作成

    • Creating vector data interactively without coding (notebook)

  46. 既存のベクターデータをコーディングなしでインタラクティブに編集

    • Editing existing vector data interactively without coding (notebook)

  47. numpyの配列をCOGに変換する

    • Converting numpy array to COG (notebook)

  48. たった1行のコードでLiDARデータを3Dで可視化する

    • Visualizing LiDAR data in 3D with only one line of code (notebook)

  49. foliumで分割地図を作成する

    • Creating a split-panel map with folium (notebook)

  50. カスタムアイコンでマーカークラスタを作成する

    • Creating a marker cluster with custom icons (notebook)

  51. マスクによる画像の切り抜き

  52. NetCDFデータの可視化

    • Visualizing NetCDF data (notebook)

    • netCDF (Network Common Data Form) は、気温、湿度、気圧、風速、方向などの科学的な多次元データ (変数) を格納するためのファイル形式

  53. 多様な分類体系を持つコレポリスマップの作成

    • Creating choropleth maps with a variety of classification schemes (notebook)