gpt4 book ai didi

Calculating time of visual appearance of moon after new moon with Skyfield(用Skyfield计算新月后月亮的可见时间)

转载 作者:bug小助手 更新时间:2023-10-25 11:23:31 29 4
gpt4 key购买 nike



I am currently trying to implement a reconstruction of the ancient Germanic calendar in Python. One of its rules is that if a new moon occurs in the 12 nights following the winter solstice, the next year will be a leap year (with a leap month added to it). I could easily implement this with the almanac module of Skyfield.

我目前正在尝试用Python语言实现古代日耳曼历法的重建。它的规则之一是,如果新月出现在冬至后的12个晚上,下一年将是闰年(加上一个闰月)。我可以用Skyfield的年鉴模块很容易地实现这一点。


For most of the years this worked perfect. But my algorith calculated that 2034, 2060, 2061 were leap years, which the book I use as reference ("The Lunisolar Calendar of the Germanic Peoples" by Andreas E. Zautner) states aren't. It turned out that in the years preceding these either the new moon occured directly after the winter solstice or slighty after the 12 nights. Therefore the new moons that the book references seem to occur slighty later than the actual ones. I found out that the definition of a new moon used to be different: The new moon is the point in time, where the crescent moon is visible for the first time.

在大多数时间里,这都是完美的。但我的算法计算出,2034年、2060年、2061年是闰年,而我用来作为参考的那本书(安德烈亚斯·E·佐特纳的《日耳曼人的阴历》)并不是这样。结果发现,在这之前的几年里,要么新月直接出现在冬至之后,要么新月出现在12个晚上之后。因此,书中提到的新月似乎比实际出现的要晚一些。我发现,新月的定义过去是不同的:新月是指第一次可以看到新月的时间点。


Is there a way of calculating the new moon after this definition using Skyfield? Is it even well-defined enough to be calculated, since the ability to see this very thin line of light can differ between people and, more importantly, different observation equipment which have different sensitivities?

在这个定义之后,有没有办法用Skyfield来计算新月?由于人与人之间以及更重要的是具有不同灵敏度的不同观测设备之间,看到这条非常细的光的能力可能不同,它的定义是否足够好,足以进行计算?


更多回答
优秀答案推荐

You are asking a very hard question without realizing it. The question you're asking is about an "observational calendar" rather than an "astronomical calendar": a new month occurs when someone witnesses the new moon rather than the astronomical moment of newness.

你在问一个很难回答的问题,却没有意识到。你问的问题是关于“观测日历”而不是“天文日历”:当某人目睹了新月而不是天文时刻时,一个新的月份就会出现。


Because there are human factors involved, this is hard to quantify exactly. It is still an issue with the Islamic calendar today, because each Islamic community relies on witnesses to testify that they have seen the new moon. How dim can human eyes see? How clear is the atmosphere? How far away is the moon from the earth? Must the observation be made near you, or will you accept an observation from several hours and time zones away?

由于涉及到人为因素,这很难准确量化。这仍然是今天伊斯兰历法的一个问题,因为每个伊斯兰社区都依赖目击者作证,证明他们看到了新月。人眼能看到多暗?大气层有多清新?月球离地球有多远?观察必须在你附近进行,还是你会接受几个小时和几个时区之外的观察?


With observational calendars, it really is impossible to predict the future of the calendar. When you are attempting to re-create a dead observational calendar and project it into the future, you just have to realize that there are going to be uncertainties.

有了天文历,就真的不可能预测日历的未来了。当你试图重新创建一个死气沉沉的观测日历并将其投射到未来时,你只需意识到将会有不确定性。


The term "proleptic calendar" means taking a calendar and using it for dates before that calendar existed. I don't know the term for using a calendar beyond when it ceased to exist.

术语“预防性日历”指的是取一个日历,并将其用于该日历存在之前的日期。我不知道在日历不复存在的时候使用日历的术语。




Continuing to maybe answer your question. The best advice I can give you is to use the Islamic calendar. Its calculation of the first of the month is roughly the same as what you want.

继续回答你的问题。我能给你的最好建议是使用伊斯兰历法。它对本月1日的计算与您想要的大致相同。


I use the calendrical package, which you can access via pip install python-calendrical. It provides functions such as islamic_to_rd, rd_to_islamic, gregorian_to_rd, rd_to_gregorian. (It has other calendars, too.). Use gregorian_to_rd(year, month, day) to get the number of days since the proleptic January 1, 1AD). You can then use rd_to_islamic(value) to convert that into the Islamic date. If it's the first of the month, then it's your first of the month, too.

我使用的是Python包,你可以通过pip install python-Python来访问它。它提供了函数,如islamic_to_rd,rd_to_islamic,gregorian_to_rd,rd_to_gregorian。(It也有其他日历)。使用gregorian_to_rd(year,month,day)来获取自预言的日期(公元1年1月1日)以来的天数。然后,您可以使用rd_to_islamic(value)将其转换为伊斯兰日期。如果是月初,那也是你的月初。


The source is there, too.

消息来源也在那里。


更多回答

Thanks for your answer! I agree that this calendar was never meant to be used with the technical abilities and demands on accuracy we have today. But the astronomical circumstances have stayed mostly the same, so the rules should also be applicable today. And also, the book I use does have predictions for the future. So there has to be at least some way to approximate the time of the observation in the future. Do you maybe have an idea what they could have used to get this results or maybe an idea what better rule to use that would mostly yield the same results as a real observation?

谢谢你的回答!我同意,这本日历从来没有打算与我们今天的技术能力和准确性要求一起使用。但是天文学的情况基本上保持不变,所以这些规则也应该适用于今天。而且,我使用的这本书确实有对未来的预测。因此,至少有某种方法可以近似未来的观测时间。你是否知道他们可以用什么来得到这个结果,或者知道使用什么更好的规则来产生与真实观察相同的结果?

More info added to added to original post.

更多信息已添加到原始帖子。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com