Wolfram 语言

单位和日期

均时差

由于地球轨道的偏心率和地轴相对于轨道平面的倾斜,一年之中太阳的视运动在不断地改变. 这就引发了由日晷(视太阳时)测量的时间相对于更精准的时间计量(如由恒星的视自转决定的时间,即恒星时)之间的差异. 这一差异称为均时差(Equation of Time).

SiderealTime 使用 MixedUnit 返回混合单位量的恒星时值.

In[1]:=
Click for copyable input
SiderealTime[]
Out[1]=
In[2]:=
Click for copyable input
SiderealTime[]; QuantityUnit[%]
Out[2]=

恒星时实际上是一个角度,所以可以被转换成其他角度单位.

In[3]:=
Click for copyable input
UnitConvert[SiderealTime[], "AngularDegrees"]
Out[3]=

均时差由太阳的运动决定,由 SunPosition 给出. 在 GMT 正午计算每星期的值.

In[4]:=
Click for copyable input
dates = DateRange[ DateObject[{2015, 1, 1}, TimeObject[{12, 0}, TimeZone -> 0], TimeZone -> 0.`], DateObject[{2015, 12, 31}, TimeObject[{12, 0}, TimeZone -> 0], TimeZone -> 0.`], 7];
In[5]:=
Click for copyable input
sunpos = SunPosition[GeoPosition[{0, 0}], dates, CelestialSystem -> "Equatorial"]
Out[5]=

使用 SiderealTime 计算同一周日期在格林威治子午线处的赤经.

In[6]:=
Click for copyable input
stime = SiderealTime[GeoPosition[{0, 0}], dates]
Out[6]=

最后,找出全年中太阳赤经和正午恒星时之间的差异,作为均时差. 将结果以分钟为单位表示出来.

In[7]:=
Click for copyable input
equationoftime = UnitConvert[(TimeSeriesMap[First, sunpos] - stime), "MinutesOfRightAscension"]
Out[7]=

均时差的绝对值可以大于 15 分钟.

In[8]:=
Click for copyable input
MinMax[equationoftime]
Out[8]=
显示完整的 Wolfram 语言输入
In[9]:=
Click for copyable input
DateListPlot[equationoftime, GridLines -> Automatic, Axes -> True, PlotTheme -> "Web"]
Out[9]=

相关范例

de en es fr ja ko pt-br ru