mikeo_410
  1. python
    1. PyAstronomy.pyasl.moonphase(jd)

PyAstronomy.pyasl.moonphase(jd)

1 illuminated fraction [0 - 1]

 この関数の戻り値は、[0 - 1] の照度らしい。
 国立天文台の「平成29年(2017) 暦要項」から、「朔 4月26日 21時16分」を採ります。
 UTC の 2017/04/26 12:16:00 で、ユリウス通日は、
\[ \begin{multline} 2457869.5 + \frac{12}{24} + \frac{16}{24 \times 60} = 2457870.011 \end{multline} \]


 時刻は、ユリウス通日の小数点以下で表します。ユリウス通日の起点が 12:00 から始まることから、0:00 日界の場合、1日は -0.5 から始まります。
 この朔は、UTC の 12:06 なので、ほぼ、2457870 です。およそ、2457869.5 から 2457870.5 が、朔のあった 1日です。
 経度 0 が、昼(正午)になるころには、日本では日が沈んで午後9時になっています。

import datetime
from PyAstronomy import pyasl
import matplotlib.pyplot as plt
import math
import numpy as np
jd = 2457869.5+12/24+16/(24*60) # 2017/04/26 12:16:00 UTC
jds = np.linspace(jd-1.5,jd+1,192)
mp = pyasl.moonphase(jds)
print(jds[76],mp[76])
print(min(mp),max(mp))
plt.plot(jds, mp)
plt.xlabel("days")
plt.ylabel("fraction[0,1]")
plt.axhline(color="gray")
plt.axvline(jd,color="black",linestyle="-",linewidth=0.5)
x = [2457868.5,2457869.5,2457870.5]
plt.axvline(x[0],color="blue",linestyle="dotted")
plt.axvline(x[1],color="blue",linestyle="dotted")
plt.axvline(x[2],color="blue",linestyle="dotted")
plt.axvline(x[0]-0.375,color="red",linestyle="dotted")
plt.axvline(x[1]-0.375,color="red",linestyle="dotted")
plt.axvline(x[2]-0.375,color="red",linestyle="dotted");
2457869.5058755088 0.00522635343072958
0.0016080216824188032 0.033593029671557695

  1. 月の相を求めるときに指定するのはユリウス通日
  2. 時間は UTC
  3. ユリウス通日の小数点以下
    \[ \begin{multline} \shoveleft{hour:minute:second}\\ \shoveleft{ユリウス通日の小数点以下 = \frac{hour}{24} + \frac{minute}{24 \times 60} + \frac{second}{24 \times 60 \times 60}}\\ \end{multline} \]


    この時間は、0:00 からの時間。
    ユリウス通日の0:00 は、-0.5。
  4. 最小値は約0.0016で、これが朔を示す。
  5. 放物線上なので、朔の近傍では変化が緩慢
  6. 朔の前後12時間で、0.005 に戻る

2 月齢との関係

 国立天文台の「平成29年(2017) 暦要項」から、「朔 4月26日 21時16分」の次の朔までを見てみます。

月相 中央標準時 経過日数 世界時 ユリウス通日 照度
下弦 4月19日 18時57分 2017-04-19 09:57:00 UTC 2457862.91458 0.50138390
4月26日 21時16分 7.1 2017-04-26 12:16:00 UTC 2457870.01111 0.00160989
上弦 5月03日 11時47分 6.6 2017-05-03 02:47:00 UTC 2457876.61597 0.50118002
5月11日 6時42分 7.8 2017-05-10 21:42:00 UTC 2457884.40417 0.99815868
下弦 5月19日 9時33分 8.1 2017-05-19 00:33:00 UTC 2457892.52292 0.50136075
5月26日 4時44分 6.8 2017-05-25 19:44:00 UTC 2457899.32222 0.00189255
上弦 6月01日 21時42分 6.7 2017-06-01 12:42:00 UTC 2457906.02917 0.50118762

 月齢は朔からの日数なので、1日に1変化します。
 関数の戻り値の照度は、朔が 0.002以下、望は 0.998以上になっています。上弦下弦は約 0.501のようです。
 この関数の戻り値は[0,1]で、朔から望、望から朔で同じ値を使うので、15日弱で最小から最大、最大から最小を繰り返します。最大値から最小値を引いて、平均朔望月の 29.530589日の半分で割れば、
\[ \begin{multline} \frac{0.998-0.002}{29.530589 \div 2} \approx 0.067455 \end{multline} \]


 概ね、月齢1に対して、約 0.067 が相当します。

import datetime
from PyAstronomy import pyasl
import matplotlib.pyplot as plt
import math
import numpy as np
jds = np.linspace(2457862.91458,2457906.02917,192)
mp = pyasl.moonphase(jds)
plt.plot(jds, mp)
plt.xlabel("days")
plt.ylabel("fraction[0,1]")
plt.axhline(color="gray")
u = [2457870.01111,2457876.61597,2457884.40417,2457892.52292,2457899.32222]
for x in u:
    plt.axvline(x,color="red",linestyle="dotted")
u2 = [u[0],u[2]]
mp2 = pyasl.moonphase(u2)
plt.plot(u2,mp2,color="magenta",linewidth=0.5)

print(min(mp),max(mp),max(mp)-min(mp))
0.001721123308851713 0.9981449243110347 0.9964238010021831

3 朔と望の瞬間の前後半日

 グラフを見れば、朔と望の前後は変化が少なくなります。望の方が朔より、緩慢な変化になります。
 朔と望の1日後の照度は次のようになります。

print(pyasl.moonphase([u[0]+1]))
print(pyasl.moonphase([u[2]+1]))
[0.01700771]
[0.98908706]

 朔の場合、照度が 0.017 を超えるときは、24時間以内に朔がないことが分かります。
 望の場合、照度が 0.989 より小さければ、24時間以内に望がないことが分かります。


題目一覧へmikeo_410@hotmail.com(updated: 2025/10/31)