2023年12月10日

節気さん Bot(月齢君+節気さん)復活大作戦

【動き出すまで】

以前、Twitter で、節気さんシリーズというBotを動かしていました。
ただ、これは、Twitter側から何度もSPAM認定されてしまい、そのたびに、運営側に説明するのに疲れて 2021年5月に停止しました。

このたび、Misskey で再稼働の運びとなりました。
@sekki_getsurei@misskey-square.net
です。

実は、Twitter のアカウント自体も継続するか削除するかの迷いもあったりしました。
で、そうこうするうちに Misskey に出会いました。
※発端は、「通信用語の基礎知識」(https://www.wdic.org)さんが、misskey.io にいますとお書きになっていたのがきっかけ。

そういうわけで、いったんは misskey.io に登録したものの、その後、様々なサーバーを眺めつつ、一ヶ月ほどで、misskey-square.net に移動しました。
そこでまあ、APIを眺めてみると、「これはBot動かせそう」という結論となり、早速トライしました。

で、一番の壁は、技術的な難しさではなく、「24時間稼働しているパソコンをどう確保するか?」でした。
Twitter 時代は、2万円のWindowsパソコンが遊んでいたので、それを使っていましたし、一時、さくらの VPS のお世話になったこともあります。

が、私の場合、Bot本体(特に、天文計算の部分)が、Windows 上の C++Builder に、というか、その、独自のライブラリに大きく依存しています。
※具体的には、日時(TDateTime)と文字列処理(AnsiString)。
このため、VPSを使うにも、「Windows ベース」のVPSが必要で、1,000円/月で使えるサービスはありませんでした。
Botのためだけに、これはちょっと困る。

当時あった、2万円のパソコンも、今では動作が非常に不安定。

というわけで、常時稼働のパソコンが最初の壁でした。
そこで、改めて周りを見渡すと……あったのです。IFTTTのサーバーが(おいおい)
IFTTTのサーバーは(当然ながら)24間稼働ですし、IFTTTのアプレット稼働トリガとして、「毎時間」というのがあります。
これを使う方法で「常時稼働のパソコン」を手に入れました。

つまり、もともと、C++Builder で作っていたBotのプログラムで、一定期間(実際には、月齢君は 28日、節気さんは、180日)の出力リストを作成します。
このリストに、出力すべき、年・月・日・時間(時間は、月齢君のみ)をセットにして、IFTTT のフィルターに書いておきます。
毎時間毎に IFTTT のアプレットが稼働しますので、そのときの時刻を確認して、出力すべきデータがあれば出力すると、そういう単純なフィルタを作成しました。

Misskeyへの出力は、IFTTT の That に Misskeyはないので、ちょっと悩みましたが、IFTTT の WebHoch を使えば、簡単に実装できることがわかりました。
これで、Misskey で実現する Bot の基本部分が完成しました。

------------------------------------------------------------------------------------

【Misskey 上でのあれこれ】

ここで、基本動作はできるようになったのですが、特に、「月齢君」では、月相を絵で表示したいという思いが強くなりました。
Twitter時代に画像は持っていたので、これを、Noteとともに表示することにします。

が、ここで、また、壁が。
Misskey API によれば、メッセージ内容(text)とともに、画像の FileId を送信すれば、その画像を表示してくれるとなっています。
が、この、FileId を私はどうしても探し出すことができませんでした。
で、再度、API を眺めて、画像情報を入手できそうなエントリーを探してそれを試すと、めでたく FileId を入手することができました。

これで、目的は果たせましたが、画像は画像として表示するように、クライアントが最適化されているらしく、わずかな月相を表示するには大きすぎる。
というわけで、画像はやめて、Misskey が誇る「カスタム絵文字」として表示するようにしました。

これで、目的を達成できました。

------------------------------------------------------------------------------------

【画像の著作権問題】

上記で、あっさりと、「Twitter時代に画像は持っていたので」と書きました。
実際、Twitter 時代の月相画像は、三日月の画像を加工して、新月〜満月 を作成したりで、いわば、画像改変を行っていました。
ので、当然、この段階では、改変を含めた利用許可をいただいていました。

が、前述したとおり、Twitter の Bot を削除した時点で、「もう(公開する形では)使わないだろう」ということで、連絡先をなくしてしまっていたのでした。
(大変失礼なことではありますが)

画像を絵文字にする段階で、「著作権はクリアしていますか?」ということがあり、あらためて、
・Misskey での使用許諾は(多分)いただいていない
・そもそも、連絡先なくしてしまった
ということで、自作の画像に差し替えたという事件もありました。

まあ、今から見ると、単にまるを削っただけの「月の絵」と、星が加わったオリジナル画像では、オリジナル画像の方がきれいだななどと思ったりしています。

以上、あれこれありましたが、本日(2023/12/10)Misskey における、Bot 正式スタートとなりました。
めでたし、めでたし。

2015年06月24日

「月のもの」の周期と、「月の」周期

さて、現在、女性の生理の周期は、「平均して28日」であると言われている。
これが、一部では、「月の満ち欠けの周期と一致している」と誤解されているらしい。

いくつかのサイトでは、「生理の周期は平均28日」という説明と共に、例えば、「満月に生理を迎えると云々」という解説すら見かけた。

が、月の(朔望の)平均周期は、29.5 である。
というわけで、28日周期で見ると、月齢にして約1.5ずつ前にずれることになる。

実際に 2015年〜2019年の「28日ごと」の月齢と月相を計算するとこのようになる。
28日ごとの月齢.png
※月相という数字は、月の形を正確に反映する数字です。
 0 = 新月、7 = 上弦、14 = 望、21 = 下弦
 月齢と月の形の関係は、少しずれます(しかもばらつきます)。

 このように、2015/07/16 には、新月を迎え、2016/03/24 にはほぼ満月になる。
 これが、28日周期で見た実体である。

 ただ、1周期では、1日ほどしかずれないので、「生理の周期は月の周期と同じ」と言われれば、日々の暮らしの中では、気づきにくいということは確かにあると思う。

2011年02月18日

雨水に雛人形を飾るという説

さて、この記事の趣旨はどちらかというと、雨水に雛人形を飾るという「古くからの言い伝え」は存在しないのではないか。
少なくとも、現在の暦を使わなければ、あまり実情に合わないというそういう主張であります。

まず、「雨水」といえば、二十四節気のひとつです。時々、「旧暦はいいよ、二十四節気なんかあって季節感が……」という言葉も見かけますが、本質的に二十四節気は現在の太陽暦との整合性がよくできています。
旧暦は月の満ち欠けによって日付を決めるというものですが、これだけですと、季節と暦がずれてきます。季節というのは実は、太陽の位置でもあるので、季節とのずれを補正するために、(太陽の位置をよく反映する)二十四節気を利用するというわけです。
(なので、太陰太陽暦と呼ばれます)

そういうわけなので、二十四節気の日付は、現在の暦では毎年ほぼ同じ日付になります。
たとえば、今回話題にする「雨水」は、
2010年〜2012年 : 2/19
2013年 : 2/18
ということになります。

日付がほぼ同じ訳ですから、現在の暦でいう「3月3日」に対して、毎年ほぼ2週間前ということになります。
ですから、現在の暦では、かなり妥当性のある基準だと言えます。

一方で、これが旧暦の時代からというほど古いものであるかといえば、旧暦の日付は(現在の暦に対しては)一定しないという事実があります。
たとえば、旧暦の3月3日は、現在の暦では、
2010年 04/16
2011年 04/05
2012年 03/24
2013年 04/12
となります。
2010年などは、(現在の暦で)4/16の当日に備えて、2/19には飾り付けをするということになってしまいます。

さらにいえば、雨水に雛人形を飾るというのと併せて、啓蟄に雛人形をしまうという話もあります。
こちらは、明らかに現在の暦の産物だと言えます。
というのも、啓蟄はこれまた、現在の暦では、日付がほぼ一定しており、3/5頃です。
これまた、3/3 に節句を済ませた雛人形を(それも早めに)しまうというのには、いい目安です。

しかしです、上述の通り、旧暦の3月3日は、一番早くても(現在の暦では)3月の下旬です。
そう、啓蟄より「後」のことなのです。
もちろん、「旧暦の啓蟄は旧暦の3月3日より後」ということはありません。
啓蟄自体、「2月節」とされ、啓蟄の日は旧暦では2月にあるのですから。

2010年12月09日

「月の名前」の計算方法

Twitter の Bot 「節気さんシリーズ」で月の名前を求めるという計算をしています。
※月と言っても、天体の月です。「三日月」とか、「十五夜」とかそっちの名前。

これ、実はまじめに計算すると結構大変でして、節気さんシリーズの中でも、一番面倒な計算です。
※ただし、太陽と月の位置を決定するという基礎的な計算の方がはるかに面倒であるのはもちろんです。
※ただ、こちらのほうは、『日の出・日の入りの計算』(長沢工著,地人書館)に収録されているアルゴリズムを元にしたものなので、自分では計算していないという。

そういうわけで、宣伝の意味も込めて(ほとんどそれだけ)紹介してみることにしました。
実際の計算結果(イメージ)も最後につけました。

【ある時刻における「月の名前」を求める】

1.定義
 「月の名前」は、「ある時刻」を含む旧暦の(カレンダーの)月における月の出現回数で決定される。
 ※具体的に採用している名前は後述
 この定義では、実は、「月が出ていない」時の名前が決定されないので、「節気さんシリーズ」では、
 ・旧暦の1日はその日を通して、「朔月」
 ・旧暦の晦日はその日を通して、「晦日月」
 ・その他の日は、「日本における月の入り(実際には、登録している50地域)」が完了して、10分経過後に次の名前に変更する
 というロジックを採用しています。


2.求め方

1)「ある時刻」における「直前の朔の時刻(「ある時刻」以下)」と「直後の朔の時刻(「ある時刻」超過)」を求める
2) 「ある時刻」が、旧暦1に含まれる場合は、「朔月」とする
3)「ある時刻」が、旧暦の朔月(直後の朔の時刻を含む日の前日)なら、「晦日月」とする。

4)それ以外の場合は、計算が必要。
5)旧暦日付が基準になるので、
 「調査開始時刻」=「直前の朔の時刻を含む日の 00:00」
 「調査終了時刻」=「直後の朔の時刻を含む日(は、来月の1日)の前日の 23:59」とする
6)「調査開始時刻」以降の最初の「月の入り」を、50の地域について求める。
  50の地域を比較して、最も遅いものを、「1回目の月の入り」とする。
7) 「1回目の月の入り」以降の最初の「月の入り」を、50の地域について求める。
  これが、「2回目の月の入り」となる。
8) 以降同様にして、「月の入り時刻」が、「調査終了時刻」以降になるまで月の入り時刻を求める。
9) 以上で求めた、「n回目の月の入り時刻」に10分を加算する。これが、「n + 1回目の月の名前の開始」となる。
10) 「n回目の月の名前の開始」が、旧暦 n - 1 日であれば、その時刻を、旧暦 n - 1日の 23:59 にする。

11) 「n回目の月の名前の開始」時刻が、「ある時刻」以上となるような最初の n を求める。
12) n 番目の月の名前を、「月の名前」とする。

3.具体的な月の名前
(括弧内は、出現回数です・8, 12, 22 は名前をつけていません)

朔月(1), 既朔(2), 三日月(3), 夕月(4), 夕月(5), 宵月(6),
弓張月(7), 九夜月(9), 十日夜(10), 十日余の月(11),
十三夜(13), 小望月(14), 十五夜(15), 十六夜(16), 立待月(17),
居待月(18), 臥待月(19), 更待月(20), 二十日余の月(21),
弓張月(23), 有明月(24), 有明月(25), 二十六夜(26), 暁月(27),
暁月(28), 暁月(29), 暁月(30),

計算結果は、こんな感じになります。
月の出が少しずつ遅くなっているので、それにつれて、「月の名前」の変化点も後ろにずれています。

moonList.gif

2010年11月25日

月齢カレンダーの問題

この記事を書いているとき、既に、2010年も年末の兆しが見え、来年のカレンダーの話題がちらほら聞かれている。
その中で、「月齢表示のあるカレンダー」というのが一定の関心を集めているようである。
ただ、この種のカレンダー、表示方法故にいくらか誤解というか、誤ったイメージを与えているのではないかと思う次第である。

手元に、2011年の月齢カレンダーがあれば、1月1日の月齢を見て欲しい。
もしも、26.4 と書かれていれば、そのカレンダーは、「正午月齢」を表示していることになる。
月齢というのは、新月の瞬間から単純に日数をカウントしたものである。ただ、1日単位だけではなく、1日で、ひとつ月齢が進むように小数点付きで表示していることが多い。
そうなると、たとえば、午前0時の月齢が、10.0 だとすると、午前6時は 10.25、正午は 10.5、午後6時が10.75。そして、翌日の午前0時が11.0となる。
このように、「今日の月齢」というのは定義できないことになる。
では、月齢カレンダーに書かれている「今日の月齢」は何かといえば、ある時刻の月齢を以てその日の月齢を代表させているわけで、多くの月齢カレンダーで、正午月齢を代表としているわけである。
このほかにも、たとえば、天文暦だと、20時や、21時の月齢で代表させているケースも多い。

これから言えるのは、月齢カレンダーに正午月齢が表示されてても、「今」の月齢はそれとは異なると言うことである。
たとえば、午後6時であれば、0.25を足せばよいし、午前6時であれば、0.25を引けばよい。

表示されているのが正午月齢だと言うことは、ちょっとおかしなイメージを与えることがある。
たとえば、2011年4月3日の月齢は、「29.3」と表示されていると思う。そして、翌4月4日は、「0.5」と表示されていると思う。
「新月」は、どちらの日付になっているだろうか?(正解は、4月3日)
月齢0.5の4月4日ではなく、月齢29.3の4月3日が新月というのは、奇妙な感じを抱かないだろうか?

実は、このときの朔(新月)の瞬間は、4月3日の23:32と、ほとんど一日の終わりになっている。
この瞬間が月齢0.0であり、確かに、4月3日が新月なのであるが、表示されている月齢が正午月齢であるため、新月から約半日経過した、4月4日の月齢が、0.5と一見新月の日の月齢に見えるわけである。

これと関連するのだが、、月齢カレンダーにはたいてい、「満月」や「新月」・「上弦」「下弦」の日付が入っている。
これも、どうも、「その日の夜に」というイメージが与えられてしまうらしい。
ところが、2011年3月20日には、午前 3:10 と言うところで、「望(満月)」を迎える。
カレンダーには、「3月20日は満月」と記されるわけだが、厳密には、前日の夕方に昇って朝6時頃に沈む月が満月の瞬間を含んでいるわけで、当日の夜に登る月は、既に満月を過ぎているということになる。
このときの満月を楽しみにして、3月20日の夜を待っていると、ちょっと外れるというわけである。

月齢15.0の真実

さて、このブログでは何度か、「月齢と月の形は厳密には一致しない」という旨の記事を書いてきた。
前回も、「満月の時、月齢はいくつ?」 http://asano-nagi.sblo.jp/article/40890434.html と称して、満月の時点における月齢がどの程度ばらつくかを検証したりした。

この記事を書いている近辺では、2010年11月22日の望があり、またぞろ、月齢15.0が満月の瞬間という表現を見つけたので、今度は逆に、月齢が 15.0 になった瞬間における月の様子を検証してみることにした。
例によって、検証範囲は 2000年1月1日から、2020年12月31日までの間である。

そもそも、「満月」という概念に相当するのは、2つのケースがある。
ひとつは、現在の天文学上「望」と呼ぶ瞬間であり、これは、地球から見て太陽と月が正反対になる瞬間である。
今ひとつは、いわゆる、「十五夜」であって、旧暦の15日の夜に昇る月を示している。
後者が、月齢15.0は満月という誤解の元であるのは間違いなかろう。しかし、たとえば、新月の日には(その日のうちに)月齢は0になるが、それはまた、旧暦の1日(カレンダーに0日というのはないから)であることを考えれば、月齢の数字と旧暦の日付は一致しないということが理解いただけると思う。
実際、旧暦の15日に相当する日全体における、月齢は最小で13.0 最大で14.9 であり、旧暦15日の内に月齢が15になることはあり得ないのである。
※ただ、十五夜の月というのは、翌日(旧暦の16日)の日の出頃に沈むので、十五夜の月が沈むまでの最大の月齢は、おおよそ、15.2程度まで進む可能性がある。

以上を踏まえて、検証を行った。
以下で、「満月の瞬間」としているのは、「天文学上の望」の瞬間である。

まず、輝面比を調べてみる。月の形は直接には輝面比として表されるので、どの程度満月の形から離れるかを検証するわけである。
その結果、月齢15.0時点の輝面比は、98.6% 〜 100.0% となった。
意外にも、一番欠けているときでも、1.4%しか欠けないということで、これは、少なくとも肉眼で見る限り「満月」であろう。
冷静に考えれば、満月の頃と新月の頃はいずれも輝面比の変化量が少ない時期に当たっていて、これは、当然の結果ではあった。

では、月齢が15.0の瞬間と満月の瞬間はどの程度離れているだろうか?
それをヒストグラムで表したのが下の図である。
最大では、26時間(つまり、1日以上)前に望になっていることもあれば、その後、16時間後に望になることもあるという結果が得られた。
また、グラフがマイナスのほうに偏っているのは、言い換えれば、月齢15.0になる以前に望になってしまっているケースが多いことを示している。

moonage15.gif

最後に細かなデータを示せば、月齢15.0の瞬間と望の瞬間が最も近い/遠い日は以下のようになっている。
一番近いときでも、8分ほどの差があることがわかる。

満月まで一番近いとき
2007-10-26 14:00 月齢15.0
2007-10-26 13:52 望

満月まで一番遠いとき
2011-07-16 17:54 月齢15.0
2011-07-15 15:39 望

2010年09月23日

満月の時、月齢はいくつ?

さて、これを書いている前日(9/22)は、中秋の名月。そして、今日(9/23)が満月。
さらには、今日の月齢(正午月齢)が、14.7で、ついでに、満月なのに十六夜。

このあたりの情報が混乱している様子が見られた。
また、「満月というのは、月齢15の月のこと」という認識も割合に広まっているようで、さらに混乱に拍車をかけているようである。

このあたりは、以前、「月齢と月の呼び名」( http://asano-nagi.sblo.jp/article/39959609.html )や、「月に関するいくつかの指標 ―― 月齢・月相 そして、月の異名」( http://asano-nagi.sblo.jp/article/38671358.html )で書いてきたとおり、月齢と月の形は、きちんとした傾向があるけれど必ずしも、月齢いくつが満月と合わないということになる。

では、実際、満月の瞬間の月齢はどの程度ばらつくのだろうか。
これを、2000年から2020年の範囲でヒストグラムにしてみた。

ageList.gif

事前の予想では、ばらつくとは言っても、ある月齢を中心とした山なりグラフが書けるだろうというところであったが実際には、中央がへこんだ凹型のグラフになった。
ちなみに、上述の範囲では、満月の瞬間の月齢は、2011/07/15 15:38 の 月齢13.9 が最小。2010/12/21 17:13 の 月齢15.6 が最大のようである。

では、なぜ、月齢の分布が山なりグラフにならなかったのだろうか?
それを確認するために作ってみたのが、次のグラフである。

これは、横軸に満月になった時刻。縦軸にその時の月齢をプロットしたものである。
21年分のデータを同じ日付でそろえ、21本の線で傾向を表している。

ageList2.gif

これは、横軸に満月になった時刻。縦軸にその時の月齢をプロットしたものである。
21年分のデータを同じ日付でそろえ、21本の線で傾向を表している。

このグラフから二つのことがわかる。
ひとつは、満月の時の月齢が変化する様子が、なめらかな曲線の上にあるという点。
そして、その曲線の最大部分と最小部分が、季節の影響を受けていると言うことである。
つまり、月齢の最大部分は、冬至頃のほうが大きく、夏至頃は若干小さいと言える。

月齢変化の曲線を見ると、中央部分の変化は比較的大きく、最大部分・最小部分の変化は緩やかである。
この結果、点の密度としては、最大部分や最小部分が大きくなり、これが、前述のヒストグラムで凹型のグラフになった原因である。
また、全体が凹型とは言っても、月齢17.5付近にいくつか点が存在する。
これは、月齢のもっとも大きな部分が冬至周辺の直に限定されることから、全体のグラフが凹型であるにもかかわらず、月齢の最大部分には、少数の点しか存在しないということになるのだろう。


2010年08月06日

月齢と月の形

え、これは、「月齢と月の呼び名」( http://asano-nagi.sblo.jp/article/39959609.html )の続編です。
「月の呼び名」では、
・そもそも、1で始まる旧暦の日付ベースの名前と、0で始まる月齢とが混同されている場面がある。
・しかも、月齢の基準(0になる時点)は、ばらつくから、月齢と月の呼び名はさらにばらつく
という点を指摘したわけですが、では、月齢(すなわち、朔の瞬間からの経過時間)が一定なら、月の形は同じかといえば、これまた、そうでもありません。

これは、端的に言えば、地球からみた月の移動速度がばらつくからなのですが、実際にデータを作成してみました。
これが、2010年から2020年の間の、毎日午前0時の月齢と輝面比の関係をグラフにしたものです。
輝面比というのは、読んで字のごとく、月を円形と見なしたときに光っている部分の割合でして、もちろん、100%が満月。50%が半月。0%は新月です。

moonlog.gif

あと、PDF に加工したデータです。

さて、たとえ直線にならなくても、これ(月齢と輝面比の関係)が、ひとつの線になれば、月齢が同じなら形も同じといえるわけですが、いかんせん、これだけばらついてしまうわけです。
一番ばらつきの大きそうなところを探してみると、
月齢が、7.56 の時に、輝面比 43.4%
月齢が、7.54 の時に、輝面比 59.9%
というのをみつけました。
月齢がほとんど同じでも、輝面比はこれだけばらつくわけです。
ちなみに、この輝面比を、月の形にしてみると、こんな感じになります。

moons.gif

2010年08月03日

月齢と月の呼び名

Twitter の Bot、「節気さんシリーズ」で、月の名前を表示している。
そのときにいろいろと調査をして、節気さんでは、(旧暦)一日からの月の出現回数で、月の名前を決定している。
このほかにも、旧暦の日付を以て月の名前としている場面もよく見かける。
この場合、「その日の夜に上る(上っている)月」と解釈すれば、概ね節気さんシリーズの呼び名と一致する。また、その日固有の名前としては、二十三夜(下弦の月)くらいまでしか使われておらず、これも、実質的には、月の出現回数であっても旧暦の日付であっても、差異を生じさせない一因となっている。

ただ、時々、月齢の数字=月の名前(の数字)と理解されているケースがあって、これは、少々間違っている。
これは、気がついてみれば簡単なことで、旧暦の日付は1(一日)から始まるが、月齢は0から始まるということなのだ。
しかも、不思議なことに、月齢を以て月の名前を決めるという立場でも、なぜか、三日月は、旧暦3日(つまり、月齢は概ね2)としているケースが多い。
同じように数えれば、旧暦13日は、概ね月齢12で、これが十三夜。以下、月齢13で小望月、月齢14で十五夜、月齢15で十六夜、以降、旧暦20日(月齢は概ね19)の更待月まで、一連の名前が続くことになる。

ここまで書いてきたが、本質的な意味では月齢と月の名前の関係には誤差が含まれるということを、そもそも注意する必要がある。
月齢の定義に立ち返ると、月齢=0となるのは、朔の瞬間(太陽と月が同じ向きになった瞬間)である。そして、旧暦の一日は、「朔の瞬間を含む日」と定義される。
つまり、月齢が0になる瞬間は、旧暦一日の 0:01 かもしれないし、23:59 かもしれないという、そういう意味である。言い換えると、「その日の月齢が、ほぼ全日に渡って0」だったとして、その日は、旧暦の一日かもしれないし(朔が 0:01 のとき)、旧暦の二日かもしれない(朔が 23:59のとき)。

しかしながら、月の名前は、あくまでも旧暦の日付(または、旧暦一日から数えた、月の出現回数)で決定するわけだから、これは言い換えると、その日の月齢が0だったとしても、「朔月(旧暦一日の月)」かもしれないし、「既朔(旧暦二日の月)」かもしれないと、そういう意味である。
もちろん、そのいずれかによって、その後一月の間、最大1日分の誤差が生じるというわけである。

一方で、月齢を整数で表現する流儀もある。この場合は、「朔を含む日の月齢を0、その後1日ごとに1加算」というわけで、こちらの流儀であれば、月齢+1=旧暦の日付であるといえる。

ちなみに、2010年〜2020年の間で計算してみると、
最も早い時刻に朔となる日:2012-06-20 00:02:27
最も遅い時刻に朔となる日:2017-02-26 23:58:56
である。

それぞれの日を起点として、月齢・旧暦の日付・月の名前を図示すると以下のようになる。

moonpost.gif

※ちなみに、2010年〜2020年の範囲で、0時台、23時台に朔となるのは、以下の日々です。

※朔の時刻が0時台の日
2012-06-20 00:02:27
2012-08-18 00:53:50
2013-06-09 00:55:57
2019-11-27 00:05:03
2020-02-24 00:32:17

※朔の時刻が23時台の日
2011-04-03 23:31:53
2012-03-22 23:36:51
2014-08-25 23:13:04
2015-06-16 23:05:10
2015-08-14 23:53:03
2016-02-08 23:39:18
2017-02-26 23:58:56

2010年07月27日

節気さんBotと、「中秋の名月」

【2010年8月29日に追記】

実は、「月の名前」の切り替え時刻を考え直しました。
詳細は、「月の異名」再び( http://asano-nagi.sblo.jp/article/38733291.html )への追記としましたが、これにより、中秋の名月の切り替えも、普通の感覚にかなり近づいたと思います。

実際には、


始まり:2010年9月22日 5:22 (高知の明六ツ)
終わり:2010年9月23日 6:00 (月齢君の定時ツイート)

と言うことになります。

--------------------- 追記、ここまで。


今年も、秋になると、「中秋の名月」がやってきます。
節気さんシリーズBotでも、中秋の名月に反応します。(世界の……、は除く)
ただ、当日になると、「節気さんシリーズ、違うんじゃないか」と思われそうなので、早めにちょっとした解説です。

内容は、「月の異名(というか、月の呼び名)」さらに……。( http://asano-nagi.sblo.jp/article/38759410.html ) で書いたものではあるのですが。
さて、節気さんシリーズでは、月の名前は「(旧暦)何日の月はどういう名前」という立場ではなく、「(旧暦)1日から数えて、何回目の月はどういう名前」という立場をとっています。
たとえば、今年(2010年)の中秋の名月付近は、

9/21 16:21 月の出 〜 9/22 4:12 月の入り(小望月)
9/22 16:47 月の出 〜 9/23 5:08 月の入り(十五夜)
9/23 17:13 月の出 〜 9/24 6:04 月の入り(十六夜)

として、取り扱っています。(月の出・月の入時刻は東京のもの)
「何日の月が」という規定をしてしまうと、月が出ている間に(日付をまたぐので)月の名前が変わったり、未明の月(月の入り前)と夕刻の月(月の出後)のどちらの名前なのかとか、そういう問題が発生するためです。

さて、このようなわけで、月の名前が変化するタイミングは月の入りと月の出の中間としています。
ですから、節気さんシリーズが、「十五夜(特に、中秋の名月)」とつぶやくのは、

開始:小望月の月の入りと、十五夜の月の出の中間 = 9/22 10:29
終了:十五夜の月の入りと、十六夜の月の出の中間 = 9/23 11:10

となります。

一般的には、「(2010年は)9月22日が中秋の名月」と言われることになりますが、節気さんシリーズは、9/22になっても、10:30 頃までは、「小望月」と言ってますし、翌日(9/23)になっても、昼前まで、「中秋の名月」とつぶやくことになります。

それは、こういう事情によるわけです。

2010年06月04日

「月の異名(というか、月の呼び名)」さらに……。

さて、先日月の異名(というか、月の呼び名というほうが一般的みたいですね)の算出ロジックを変更したとアップしたばかりですが、改めて、ちょっと詳しく書いてみようと思います。

まず、実例をご紹介します。
これは、2010年6月12日から、7月11日までのグラフです。
(これは、旧暦の5月いっぱいに相当します)
juneall.gif

月が出ている時間帯・旧暦の日付・そして、新しく変更した「月の呼び名」算出ロジックによる「月の呼び名」の変化状態を表しています。横軸の日付は、2日ごとにつけられており、たとえば、6/12 と書かれている線から、次の線までが、実際には6/12 になります。
画像では詳細が見られないと思いますので、詳しく見られるように、PDF にしたものをこちらにおいておきます。
tokyo_2006_06.pdf

まず、ここからわかるのは、6月12日から7月11日の間は30日あるのに、月は29回しか出ていないということです。
こんなわけで、月の呼び名は、(無理矢理全部につけたとしても)29個しかなく、30日間に割り振るのは無理だということだったのです。

さて、少しずつ見てゆきましょう。
まず、(旧暦での)月初めです。
jun01.gif
月初めは、太陽と月がほぼ同時に出入りしますので、この段階は、旧暦の日付と月の出現回数はよく揃っています。
実際、「節気さんシリーズ」でも、旧暦のついたちは、旧暦の日付にあわせています。
それでも、徐々に月の出が遅れてきているのがわかると思います。

引き続き、月の半ばです。
jun02.gif
ここで、6/29(6/28 と 6/30 の間)の線を横切っているのが、いわゆる十五夜の月です。
このように、夕暮れ近くから、夜明け近くまで、夜半をまたがって出現します。
当然、月が出ている間に、旧暦の15日から、16日に日付が変わってしまいます。
「今出ている月の名前」としては、夜半を境にして名前が変わってしまうというのは、やはりまずいかなと思うわけです。
このようなわけで、節気さんシリーズのロジックでは、一番上の線にあるように、月の出前から、月の入りの後までを、その月の名前として統一するという形になっています。
これが、出現回数を基準にした名付けです。

それでも、――十五夜が、「旧暦15日の夜の月」と言われているように――その日の夜の月の名前なのだと考えれば、まだつじつまは合います。

では、月末付近はどうでしょうか?
これが、月末付近の詳細です。
jun03.gif
ここで、7/6 の前の月の出は 7/5 の 23:31 です。そして、7/6 の後の月の出は、7/7 の 0:04 です。
つまり、カレンダー上では、7/6 には一度も月の出がなかったということになります。
ですから、7/6 は旧暦の26日であっても、「この日に出る月」の名前というのは、決められません。
また、7/7 の月の出の直前には、日付も旧暦の27日に変わってしまいますから、「その後に出る月」ともいえません。
こうして、旧暦の日付基準では、二十六夜に相当する月が決められなくなってしまうわけです。

節気さんシリーズでは、出現回数ベースで月の名前をつけているので、この、7/7 の未明に出ている月が、二十六夜の月になります。

種々述べてみましたが……やっぱり、図があるとわかりやすいですね。

2010年06月03日

「月の異名」再び

【2010年8月29日 追記】

この記事で書いている、「月の名前」の付け方(というか、名前を変えるタイミング)を変更しました。

もともと、月の名前というのは、現に空にあって見えている月に対するものかと思うわけで、月が沈んでいるときの名前というのはないような気もします。
が、節気さんシリーズで、一日中ツイートしている関係もあって、まあ、そうもいっていられない。

そこで、当初は、「月の入りの時刻と、次の月の出の時刻の真ん中で月の名前を変える」という方針にしました(この記事の後半にはそのままの形で残っていますが)

ただ、これだと、普通に「今日は十五夜です」などといわれるのに比べて、かなりタイミングが後ろにずれるわけです。
「今日は中秋の名月です」という日の、昼前まで別の名前をツイートしていたり。

これを考慮して、「日本全国で(実際には、50地域の月の出君がカバーしている50の地域)月の出が終わった10分後」に名前を変えることにしました。

これで、「月の出とそれに対応する月の入りの月の名前は同じ」という条件を確保しつつ、通常いわれるタイミングにかなり知覚することができました。

------- 追記ここまで。

さて、「節気さんシリーズ」で、月の異名(三日月とか、十六夜とかそういう名前)を表示するようにしました。
この月の異名は、多くは旧暦の日付に基づいたものであるとして、旧暦の日付の日付を算出して、それに名前を割り当てるようにしていたのですが、どうも、これは違うらしいという記述を見つけました。

直接見たのは、WikiPedia の、この記事です。

http://ja.wikipedia.org/wiki/%E6%9C%88
(記事の中の、「月齢と呼び名」)


ただ、当初は、「旧暦の日付ではなく、月が出た回数を元に決める」ということの真意がわからず、節気さんシリーズでは、上述の通り旧暦の日付をもとに名前をつけていました。

ところが、これではちょっとまずいかもしれない――と、気づきました。
たとえば、このブログを書いている2010年6月はじめは、月は午後11時過ぎに昇り、翌日の午後になって沈みます。
ところが、節気さんシリーズの月の名前は、「旧暦の日付」に基づいていますから、午前0時で(日付が変わるのに伴い)名前が変わってしまいます。
しかし、現に空にある月の名前が、突然変わってしまって良いものでしょうか? せめて、月の出から月の入りまでは「同じ名前」でないとまずいのではないでしょうか?
これが、「旧暦の日付ではなく、月が出た回数で決める」という記述の真意でした。

さて、これで計算しようとすれば、(旧暦における)一ヶ月分の月の出・月の入りの時刻一覧を準備しなければなりません。さらに、月の出から月の入りまで――ということは、その日の月の出・月の入りの時刻に依存するというわけで、言い換えると、「どの場所における」というのを定義しないと、「今から臥し待ち月」などといえないわけです。

悪いことに、節気さんシリーズの「月齢君」は、地域に依存しないような Bot にしています(実際、月齢と月相は地域に依存しない)。
結局、以下のように処理をして、なんとか、それらしく表示することにしました。

・朔を含む日は「朔月」とする。(優先)
・朔の前の日(旧暦の月末)は、「晦日」とする。(優先)
・前回の月の入りの時刻と、今回の月の出の時刻の真ん中を、「名前が変わるとき」とする。
 ※この場合の、月の出・月の入りの基準は「東京」
 ※いすれにしても、地球の裏側に月があるときなので、地方毎の誤差は気にしないことにします。
・「今の時刻」が、「名前が変わるとき」を何回通過したかを元に、月の名前を決める。

当面、これで様子を見ることにしました。

2010年05月30日

月に関するいくつかの指標 ―― 月齢・月相 そして、月の異名

「節気さんシリーズ」に、最近、「月齢君」を加えました。
その件は、ご案内ということで、記事にいたしましたが、このときに、月の異名を併せて表示するようにしました。
また、節気さんシリーズ全体としても、月に関しては、「月齢」と「月相」という二つの数値を表示しています。

ここでは、このあたりのことについて書いてみたいと思います。

【基準となる瞬間 ―― 朔】

月に関わる数字で、日常的に関わる(言い換えると、地球から見たときに関わりのある数字)の基準は、「朔」です。
言い換えると、新月の瞬間ということで、さらにいえば、「太陽と月が同じ方向に見える瞬間」です。
ただ、同じ方向といっても、太陽と月は滅多に重ならないので(完全に重なるときには日蝕になります)おおざっぱに言えば、横方向の位置が一致したときになります。
※ただし、横方向というのが、地平線の方向ではないので、横方向の位置が一致したときといっても、もしも見えたら(それこそ、新月の瞬間なので実際は見えませんが)違和感のある位置だと思います。

これを基準にして、月齢や月相が定義されます。

【月齢とは】

堅い言葉で言えば、「朔の瞬間からの経過日数」です。
たとえば、これを書いているときから、一番近い朔(新月の瞬間)は、2010年6月12日の20:15(日本時間)です。
これを元にして、翌日(6月13日)の20;15 には月齢1、翌々日(6月14日)の20:15には、月齢が2……と数えるわけです。

【小数点のある月齢表示は?】

上記の通り、「朔の瞬間」を基準に月齢を数えるわけですが、さらに、1日 = 1.0 として、算出する場合に小数点以下を含めた表示を行います。上記の例では、12時間(= 0.5日)経過した翌日(6月12日)の、8:15 には、月齢 0.5 となります。

【月齢と月の形】

さて、月齢というのは経過時間を元にした数字です。一方で、月が地球の周りを回る早さも、地球が太陽の周りを回る早さも一定ではありません。こんな訳で、月齢と月の形は、完全には一致しません。
たとえば、2010年5月28日 8:07 は満月になった瞬間ですが、このときの月齢は 13.9 でした。
一方で、2010年12月21日 17:13 の満月は、月齢 15.6 です。
そうはいっても、月齢12で満月になるというようなことはありませんから、十分目安にはなるということです。

【月相とは】

これに対して、月の形を正確に反映しているのが「月相」です。
月相とは、「見かけの月と太陽がなす角度」のことされています。
つまり、月相が0度であれば、太陽と月は同じ方向=新月。180度なら、反対方向=満月。90度と270度は半月です。
これには、もうひとつの表し方があって、0度〜360度を、0〜28の数字で表すものです。節気さんシリーズで使用しているのはこちらの数字になります。
こちらの数字を使った場合には、月相0が新月、月相14が満月、月相7と21がそれぞれ半月です。
上述した、5月28日と、12月21日の満月も、月相はいずれも14.0になっています。

※節気さんシリーズで、「そろそろ満月」「概ね上弦」「まさに新月」などと表示しているのは、この、月相を基準にしています。

【旧暦の日付と、月の異名】

さらに関連しているのが、旧暦(太陰太陽暦でした)の日付です。
この暦は、「朔の瞬間を含んだ日がついたち(一日)」として、それ以降、2日、3日……と日付を振っていったものです。
そして、月の異名の多くが、この日付を基準としています。

よく知られている、「十五夜」という表現は、この、「旧暦15日の夜の月」を意味しています。
旧暦の日付の決め方は、先に述べた月齢の定義と類似しています。言い換えれば、月の異名もまた、月の形と完全には一致しないということです。
このため、いわゆる中秋の名月(旧暦8月15日の夜)は、必ずしも満月ではないという事態も発生します。
(もっとも、満月に近いというのは間違いありません)


節気さんシリーズにおいて、月の名前は、以下のようにつけています。

朔月(1)・既朔(2)・三日月(3)・夕月(4)・夕月(5)・宵月(6)・弓張月(7)
九夜月(9)・十日夜(10)・十日余の月(11)・十三夜(13)・小望月(14)・十五夜(15)
十六夜(16)・立待月(17)・居待月(18)・臥待月(19)・更待月(20)・二十日余の月(21)
弓張月(23)・有明月(24, 25, 27, 28)・二十六夜(26)・暁月(29 以降)
(括弧の中は、朔を含む日から数えた(当日も含む)付きの出現回数)

※ただし、朔の前日(旧暦の月末)は、晦日月

2010年05月25日

(ご案内)節気さんシリーズに、「月齢君」を追加しました。

え……タイトルの通りです。
節気さんシリーズには、月齢・月相「だけ」をつぶやくBotはありませんでした。
というわけで、なんとなく、「月齢君」を追加しました。

・一日に14回(午前と午後の、0時(12時)・3時・5時・6時・7時・9時・10時)に月齢と月相をつぶやきます。
・つぶやく時刻が中途半端なのは……作者が、「月の情報ならこの時刻かな」と適当に設定しました。
・毎正時だとちょっと多すぎるかなどうかな、などと思いながら。
・朔月・望月・半月の瞬間に、「ただいま朔(新月)です」などとつぶやきます。
・朔月・望月・半月が近づくと、(おおむね2日前から)そろそろ、概ね、ほとんど、まさに……などをつけて、つぶやきます。
・朔月・望月・半月の前後(20時間以内)には、「xx時間xx分後」とか、「xx時間xx分前」などもつけます。
・最後の3つは、節気さんシリーズ(世界の……を除く)共通の仕様ですが。

以上、ご案内でした。

そうそう、URL は、 http://twitter.com/sekki_getsurei です。

2010年05月03日

お知らせ――「松江の節気」の ID を変更しました。

節気さんシリーズの Bot のうち、「松江の節気」だけが、sekki_twit_bot という、他とはかけ離れた名前になっていました。
今般他のBotと統一するため、sekki_matsue に変更しました。

既にフォローいただいている場合には、何も変更は不要です。
また、@sekki_twit_bot というページも残している(というか、実際には、ID変更後、新たに作った)ので、こちらにいってしまった場合には、sekki_matsue のほうをフォローいただければと思います。