JavaScript

月影図を表示します

若くないと感じる時、それは計算の勘が鈍ったとき。最近数ヶ月使わなければすぐプログラミングのやり方を忘れて過去の作品が遺構になったりAndroidのプロジェクトが全部動かなくなったり。何事も日頃の行いがものを言いますね。

デイリーポータルZ

ブログネタ: 【賞品付き】もう若くないと感じた瞬間は?参加数

|

電力使用状況

テレビは毎日地震と原発の報道、CMはAC(公共広告機構)って戦時中を思わせるノリになってるねぇ。計画停電の当たりくじを引いてしまった私はこんなものをつくりました。計画停電のためかかなり節電が進んでいるようですが、今日の電力使用状況はどうでしょうか。本当は計画停電の情報をリアルタイムに表示するサービスが欲しかったのです。東京電力様が計画停電の情報を全てcsvにまとめてくれたら幸せになれる人が沢山いるでしょう。

データを取得しています。

|

Hartley彗星の位置を調べる

やや遅い時事ネタですが、ハートレイ彗星の位置を求めるサイトをつくってみました。本来であれば公表されている軌道要素、非重力効果から位置計算すべきですが、時間がないので公表されているJ2000の地心極座標をもとに計算しました。なので、計算できる期間が2010年10月1日力学時0時から2011年11月5日力学時0時までに限られています。当サイトはグーグルマップのver.3を使用しているためIE6では閲覧できない可能性があることをご了承くださいm(_ _)m。出典は以下のサイトです。

http://scully.cfa.harvard.edu/~cgi/ReturnPrepEph?d=c&o=0103P

観測地の座標を入力するか上の地図をクリックして座標を取得してください。


標高m
観測する日時を選んでください。
現在の日時
下記の日時
西暦
秒(JST)
観測する日時の大気の条件を入力してください。
ICAO標準大気の条件
下記の条件
気温℃ 気圧hPa 温度勾配℃/m

ここに結果を表示します。

|

ラドーの大気差を無理やり近似

W少年の計算式だと水平方向より下の計算ができないうえ、どうしても誤差が消せないから展望係数の発想を応用して距離によって展望係数を変えてみました。式をいじくると太陽と富士山の位置関係は観測と合うけど時刻がでたらめ。しかも展望係数が1以下、つまり光が上向きに曲がる系になってしまい、どうも低仰角の領域でラドーの大気差表をそのまま用いるのは間違いではないかと思うようになりました。そこで天体の大気差も変えられるようにしてみました。まずはラドーの大気差表を無理やり数式で近似するところから。私のサイトだと計算精度の問題から3次式以上の曲線近似ができないから近似関数を思いつく関数を代入してみると指数関数を使う方法を思いつきました。しかし、一度だけだと近似データの範囲外ですぐ0になってしまうので以下のように仰角と天頂の仰角の差である天頂高度Zの一次式に指数関数を二重にかましたものをかけて天頂付近の直線的な変化と地平付近の急激な増加を表現できるようになりました。

Z(°)=90°-仰角
f(Z)=a0+a1*Z+a2*Z^2+a3*Z^3+・・・
大気差(°)=1.058*Z*exp(exp(f(Z)))/3600

このexp(exp(x))という関数がかなり凶暴な関数で、以下のように正の値を入力すると簡単にパソコンの計算可能範囲を超えてしまいます。

図化するとっころまで行って月が負の仰角になる場所でサーバープログラムを動かしたら異常終了してしまいました。収束していなかったら計算を打ち切るようにはしていましたがログファイルをつくってみたら-30°という値から正の無限大と負の無限大を永久にピンポンする結果となってしまいました。そこで、範囲外の値になったら画像出力に影響のない-90°にするという仕様に変えました。

太陽と月の位置の計算は本邦で最も詳しい人から指導していただき、市販の日出入の教科書よりけた違いに正確でパソコン上で近年の日蝕計算に要求される角度の秒程度の精度の計算を、最も効率よく計算できる環境にしてあります。この可変大気差と大気差の近似式の実装でダイヤモンド富士とパール富士は、時間軸方向にも空間軸方向にも、予想結果をかなり自由に操作できるようになりました。この機能はつくった私でさえ使いこなせない高度な機能で、遠中近数多くの観測をこなして厳密に解析できる人ではないと有効利用できない代物です。大気差を経験的に解析するための材料は既にそろったので、数年間趣味で続けていたダイヤモンド富士の計算のパソコンサイトの更新は区切りをつけたいと思っています。あとはあなた自身が耳ではなく自分の目で検証しながらダイヤモンド富士の計算を開発してください。

Prediction of the Diamond Fuji and Pearl Fuji

ダイヤモンド富士とパール富士の計算

|

テレビ東京放送記念:東久留米駅からのダイヤモンド富士

2010年1月19日にテレビ東京で東久留米駅富士見テラスのダイヤモンド富士が放送されました。番組中連日不発で苦戦する熊澤様と取材スタッフがついに冬至の折り返し地点のポイントでダイヤモンド富士を映像に収めることができました。通りが富士山の方向に伸びていてビルの谷間に富士山が見える東京の富士山の象徴的な風景の東久留米駅富士見テラスでこの日のそのロケの現場にまさに居合わせ私も見事なダイヤモンド富士を見ていました。当日、私のサイトでキャッツアイ(ako)が予想され、それを撮るために出向いたのですが、後日きわどい雲に隠された太陽の位置がキャッツアイ(ako)の位置に来ていることを確認でき、私の計算もキャッツアイ(ako)が計算できる程の精度があることが確認されました。そこで、当日の感動的なダイヤモンド富士をリアルタイムで再現してみました。下のスライドショーを開始すると当日の情景そのままのダイヤモンド富士を再現します。最初に画像を241枚ダウンロードするので最初に起動するときは少し待ってください。1コマ1秒になるように調整してあるので関東から見える夕方のダイヤモンド富士の太陽の沈む速さを実感してください。DEMデータを使用している範囲が山頂付近だけなので両側の稜線の形は正確ではありません。この予想図の作成に当たっては、国土地理院長の承認を得て、同院発行の基盤地図情報を使用しています。(承認番号 平21業使、第369号)

|

ラドーの大気差

ラドーの大気差の0℃、1013.25hPaの値を天体位置表414ページから引用しました。

|

電子国土ポータルとCANVASタグの組み合わせ

皆様はホームページを作る際、各々のアイテム単体だとうまくいっていたものが複数のアイテムを結合させた時に予想外の動きをする経験をしたことはありませんか。私のホームページでは電子国土ポータルとCANVASタグを使っていますが、電子国土ポータルを実装したサイトを起動する際にCANVASタグでグラフィックさせようとすると意外と面倒なことが起こるのですね。ホームページを読み込む際にスクリプトを呼び出す場合どのタイミングで呼び出すかによってページがエラーを起こして表示が止まったり、またはスクリプトが動作しなくて思うように表示できなかったりということが起こります。電子国土ポータルとCANVASタグの組み合わせは日本で最も正確な緯度、経度を示す地図サイトと簡単なスクリプトで好きな画像を描けるアイテムの組み合わせなので今後の発展が期待されるところです。私の場合はダイヤモンド富士とパール富士の計算、さらには日食の計算でそれを使っているので、ユーザーが計算した結果を知人に教える際に便利なように入力データをクエリで渡して、クエリからフォームデータを読み込んで起動時にCANVASグラフィックまでできるようにしたつもりですが、CANVASタグが有効なブラウザでもどうもうまく表示できない場合があるのです。こちらにサンプルともっと詳しい解説を用意しました。

電子国土ポータルとCANVASタグの組み合わせ(前編)

電子国土ポータルとCANVASタグの組み合わせ(後編)

文章の最後に簡単なアンケートがありますのでウェブマップの技術の発展のためにぜひ協力してください。できれば、後編のアンケートに参加していただけたら幸いです。このアンケートは結果の統計的解析に必要な最低限のデータを取得するもので個人情報を収集されることはありません。

|

三次元画像の描き方

立方体の三次元画像を描くとき横方向と高さ方向を等倍率の直交する辺にしてにして奥行き方向を斜めの縮小された辺にする描き方は概念的には分かりやすい描き方なのでよく用いられますが、立体を平面に投影する方法としてはあまり正確な図法ではありません。立体を視野のスクリーンに平面的に投影するには視点からの放射状のベクトルで平面に投影する方法や視点方向からの平行なベクトルで平面に投影する方法などが考えられます。放射状のベクトルで投影する場合は視野を四角い平面としてその平面に向かって物体の頂点を通る四角錐等を描いて四角錐等と平面の交わりが視野の光景になり、平行なベクトルで投影する場合はその無限遠の状態です。今回は計算式が簡潔な平行なベクトルで投影する方法について書きます。

まず、問題の図を見てください。最近ようやくアップレットを公開する技法を身につけたので天文のカテゴリーの過去記事にアップレットで図を組み込んでいますが、前回の図もアップレットにしました。下のボタンで表示、非表示を切り替えられます。アップレットを閲覧するためにはサンマイクロシステムが発行するJAVAのシステムが必要となります。
視野に投影するといいましたが、実際の計算ではxyz座標上の図形にx軸、y軸、z軸を回転軸とする回転操作を行い、y座標とz座標だけを抽出するような操作を行います。まず、x座標の正の無限遠から物体を見る視線を考えます。極座標表示では、その方角を緯度0°、経度0°として座標の中心点から地球の北緯の方角に緯度φをとり、地球の東経の方向に経度λをとり、視点から見て地球の北の方向から東回りに方角Aをとります。そして、視点の中心からの方角をφとλであらわし、視点の向きをAであらわします。

この記事の挿し絵は非同期通信で表示します。ブラウザによっては正常に表示されないことがあります。
このとき、回転の順序は経度λの角度のz軸を回転軸とする右回りの回転、次に緯度φの角度のy軸を回転軸とする右回りの回転、最後にx軸を回転軸とする左回りの回転になります。図表の字が小さくてごめんなさい。sinの値は回転の向きを逆にすると符号が変わります。このときの操作を行列とベクトルの演算にするとき、座標を縦ベクトルにして座標の左から経度λの三次元回転行列、その左から緯度φの三次元回転行列、さらにその左から方角Aの三次元回転行列をかけます。前回の図をこの方法で描くと次のようになります。

|

地球上の距離の計算(JApplet)

おふぁようございます。ココログにアップレットを投稿します。ブラウザが壊れないように祈ってください。見た目は今までのJavaScriptの計算フォームと変わらないかもしれませんが、いや、どこか見慣れた普段と違うパーツを使っていますね。そう、フォームのパーツはJAVAのSwingのパーツです。そのため、このページを閲覧するにはJAVAの仮想マシンが必要になります。

アップレットは読み込みに失敗するとブラウザをフリーズさせるのでこの記事のアップレットは非同期通信で呼び出すようになっております。非同期通信には多少時間がかかります。未熟なスクリプトなのでブラウザによっては非同期通信がうまく作動せずアップレットを呼び出せないかもしれませんm(_ _)m。

|

月の満ち欠け

ココログ絵文字(sun)
月の満ち欠け ココログ絵文字(happy01)
これは、太陽の周りを地球が公転し、地球の周りを月が公転する様子をあらわしたもので、中心が太陽、笑顔マークが地球で、ちょっと見づらいですが地球の周りを回っているのが月です。太陽と地球と月の間隔の縮尺は違いますが、実際の朔望月と同様に19年で235回満月になるようになっており、月の形は地球から見たときの形を示しています。月が輝いて見えるのは月が太陽の光を反射しているからで、月の満ち欠けは太陽と地球と月の位置関係によって起こり、月が太陽とは反対側にあるときが満月、同じ側にあるときが新月です。月食は満月のとき、日食は新月のとき、太陽と地球と月が一直線に並ぶときに起こりますが、月の軌道は太陽と地球の軌道面に対して傾いているため日食や月食が起こるときは限られています。ですが、太陽と月の位置を近似する公式にはいろいろな式があり、それらを用いて暦や朔望月や日食、月食が計算されています。

|