【Mac】QGISのH3 Toolkitプラグインを使ってUber H3ヘキサゴンメッシュを作成する

# はじめに
皆さまは[Uber H3](https://h3geo.org/)ってご存知ですか？（私はつい先日知ったところです…GISに関わる身としてまずい😱）
なんぞや的なところは[こちらの記事](https://qiita.com/gshirato/items/d8cc928c4131f3292b14)を参照させていただきました!

なんだか[メリットが沢山あるらしいですし、研究でも使われている](https://blog.code4history.dev/entry/2020/07/20/230919)とのことので、とりあえずQGISでメッシュを表示することだけでも試してみたいと思いました。

そこで、QGISならきっとプラグインがあるはず！と思って調べたらちゃんとありましたので、そちらを利用することにしました。

※2023-04-18 追記
下記記事ではWindows環境でのTipsを紹介いただいていますので、Windowsの方は下記記事をご参照ください！

https://qiita.com/ndj/items/4515d68b06017667fa4c

# H3 Toolkit　プラグインをインストールする

【作業環境】
- macOS Monterey 12.6.2 (intel)
- QGIS 3.22.14
- Python 3.8.7
- pip 22.3.1 ※下記手順でアップデート後のバージョン


H3ヘキサゴンメッシュを作成するプラグインはこちらの[H3 Toolkit](https://plugins.qgis.org/plugins/h3_toolkit/)です！
これをインストールすればサクッと作れるのかと思いきや、注意書きに、

:::note info
NOTE: The official H3 Library ('h3' Python package) is not shipped with this plugin and has to be installed separately. The plugin detects if the package is missing and offers basic guidance on how to install.
↓
（Deepl翻訳）
公式のH3ライブラリ（'h3' Pythonパッケージ）は、このプラグインに同梱されていないため、別途インストールする必要があります。このプラグインは、パッケージが欠落しているかどうかを検出し、インストール方法に関する基本的なガイダンスを提供します。
:::

とあり、`h3`パッケージをインストールする必要があるとのこと。

## まずはh3パッケージをインストールする

それでは、QGISのPython環境にh3パッケージをインストールしましょう！
（初めはQGISのPythonコンソールから`pip install h3`と試していました…😅）

### QGISで実行しているPythonの場所を確認する

[こちらのQ&A](https://gis.stackexchange.com/questions/351280/installing-python-modules-for-qgis-3-on-mac)を参考にQGISで実行しているPythonの場所を確認し、私の環境では下記のディレクトリにありました。
`/Applications/QGIS-LTR.app/Contents/MacOS/bin/python3`

### QGISのPython環境にpipを使ってインストール

h3パッケージをインストールする前に、QGISのPython環境のpipをアップデートします。
ターミナルで下記のコマンドを実行します。

```terminal
/Applications/QGIS-LTR.app/Contents/MacOS/bin/python3 -m pip install --upgrade pip
```
※上記のコマンドの参考→[リンク](https://daeudaeu.com/python-pip-difference/)

<br/>

pipをアップデートしたらお目当てのh3パッケージをインストールします！
先ほどと同様に、ターミナルで下記のコマンドを実行します。

```terminal
/Applications/QGIS-LTR.app/Contents/MacOS/bin/python3 -m pip install h3
```
<br/>

インストールできたか確認しましょう。
ターミナルで下記のコマンドを実行します。

```terminal
/Applications/QGIS-LTR.app/Contents/MacOS/bin/python3 -m pip list
```

<br/>

`h3`がインストールされていることが確認できました。

```terminal   
Package               Version
--------------------- ------------
access                1.1.1
affine                2.3.0
appdirs               1.4.4
attrs                 19.3.0
.
.
.
GDAL                  3.2.1
geopandas             0.8.1
giddy                 2.3.3
h3                    3.7.6　
.
.
.
```

## H3 ToolkitをQGISでインストール

やっとH3 Toolkitの登場です！
QGISを立ち上げて、上部メニューバーの`プラグイン`から`プラグインの管理とインストール`に進みます。
検索窓に`H3`と入力するとH3 Toolkitが見つかるので、`インストール`ボタンをくりっくして　インストールしましょう！
（画像ではインストール済みなのでアンインストール・再インストールになっています）
![QGIS_H3Toolkit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/64004d34-fce9-4ac3-f8e3-e9ea399c5324.png)

これでインストール完了です！

# ヘキサゴンメッシュを作ってみる

当初の目的であったH3ヘキサゴンメッシュを作ってみましょう！
プロセシングツールボックスの中にH3というツールが登場しているので、そこから作成します。
プロセシングツールボックスを表示していない場合は、上部メニューバーの`プロセシング`から`ツールボックス`を選択すると表示できます！
（最初はツールバーにアイコンが登場するかと見つからなくて困っていました…）
![QGISツールボックス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/f5e26915-1a89-d80e-d33e-24fa6c3c16a1.png)

Create H3 gridをクリックすると次のようなメニューが表示されます。
![create h3 grid menu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/a59944ba-31bd-179e-73ce-eff4697d0882.png)

設定が必要なのは2箇所で`領域`と`Resolution`です。

まず、`領域`は文字通りメッシュを作成する範囲を指定します。
選択肢としては3つで、
- レイヤから計算
    - 例えば、市町村界のレイヤを指定したり、特定のエリアのレイヤを指定して、そのエリアをベースに作成します。
- キャンバス領域を仕様
    - 画面内全てにメッシュを作成します。
- キャンバスに描画
    - これを選択したあとにキャンバス内に範囲指定すると、その範囲内にメッシュが作成できます。

次に、`Resolution`で16の解像度から選択します。
ズームレベルのようなもので、数字が上がるほど六角形の一辺の距離が短い（＝解像度が高い）メッシュが作成できます。

![resolution.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/f5888864-4a04-9be9-1811-97ed7fdaea69.png)

2つとも設定が完了したら`実行`をするとメッシュが作成されます！

## 会社周辺にメッシュを作成してみる
今回は試しに、会社があるエリアを適当に四角で囲ったレイヤを作成して、その範囲内に作成するように指定してみました。
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/65258caa-5996-9b51-d134-c23d65a663b2.png)

結果はこんな感じで、今回の目的であるH3ヘキサゴンメッシュが無事に作成できました！
メッシュにはちゃんとインデックスが付与されています。
![結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/30b2785c-670b-57b3-f9dc-eb0735e90fe3.png)

せっかくヘキサゴンメッシュを作成できたので、次はこれを使った解析をしてみたいと考えています！