春を前にしてOpenStreetMapの桜の木について調べてみた

## はじめに
春といえば桜。桜の開花情報を活用するために、**OpenStreetMap (OSM)** における桜の木のマッピング状況を調べてみました。OSMには「natural=tree」というタグで木が登録されており、さらに「genus=Cerasus」や「species=Cerasus x yedoensis」などのタグを用いることで、桜の木を特定することができます。

しかし、実際に東京都23区内で検索してみると、思ったより桜の木が詳しくマッピングされていないことがわかりました。この記事では、OSMにおける桜のマッピング状況を調べた結果とマッピングの方法を共有したいと思います。

🌸レンダリングが得意な方には是非、桜（並木）の素敵な可視化方法も教えていただけたら幸いです！

## OpenStreetMapのタグを使って東京23区の桜を検索してみた
まず、OSMのWikiにあるタグ付けの方法に従い、次のOverpass Turboクエリを使って東京都23区内の桜の木を検索しました。

### **検索クエリ**
```plaintext
[out:json];
(
  node
    ["natural"="tree"]
    ["leaf_type"="broadleaved"]
    ["genus"="Cerasus"]
    ["species"="Cerasus x yedoensis"]
    ["genus:ja"="サクラ属"]
    ["species:ja"="ソメイヨシノ"]
    (35.52, 139.58, 35.83, 139.92);
);
out body;
```

### **検索結果**
🔍 **見つかったのは上野公園の標準木**

![スクリーンショット3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789281/45b2ecc6-7a5c-4060-8ecf-47cc041e017c.png)

OSMでは、桜の木が詳細にタグ付けされているケースが少なく、多くは「natural=tree」のみの状態でした。

>これは、有名な木に関してのみ詳しいマッピングを行うという意図があるのかもしれません。詳しい方がいらっしゃったらアドバイスをいただけたら幸いです。

## 条件を緩和しながらマッピング状況を確認
「species」まで厳密に指定するとヒット数が少ないため、条件を緩和しつつどれくらい桜の木がマッピングされているのか調査を進めてみます。

### **条件緩和（genus のみ）**
```plaintext
[out:json];
(
  node
    ["natural"="tree"]
    ["genus"="Cerasus"]
    (35.52, 139.58, 35.83, 139.92);
);
out body;
```

🔍 **靖国神社の基準木が見つかる！**

![スクリーンショット1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789281/d40163ff-9c58-4359-a720-998642087f67.png)

このクエリでは、靖国神社の桜や上野公園等、いくつかの木がヒットしました。species（品種）まで付いていなくても、genus=Cerasus の情報があるとサクラ属までわかるので、レンダリングなどではある程度有用な情報になりそうな気がします。

## マッピングの改善ポイント
### 1. ソメイヨシノは genus だけでも入れておくと検索に便利
- `species` まで記載があるのが理想ですが、 `genus=Cerasus` が入っているだけでも活用はしやすくなりそう。

### 2. ヤマザクラは紅葉の観点でも役立つので広葉樹タグを含めておくと便利かも
- `species=Cerasus jamasakura` の場合、秋の紅葉データとしても有用。
- `leaf_type=broadleaved` を入れておくと、他の広葉樹と区別できる。

### 3. 名前に「サクラ」が含まれる木も検索対象になる
- 調べていると、一部の木には `name=サクラ` や `name=桜` というタグが付いている場合もあるため、これも検索してみると良いかもしれません。

#### **「名前にサクラが含まれる木を検索するクエリ」**
```plaintext
[out:json];
(
  node
    ["natural"="tree"]
    ["name"~"サクラ|桜"]
    (35.52, 139.58, 35.83, 139.92);
);
out body;
```

## まずは身近な桜を最低限のレベルでマッピング！
OSMのデータをより有用にするために、**まずは身近な桜を `genus=Cerasus` 付きでマッピングする**ことが重要かなと思います。もちろん、[wiki](https://wiki.openstreetmap.org/wiki/JA:Tag:natural%3Dtree#並木_(Tree_rows))の例に合わせて以下を設定できればベストかと思います。

ソメイヨシノ
>natural  = tree
leaf_type     = broadleaved
genus    = Cerasus
genus:ja = サクラ属
species  = "Cerasus × yedoensis"
species:ja = ソメイヨシノ

（例）
![スクリーンショット4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789281/47ed87df-8b31-49c2-8c03-0b5d91adbbbc.png)


ヤマザクラ
>natural  = tree
leaf_type     = broadleaved
genus    = Cerasus
genus:ja = サクラ属
species  = "Cerasus jamasakura"
species:ja = ヤマザクラ

- `natural=tree` 、`genus=Cerasus` ＋`leaf_type=broadleaved` あたりを設定
- `species` が分かる場合は `species=Cerasus × yedoensis` なども追加
- ヤマザクラには個別のspeciesも意図して追加

## まとめと今後：
OSMの桜マッピング状況を調べた結果、まだマッピングできていない木がありそうなことがわかりました。特に `species` まで細かく記載されている桜の木は（少なくとも東京では）それほど多くありませんでした。

一方、レンダリングの活用に向けては個別の木を細かくMappingするよりも[並木](https://wiki.openstreetmap.org/wiki/JA:Tag:natural%3Dtree_row)を活用することが有効かもしれません。この辺りは、レンダリングの手法など共に改めて調べてみたいと思います。

🌸 **ご興味がある方は是非身近な桜のマッピングを進めてみていただけたらと思います！** 🚀