サボテン紹介関連実験・製作関連実験関連

サボテンの全属の自生地をフィールドナンバーをもとにGoogleMapにまとめて表示するぞ

Field number of cactusサボテン紹介関連
スポンサーリンク

 

このサボテンは南米を自生地とするサボテンである」とか、「北米を自生地とするサボテンである」とか、サボテンの自生地がどこなのかという知識は、サボテン栽培をある程度経験してくると比較的なんとなく理解しているなのですが、ではより細かく具体的に、南米のどこらへんなのか?大陸の西側なのか、東側なのか、海岸沿いなのか内陸なのか、同じようなところに自生している他の属のサボテンは何か?云々、、、とかって案外わからないと思います(少なくとも私は)。

 

ということで、今回は

サボテン科の全属の自生地をGoogleMapに一気に表示したいと思います!

 

表示までの作業工程は以下の通りです。

  1. サボテンのフィールドナンバーのデータを全部取得
  2. データを整形
  3. GoogleMapのマイマップにアップロード

以下、ド素人によるプログラム等の解説が無駄に書かれますので、「んなこたーどうでもいい、さっさとコピアポアの自生地を表示しろ!」という方は結論まで飛んでください。


ということでここからは少しテクニカルな話になります。

まず、

そもそも各サボテンの自生地はどうやって調べるかということなんですが、下記に非常に便利なサイトがあります。

Cactus and Succulent Field Number Query

こちらはサボテン科の属名などからフィールドナンバー等の情報を検索できる(逆検索ももちろんできる)有難いサイトです。

さてさて、フィールドナンバーとは何ぞやということなんですが、端的に言うと「種子の産地情報を検索するための番号」です。番号に紐づいて、例えば、採集した人、採集場所、標高、採集日、などがわかります。バーコードみたいなものですね。

例えばフィールドナンバー 「JN1145」 というのがあり、これを例えば上記のサイトで検索すると

Field number : JN 1145
Collector : Jan Novák
Species : Acanthocalycium glaucum
Locality : Argentina : Catamarca (Rio Belen, 1613 m) 
Date : 2014
Notes :

みたいな情報が手に入るわけです。種子を他者に譲るときはこのフィールドナンバーを一緒に知らせるだけで、その種子の詳細がわかるというわけです。

ちなみに、私はフィールドナンバーは普段の栽培においてあんまり大事にしていません。というのも、以前海外から輸入したフィールドナンバー付き種子から、地域が違うどころか、そもそも種類が違うサボテンが生えてきて以来、信用するのをやめました(そういう意味では学名等のラベル自体もあまりつけなくなりました。当ブログでサボテンの名前によく「おそらく〇〇」という表現が多いのもそのため)。近い未来に、ゲノム分析キットとかが安価で発売されて、家庭で種類を特定できるようになるまでゆっくり待とうかなと思っています。

ということで、こちらのサイトで片っ端から検索していって、データを取得していきます(なお、Cactus and Succulent Field Number Queryのサイト管理者様からは、当ブログにてGoogleMapを用いてデータを表示する許可は頂いております)。

もちろんデータの取得は人力では限界がありますので、プログラム(いわゆるWEBスクレイピング)に任せます。上記サイトの注意書き等やrobot.txtを探しても、特にはスクレイプの禁止は明言されていませんでしたので、とりあえずは大丈夫なのではないかと思います。

なお、上記サイトでは、普通に検索するとサボテン科以外の植物も引っかかってしまいますので、サボテン科の属でフィルタリングする必要があります。ということで、サボテン科全属のリストは同サイトのここから取得しました。

スクレイピングは、言語はpythonコードをGoogle Colabratoryで実行。実際のコードは省略しますが、サイト様にご迷惑をかけないように10秒に1回程度のゆとりアクセスで行いました。

そんで10時間近くかけてゆっくり取得できたのが、約13万レコード。下記のような感じ。

ここからデータの整形がはじまります。

 

とりあえず1列目の「通番」と4列目の「Picture」は不要なので削除します。

そして、どうやら調べる限り、GoogleMapのマイマップに打てるピンは最大1万個(各レイヤーは2000個まで)までとのことなので、13万レコードから表示すべきレコードをEXCELの機能でフィルタリングしていきます。その数が1万個になるまで。ここら辺は「このデータは優先順位は低そうだな」というレベルでなんとなく作業していきます。

  1. Localityで、空白の行を削除 残り:132782件

  2. Localityで「:」終了する行を削除 残り:131150件

  3. Localityで「?」を含む行を削除 残り:130847件

  4. Speciesで重複している行を削除 残り:13608件

  5. Speciesで「?」を含む行を削除 残り:12760件

  6. Speciesで「aff.」を含む行を削除 残り:12068件

  7. Speciesで「sp.」を含む行を削除 残り:11761件

  8. Speciesで「f.」を含む行を削除 残り:10714件

  9. Speciesで「ssp.」を含む行を削除  残り:9752件

これで1万レコードを切りました。

 

そして次は、地図上で検索したときに和名もオプション的に表示されるようにします。

下記の記事で使用した和名データを利用して、

和名を入力すると学名に変換される便利辞書データの作成
本記事は「学名・和名からどんな植物かを一発画像検索するアドオンの作成 | スーパーサボテンタイム」に続き、あまりサボテンと関係ありません。 ブログやTwitterなどで学名を書くことは少なくありません。 例えば太平丸。学...

Species(例:Echinocactus grusonii)と和名(例:金鯱)をEXCELのVLOOKUPで結合し、第4列目を新設してJapanese nameとします(ちなみに、学名の表記やシノニムの関係から、実際はほとんどLOOKUPできませんでした。和名が表示されるのは1/20ぐらいかも)。

 

そして次に、1列目に属名を追加します。属名は学名(例:Echinocactus grusonii)の半角スペースより前の部分なわけですから、EXCELで下記のようにします。

=LEFT(B2, SEARCH(" ",B2,1))

 

そんで最後に、適当なテキストエディターで、Lacalityにある標高や距離情報っぽいものを削除します。たとえば「1600m」とか、「12 km」とか「300-800 m」とかです(追記:今思えば、削除ではなく5列目に転記すべきでした。重要な情報なので。)。

なぜこの作業が必要かというと、GoogleMapにインポートする際に、ごくわずかな確率で「なんだかよくわからないが致命的エラー」が起きるからです。いろいろ試した結果、インポートできるデータとできないデータがあって、数時間のトライ&エラーの検証の結果、この標高や距離情報っぽいものを削れば問題が起きないということがわかりました(実はそれでもインポート後に「住所がない」として表示されないやつが、全データ数のうち1/3~1/4ぐらいあります。もうこれも無視します。めんどいので)。

ということで、正規表現で一気に置換(文字列内削除)します。正規表現においては、スーパード素人なのですが、例えば下のようなやつで。これで「1600m」とか、「12 km」とか、「300-800 m」も全部引っかかるはず。

( |,)+[0-9]*\.*-*[0-9]+\.* *k*m

正直なところ、意図していないものも一部消えてしまったりしていると思いますが、1万レコードのうちのほんのわずかだと思うので無視します。

 

ここまで来たら、あとはGoogleMapのマイマップにレイヤーごとにCSVを分割してインポートするだけです。位置情報にはLacalityを指定します。ピンは属ごとに色を分けたいので、スタイルには1列目のGenera(属)列を指定します。レイヤー分けは本当は属ごとにレイヤーを構成したいのですが、最大10レイヤーという仕様らしいので、諦めます。複数属を一つのレイヤーにいれていきます。

 

そんなこんなで、ここでマップを少し確認してみましょう。

 

例えばバハカリフォルニアの宝石ことフェロカクタス・ジョンストン玉(Ferocactus johnstonianus)。自生地は「アンヘル・デ・ラ・​ガルダ島」というところだけらしいのですが、下記の画像の通り、ちゃんとその島の上に表示されています。

ジョンストン玉

 

一方で、同じくバハカリフォルニアのカルメン島に自生するフェロカクタス・カルメン玉(Ferocactus diguetii carmenensis)においては、データのLocalityがちゃんと「Mexico: Baja California (Isla San Carmen)」になっているにも関わらず、カルメン島ではなく、下記の通りカルメン島の近くの謎の島に表示されていました。

カルメン玉

これは、GoogleMapのアドレス-緯度経度変換が、曖昧な文章の住所っぽい文字列(Locality)に対し、座標を正確に変換できていないのだと思います。今回の場合で言えば、Baja California Islaまでしか解釈していないのだと思います(israはスペイン語で「島」のこと)。もしかしたら文字のカッコのつけ方や並び順など、パースを工夫すれば正確に表示されるのかもしれませんが、10万以上のレコードについて一個一個Locaclityを確認して、それを実行するのは私には不可能なのでとりあえずこのままで。マクロな視点で使うツールとして、おおよその地域は合っているということにしましょう。

あとは、あまりに違う場所(ヨーロッパとか)に立っているノイズのようなピンを削除して・・・完成です!

 


・・・

 

というわけで、できた完成したマップはこれ!

Field Numbers of Cacti - Google マイマップ
Field Numbers of Cacti

下記は、サイト埋め込みverですができれば全画面で見ていただいたほうがいいかもしれません。スマホは・・・どんなふうに見えるかは検証していません。

いろいろ触ってみていただけるとよいかなと。

 

そんで、できたGoogleMapからわかることや興味深いこと!

 

例えば下の画像。

あーメロカクタスって結構な範囲の緯度に分布しているんだなぁとか(最近メロカクタスに統合されたとされる(?)ディスコカクタスの分布なんかも併せてみたりするとさらに面白いかもしれませんね)!

メロカクタス

 

あーギムノカリキウムって海岸沿いには生えてないんだなぁとか!

ギムノカリキウム

 

あーコピアポアって西の海岸線沿いに生えてるんだなぁとか!ということは太平洋からの湿った風の影響とかあるのかなぁとか。

コピアポア

自生地の写真を見ても海が後ろに見えますね。

 

コピアポアと同じようなところに、ユーリキニアエリオシケが生えてるんだなぁとか。だから育て方は似てるんだろうなぁとか(参考:Is there a future for the Cactaceae genera Copiapoa , Eriosyce and Eulychnia ? A status report of a prickly situation | SpringerLink)。逆にエキノプシスなんかは位置的にはギムノに近くて、なんだか緑のエリアと砂漠っぽいエリアの境目に多いなぁとか。海側は海側でも、エスポストアはずいぶん北なんだなぁとか。

エリオシケ

そのほか、プテロカクタスはずいぶん南に生えてるんだなぁとか、ペディオカクタスはずいぶん北に生えてるんだなぁとか、オプンチアはずいぶん自生地が広いなぁとか、リプサリスはそこまで(私の個人的意見として)森の奥深くってことでもないんだなとかとか。。。。

 

あと、先日近所の普通のお花屋さんで売っていた斑入りの激安の半島玉(Ferocactus peninsulae)とか自生地を眺めてみたり。

半島玉錦

半島玉

半島玉の「半島」とは「カリフォルニア半島」のことなのですが、本当にそこにありますね。

・・・

ということで一日眺めてられます。私だけだと思いますけど。

お暇なときや、アメリカ大陸を縦断旅行しているときなどに是非どうぞ!

コメント

タイトルとURLをコピーしました