改元・差別・多様性・測地系・カレンダー……

投稿日:

 以前、GIS(空間情報システム)について深く考えていた時、「地球上のある一点」とか、あるいは「宇宙のある一点」を何らかの座標で表した時、現実の空間に存在するその地点はただ一つであるにもかかわらず、使用する座標系によって表現や数値が異なり、あたかも違う地点が複数存在するかのようになってしまうのは、何としてもどうにかしなければならない、と思った。

 その頃、ちょうど日本では「測地成果2000」という標準が行き渡り、明治時代からの伝統である「ベッセル楕円体」を使用した所謂(いわゆる)「日本測地系」の使用をやめ、国際標準の「GRS-80」にほぼ完全に切り替え終わっていたが、切り替わる前後しばらくの期間、旧ベッセル楕円体測地系と、新GRS-80測地系が混在し、地球の同じある一点を示すのに、複数の数値が混在していた。

 そこへ、GPSの普及、またこれを活用したカーナビの普及で、米国主導の座標系である「WGS-84」も混在して使用されるようになった。そのため、当時の情報システム内部では、旧日本測地系、GRS-80測地系、WGS-84測地系の三つの測地系を矛盾なく混在させて作動させる必要があった。

 プログラミング技術上では、例えばC++やJavaなどのオブジェクト指向言語なら、こうした事態を解決するため「座標」のクラスを作り、クラス内部ではいずれか適切な座標系で数値を保持させる。その数値は「プライベート」にして隠蔽し、クラス外からの直接操作はこれを禁ずる。「アクセッサ」のみを使用して座標を操作するのだ。そして、いずれの測地系を使用して値を入力しても、内部では必ず空間の一点のみを指す値に変換して保持し、また逆に、値を取り出す際には、いずれの測地系での値を要求しても正しく取り出し可能とする。

 こうしたふるまいをするクラスを作ることで、プログラム内部では混乱も矛盾もなく座標を扱えるようになる。無論、アメリカの旧測地系であるクラーク楕円体をはじめとして、世界中の測地系を詰め込んでクラスをデラックス化するのもよい。

 さて、こうしたことを思い出していて、日付についても似たようなことを考える。

 世界には多様な文化があり、そのため、「ある日ある時間」を表すにも、文化や地域によってさまざまな表し方が存在する。思いつくまま挙げるだけでも、例えば教祖イエス・キリストの生誕を基準とする西暦、ヨーロッパのグレゴリオ暦やユリウス暦、太陰暦を基本とするイスラム暦、同じ太陰暦でも中華文化圏で用いられてきた干支(かんし)を使用する日付表現、日本の元号や朝鮮、就中(なかんづく)北朝鮮の現在の革命年号、日の出・日の入りを基準とした不定時法など、様々だ。

 だが、どんな日付表現をしようが、科学的には「ある日ある時間」は、ただ一つである。

 一方、コンピュータシステムは人間を支えるものであって、人間がコンピュータに奉仕しているようでは本末転倒だ。コンピュータはあらゆる日付の表現ができ、かつ、あらゆる日付の表現を受け取ることができることこそ望ましい。世界中の多様な文化を矛盾なく受け()れ扱うことができてこそ、人間に奉仕するためのあるべきコンピュータシステムの姿であると言える。

 しかるに、現在のコンピュータシステムはその点が貧弱である。「建久二年辛亥(うるう)十二月(ついたち)」と入力しても、「1192年1月17日」と入力しても、はたまた「587年のズー・アルヒッジャの13日」と入力しても全てこれを許し、かつ、それが同じ日付を指しており、また逆に、どんな日付表現の出力を要求されようと、考え得る限りの多様さで人間にこれを返すようでなければならない。

 今このようなことを考える理由は、ただ一点、畏きあたりにおかせられて、近々まさに譲位あそばされんとし、恐れながら改元の沙汰もこれあることと考えられるからだ。

 改元であろうと何であろうと、人間に奉仕するべきコンピュータシステムは、これを平然と受け()れるものでなければならない。そこに多大のシステム保守作業があるなどもってのほかである。

 だが、現代のコンピュータシステムはそこが貧弱であるため、改元で右往左往しなければならないのだ。

 それどころか、コンピュータシステム運用上の煩雑さを理由として、元号制に反対したり、イスラム文化やアジアの文化を否定し、「西暦で統一すべき」などと、多様な文化を蔑んでそれでよしとする差別主義者がIT技術者にすら少なからず見受けられるのは、あまりにも残念である。

富士山からどこまで見えるかな

投稿日:

 某時某所にて……

友達 「富士山から見たら、どこまで見えるかなあ」

私  「さあ?……結構遠くまで見えるんじゃねえの?」

友達 「太平洋の島とか見えるかな?」

……と、たわいない雑談である。

私  「さあ~?……どこまで見えるかは知らんが、苦労して登頂すれば、浄土とか天国とか、あるいは『希望』『幸福』といったような、形而上のブツがホノ見えるんじゃないか?」

 とまあ、これは雑談であるから、どこまで見えるなんて答えは実際なんだってよく、どうでもよいわけである。

 しかし、計算せよとなれば、これは簡単なようでいて、その実、掘り下げるといろいろあって深い。

 簡単に図示すると、こういうことだ。

地球・富士山・水平線b

 富士山から見たら水平線はどれくらい遠くにありますか、という図だ。雑談の「どこまで見えるか」、ということになると、見る対象物にも高さがあるのでこの図の通りではなくなってくるが、とりあえずこうしておこう。

 もうちょっと算数っぽく、幾何っぽく描くと、こういうふうになる。

地球・富士山・水平線2

 このように図示してしまえば、まことに単純きわまる。これは、学校で習う「ピタゴラスの定理」の問題だ。

ピタゴラスの定理c^2=a^2+b^2

 定理を問題にあてはめると、

地球・富士山・水平線2

(r+h)^2=Rn^2+r^2

Rn^2=(r+h)^2-r^2

Rn=\sqrt{(r+h)^2-r^2}

ここに

r: 地球半径
h: 富士山の高さ
Rn: 水平線までの距離

 と、いうわけであるから、実際の数字を調べ、関数電卓でポチポチッと計算すればよい。

 地球の半径、図中の「r」はだいたい6千4百キロメートルくらいと言われている。富士山の高さは3776メートル。

\sqrt{(6400000+3776)^2-6400000^2}=219879.64475

私  「ほほぉ、だいたい220kmぐらいまで見えるみたいだぞ」

友達 「佐藤よぉ、だからお前はツメが甘いってんだよ。お前さ、富士山は『3776メートル』ってメートル単位で足しときながら、地球はザックリ6千4百キロメートルって、100キロ単位じゃねえか。そりゃねェだろ」

私  「ぬぅ……しからば、ネットでチョイと検索したら出てきた、この『6千371キロ』ってのを使おうじゃないか」

\sqrt{(6371000+3776)^2-6371000^2}=219381.06157

私  「これでどうだ。だいたい220キロっ!!結局数字はあんまし変わらんだろ??」

友達 「いや、変わる変わらんじゃなくて、姿勢の問題だろうが。それに佐藤、地球は楕円体なんだぜ?赤道半径と極半径は違うワケだからさ~」

私  「細かいやっちゃのぉ~……。ああ、もう、はいはい、えーっと、ググると地球の扁平率はだいたい300分の1、と出てるから、さっきの6371キロを300で割って、それを6371から引きゃあよい、と」

6371-\dfrac{6371}{300}=6349.76333...

私  「んでもって、本当に楕円でやると、経緯度によって複雑に水平線の形が変化して、水平線までの距離はいくら、という計算は簡単には出なくなるから、ここは平均してしまおう」

\dfrac{6349.7633+6371}{2}=6360.3817

私  「で、計算をやりなおすと……」

\sqrt{(6360381.7+3776)^2-6360381.7^2}=219198.2226

私  「これでどうだ?」

友達 「あー、ダメだな」

私  「何でだ?」

友達 「だって佐藤よ、地球の楕円体は研究機関や国によっていろいろあるだろうが、世界測地系とか日本測地系とか」

私  「……だーっ!ウルサイウルサイっ!やれば文句ないんでしょうが、やれば!!」

地球楕円体諸元2(データはコチラ)

 ここでは各種出典の楕円体を挙げた。(ちな)みに、実はこの「水平線までの距離」の話題はネット上で多く見つかるが、上の表の中の「ベッセル楕円体の赤道半径」を使用しているサイトが多い。だが、今は日本でもベッセル楕円体は公式には使われていない。平成14年(2002年)に法律が変わり、世界測地系に切り替わったのだ。表の一番下から3番目と2番目にある「GRS-80」「GRS-80(改訂)」というのが現在世界測地系として採用されている地球楕円体の諸元だ。また、一番下にある「WGS-84」というのがGRS-80とほぼ同じ数字になっているが、これはGPSの測位計算の基礎になっている楕円体である。

友達 「ほぉ~……調べたねえ」

私  「ゼイ、ゼイ……。調べたぞっ。……で、このGRS-80かWGS-84あたりを使っとけば文句ないだろっ?んで、幾何平均を使っとこうじゃないの!」

\sqrt{(6367435.68+3776)^2-6367435.68^2}=219319.7037

私  「どうじゃっ!!だいたい220キロっ!!……って、最初から全然数字変わってないけど!!」

友達 「佐藤、お前さ、これ、『真空の場合』じゃん。『光』ってものはさ、地球大気の密度差で回折(かいせつ)して遠くまで届くンだよな」

私  「お前、ほんっと細かいな。そんなネチネチしていて、よく今まで何事もなく生きてこれたと思うよ!!……へいへい、『等価地球半径』ね」

 そう。電波や光は回折する。その回折曲線を加味して計算するのは多少骨折りなので、実用上は扱う波長に合わせて地球の半径をちょっぴり大きくしてやるわけだ。これを「等価地球半径」と言う。

等価地球半径

 この等価地球半径、電波の場合は地球半径の\dfrac{4}{3}倍、光の場合は\dfrac{3.5}{3}倍と言われている。

私  「じゃ、やりますよ。やりゃいいんでしょ。……世界測地系の平均地球半径6367435.68に等価地球半径係数をかけまして……」

6367435.68\times\dfrac{3.5}{3}=7428674.96

私  「んで、これと富士山の標高使って……」

\sqrt{(7428674.96+3776)^2-7428674.96^2}=236887.3392

私  「……って、だいたい237キロ。……おお、数字がちょっと変わったぞ。14キロぐらい多く見えるな。わっはっは、大気様々よのう!Google Mapで237キロを測ってみると……」

富士から237キロ

私  「おお、八丈島はちょっとムリだが、理論上は御蔵島辺りまでは見えるっちゅうことになるな」

友達 「佐藤よォ。いいんだけどさ、地球の楕円体なんて仮決めのもので、実際はゴツゴツした岩石がいろんな密度で分布してて、つまりこれが『ジオイド』ってやつだ、海面ですら幾何学的な楕円体なんかじゃないんだぜ?だから、お前の計算はナンセンスだ。全部意味がない」

私  「殺すぞキサマ(笑)」