「このサボテンは南米を自生地とするサボテンである」とか、「北米を自生地とするサボテンである」とか、サボテンの自生地がどこなのかという知識は、サボテン栽培をある程度経験してくると比較的なんとなく理解しているなのですが、ではより細かく具体的に、南米のどこらへんなのか?大陸の西側なのか、東側なのか、海岸沿いなのか内陸なのか、同じようなところに自生している他の属のサボテンは何か?云々、、、とかって案外わからないと思います(少なくとも私は)。
ということで、今回は
サボテン科の全属の自生地をGoogleMapに一気に表示したいと思います!
表示までの作業工程は以下の通りです。
- サボテンのフィールドナンバーのデータを全部取得
- データを整形
- GoogleMapのマイマップにアップロード
以下、ド素人によるプログラム等の解説が無駄に書かれますので、「んなこたーどうでもいい、さっさとコピアポアの自生地を表示しろ!」という方は結論まで飛んでください。
ということでここからは少しテクニカルな話になります。
まず、
そもそも各サボテンの自生地はどうやって調べるかということなんですが、下記に非常に便利なサイトがあります。
Cactus and Succulent Field Number Query
こちらはサボテン科の属名などからフィールドナンバー等の情報を検索できる(逆検索ももちろんできる)有難いサイトです。
さてさて、フィールドナンバーとは何ぞやということなんですが、端的に言うと「種子の産地情報を検索するための番号」です。番号に紐づいて、例えば、採集した人、採集場所、標高、採集日、などがわかります。バーコードみたいなものですね。
例えばフィールドナンバー 「JN1145」 というのがあり、これを例えば上記のサイトで検索すると
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万個になるまで。ここら辺は「このデータは優先順位は低そうだな」というレベルでなんとなく作業していきます。
-
Localityで、空白の行を削除 残り:132782件
-
Localityで「:」終了する行を削除 残り:131150件
-
Localityで「?」を含む行を削除 残り:130847件
-
Speciesで重複している行を削除 残り:13608件
-
Speciesで「?」を含む行を削除 残り:12760件
-
Speciesで「aff.」を含む行を削除 残り:12068件
-
Speciesで「sp.」を含む行を削除 残り:11761件
-
Speciesで「f.」を含む行を削除 残り:10714件
-
Speciesで「ssp.」を含む行を削除 残り:9752件
これで1万レコードを切りました。
そして次は、地図上で検索したときに和名もオプション的に表示されるようにします。
下記の記事で使用した和名データを利用して、
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を確認して、それを実行するのは私には不可能なのでとりあえずこのままで。マクロな視点で使うツールとして、おおよその地域は合っているということにしましょう。
あとは、あまりに違う場所(ヨーロッパとか)に立っているノイズのようなピンを削除して・・・完成です!
というわけで、できた完成したマップはこれ!
下記は、サイト埋め込みverですができれば全画面で見ていただいたほうがいいかもしれません。スマホは・・・どんなふうに見えるかは検証していません。
いろいろ触ってみていただけるとよいかなと。
そんで、できたGoogleMapからわかることや興味深いこと!
例えば下の画像。
あーメロカクタスって結構な範囲の緯度に分布しているんだなぁとか(最近メロカクタスに統合されたとされる(?)ディスコカクタスの分布なんかも併せてみたりするとさらに面白いかもしれませんね)!
あーギムノカリキウムって海岸沿いには生えてないんだなぁとか!
あーコピアポアって西の海岸線沿いに生えてるんだなぁとか!ということは太平洋からの湿った風の影響とかあるのかなぁとか。
自生地の写真を見ても海が後ろに見えますね。
コピアポアと同じようなところに、ユーリキニアやエリオシケが生えてるんだなぁとか。だから育て方は似てるんだろうなぁとか(参考:Is there a future for the Cactaceae genera Copiapoa , Eriosyce and Eulychnia ? A status report of a prickly situation | SpringerLink)。逆にエキノプシスなんかは位置的にはギムノに近くて、なんだか緑のエリアと砂漠っぽいエリアの境目に多いなぁとか。海側は海側でも、エスポストアはずいぶん北なんだなぁとか。
そのほか、プテロカクタスはずいぶん南に生えてるんだなぁとか、ペディオカクタスはずいぶん北に生えてるんだなぁとか、オプンチアはずいぶん自生地が広いなぁとか、リプサリスはそこまで(私の個人的意見として)森の奥深くってことでもないんだなとかとか。。。。
あと、先日近所の普通のお花屋さんで売っていた斑入りの激安の半島玉(Ferocactus peninsulae)とか自生地を眺めてみたり。
半島玉の「半島」とは「カリフォルニア半島」のことなのですが、本当にそこにありますね。
・・・
ということで一日眺めてられます。私だけだと思いますけど。
お暇なときや、アメリカ大陸を縦断旅行しているときなどに是非どうぞ!
コメント
始めまして。いつも楽しみに読ませて頂いております。
小生、マンハッタン郊外に住んでいます。
この自生地の地図ですが少なくともニューヨークの二種類は大きな間違いです。
一つは街のど真ん中ですし。笑
ニューヨークエリアの自生地は数カ所知っていますがいずれも「這団扇」だけ
です。一箇所は大群生地になっています。
アメリカに住んで言葉も不自由しないのにこれまで行ったのはアリゾナ州と南米
のアルバ島(メロの大自生地)だけです。リタイアしたらもっとあちこちに行っ
てみたいと思います。
Sakaneさま
はじめまして書き込み&ご指摘ありがとうございます!
データを見てみたところ、
EZ 269(Aylostera hoffmannii)は Locacity Los Toldosというアルゼンチンのブエノスアレレスあたりを指し示すの正解っぽいですが、ニューヨークのLos Toldosというコロンビア料理店を指してしまっていますね。ここらへん機械的コーディングの限界ですかね。
ISI 837(Opuntia compressa)はLocacityがUSA : New York (Long Island) ですから、こちらはフィールドナンバー的にはだいたいあってそうです。まぁ大昔に誰かが植えたものを「自生」していると捉えるのか否かなのでしょうか。ちなみに詳細を確認すると採取日が1974年となっていますから興味深いですね。「自生地」という表現が正しいかはさておき。
言葉に不自由ないのはうらやましいです!いつか私も行ってみたいですね~。
これは素晴らしい。
これは素晴らしい。
このCactus & Succulent Field Numberというサイトは、個人的にヘビーローテーションで利用していますが、メタデータとして大量にGoogle Map上に落とせるんですね。混乱している特定の気になる分類群について、集中的にデータ整理すると、面白そうです。
ただ、サボテンや多肉植物のField Numberについては、研究者やある程度信用できる方のものは使えますが、怪しいものも結構あります。特に種の同定については、準拠している文献にも拠るのもあって、欧米でも半々ですかね。人によっては、地名も怪しいものもあります。この種が、ここにあるワケない的なのもあります。
ここら辺は取捨選択が必要かとは思いますが、地図化自体はとても面白いかと思いますし、個人的にも使ってみたいと感じます。