Latest update on 2026年9月18日 (金) at 20:36:19.
【第2181回】 図法(2026年9月13日)
- 今日は日曜だが名谷へ出勤。
- サンデーモーニングは張本さん追悼特集だったが、世界地図の図法の標準を高緯度地方が大きく描かれるメルカトル図法から面積が正しいEqual Earth図法に変えるべきという国連決議についても触れられていた。世界でただ1国だけ反対したというUSAは、日常生活でも世界標準のキログラム・メートルではなくポンド・ヤードを使い続けているし、華氏温度も使い続けているので、たぶんヨーロッパ主導の世界標準が嫌いなのだろう。道徳次元2な行為だよなあ。
- 面積が正しい地図描画図法(投影ともいう、英語ではprojection)は、正積図法と総称されるが、Equal Earthの他にもいろいろある。Rで最も簡単に世界地図が描けるパッケージはmapdataパッケージで、install.packages("mapdata", dep=TRUE)でインストールした後なら、library(mapdata); map("world")で世界地図が描かれる。ヘルプを読むと図法はrectangularとのことで、正積図法かどうかはわからないが、メルカトル図法に比べたらグリーンランドが小さく、正積図法に近い地図ではある。実はmap()関数にはprojection=というオプションがあるのだが、このオプションを使うためにはmapprojパッケージもインストールしておく必要がある。mapprojパッケージにはさまざまな投影法が含まれていて、map("world", projection="mercator")でメルカトル図法の地図(ただしいくつかのデータでエラーが出たと表示され、地図にも余計な横線が何本か入る)、map("world", projection="bonn", parameter=0)でボンヌ図法の地図(parameter=の数字をいろいろ変えると丸っこさが変わって面白い)、map("world", projection="mollweide")でモルワイデ図法の地図(メルカトル図法と同じく余計な横線が入る)、map("world", projection="azequalarea")で北極点中心のランベルト正積方位図法の地図が描かれる。不思議なことに、map("world", projection="rectangular", parameter=0)で描かれる地図は、オプションなしのmap("world")とほぼ同じではあるのだが、若干余白が異なっていて、かつ余計な横線が何本か入る。これはバグなのだろうか?
- いずれにせよ、現在のバージョンではmapprojパッケージにはEqual Earth図法は含まれていないようだ。2018年のr-bloggersの記事によると、sfパッケージとggplot2パッケージを使えばgridグラフィクスならEqual Earth図法の地図も描けるらしいが、baseグラフィクスでの世界地図は欲しいので、国連決議もされたことだし、いくつかのprojection=オプションで余計な横線が描かれるバグを直すことと同時に、map()関数の標準図法としてEqual Earthを導入して欲しいなあ。もっとも、Equal Earth図法も含んでいるPROJという図法のライブラリを取り込んでいるsfパッケージと違って、mapprojパッケージはすべての図法をハードコードしているそうなので、Equal Earth図法も独自にハードコードで取り込むか、またはPROJを取り込むように抜本的に書き直す必要があるので、そう簡単にアップデートできるようなものではなさそうだが。
- その後の調べで、wrap=TRUEとかwrap=c(0, 360)などのオプションをうまく使うと、余計な横線は消えることがわかった(各種図法で世界地図を描くRコード)。例えば、map("world", projection="bonne", parameter=45, wrap=c(0,360))では、ハート型のボンヌ図法の太平洋中心の世界地図が描かれて楽しい。

Geocomputation with Rのオンラインホーム(日本語版)は参考になりそうだが、ggplot2の代わりにtmapというパッケージを使っているとのことで、baseグラフィクスではないようだ。谷村さんのNipponMapパッケージはsfを利用しているにも関わらずbaseグラフィクスの描画をしているので参考になりそうだが、いま読み解いている暇はないなあ。 - たぶん、mapsパッケージのmap()関数デフォルトの投影法であるrectangularはequirectangularの意味で、正距円筒図法というものだと思われる。緯度経度をそのまま縦横座標に投影するので換算式が最も単純であるため、デフォルトになっているのだろう。Equal Earth図法はsinの6乗とか8乗の項が使われているようだ。とはいえ、その換算だけで済むなら、ハードコーディングするのはそんなに難しくなさそうだが。
- 今日のタイガースとの試合はサノー選手を下げてボスラー選手スタメンなのだが、なぜファーストのスタメンを阿部選手か髙橋周平選手にしないのか謎。外国人を使わなくてはいけない縛りでもあるのか? というか、むしろ髙橋周平選手をサードスタメンにして、石川昂弥選手ファーストスタメンで良いと思うが。延長11回表、細川選手のタイムリーツーベースの後、なぜそのままボスラー選手なのかが謎すぎた。ここで出さずにいつ阿部選手を出すというのか。まあ1-0で勝ったわけだし、勝利投手にはなれなかったが髙橋宏斗投手の熱投が報われてよかった。
🦋 (list)
▼前【2180】(今日も書類づくりの後、大阪に行ってくる(2026年9月12日)) ▲次【2182】(今日も書類作り(2026年9月14-15日)) ●Top
🦋 = Cite and link this article to post bluesky, if you have logged in bluesky.
Notice to cite or link here | [TOP PAGE]