我的问题是皮耶弗提供了夏至和分点以及太阳几何学的精确结果的时间跨度是多少。在
到目前为止,我在GitHub上的这篇信息非常丰富的帖子中找到了公元前9998-03-20到公元9999-12-31之间的界限,并且总体上表明,当移动超过+/-20000年时,结果会变得不稳定。在
我想澄清这一点,因为我试图获得太阳在更长时间内的位置,通常可以追溯到10000年前的BP,以便计算出太阳在给定位置的高度和方位的入射太阳辐射。PyEphem似乎提供了一个很好的替代功能,例如Berger,1978(J.Atmosph。南卡罗来纳州,35:2362-2367)。对我来说,PyEphem相对于这些算法的一个重要优势是它可以跟踪时间,而在上述算法中,地球轨道通常固定在某个特定时刻(例如,3月21日的春分点)。在
通常,用伯杰等人的算法计算地球轨道的变化是在最后一次冰期的尺度上(高达12.6万年前)。当我在这个范围内评估皮耶弗时,我遇到了一些奇怪的现象,即夏至的日期早于今天:
import ephem
date= ephem.date((-59000,1,1))
orbitPoints= ['vernal_equinox_start','summer_solstice',\
'autumnal_equinox','winter_solstice','vernal_equinox_end']
dates= {}
dates['vernal_equinox_start']= ephem.next_vernal_equinox(date)
dates['summer_solstice']= ephem.next_summer_solstice(dates['vernal_equinox_start'])
dates['autumnal_equinox']= ephem.next_autumnal_equinox(dates['vernal_equinox_start'])
dates['winter_solstice']= ephem.next_winter_solstice(dates['vernal_equinox_start'])
dates['vernal_equinox_end']= ephem.next_vernal_equinox(dates['winter_solstice'])
for orbitPoint in orbitPoints:
date= dates[orbitPoint]
distance= body_distance(sun, date)
hlon, hlat= body_hpos(sun, date)
print '%-20s %30s %8.4f %12s %12s' %\
(orbitPoint, date, distance, hlon, hlat)
print 'days between between equinoxes: %.1f, year length (vernal equinox): %.1f' %\
(dates['autumnal_equinox']-dates['vernal_equinox_start'],\
dates['vernal_equinox_end']-dates['vernal_equinox_start'])
给出:
^{pr2}$我仍然得到一个合理的(?)将日期设置为date= ephem.date((-25000,1,1))
时的年份长度值。在
如果PyEphem在我感兴趣的时期(10000年前)确实给出了准确的结果,那就符合我的目的了。不过,我想澄清这一点,并愿意接受扩大这一范围的建议,即使只是为了验证。我把天空场作为一种替代方案,但它似乎没有提供更大的射程。在
如能清楚描述皮耶芬的有效性范围并提出任何建议,我们将不胜感激。在
你得到的结果是合理的,尽管我不能说他们的具体准确性。地球的自转速度与现在的相似只是短暂的。就在几百年前,白天变短了,将来会越来越长(随着误差的累积,我们有闰秒),而历史上每一年累积的差异使我们现在的公历越来越接近于你往后跳一千年的季节。参见:
https://eclipse.gsfc.nasa.gov/SEcat5/deltat.html
我没有坐下来计算累积的差异是否真的解释了上面所看到的差异,或者是否还有其他影响在起作用,但我肯定不会惊讶于我们现在的公历日正好是我们的长度,当预测到公元前59000年,在一个季节里降落在其他地方,而不是今天。在
相关问题 更多 >
编程相关推荐