给出太阳位置(方位角和仰角)以及纬度和经度的日期和时间

Bri*_*pin 6 math azimuth astronomy

与此非常有用的问题相关,该问题涉及查找给定日期的太阳方位角和仰角以及坐标.我希望找到相反的:时间和日期太阳将在天空的位置.

因此,我想知道有人可能会帮助现有的公式或修改链接到的公式.

我目前的想法是采取两个范围,两者的变化为两度,一个用于方位角(120-123度)和高度(18-21度).然后编写一个算法来遍历所有日期/时间,并检查当天是否存在给定范围.在这些日子里循环并使用附加的算法并不能完全保持Big O的小,而且也不是最佳的性能.

请提供任何帮助或提示.

谢谢.

Spe*_*tre 1

经过一番思考,你可以得到这样的日期:

if (ang>=0.0) date = (21.March)    +ang*(21.June    -21.March    )/(23.4 degrees);
else          date = (21.September)-ang*(21.December-21.September)/(23.4 degrees);
Run Code Online (Sandbox Code Playgroud)
  • 日期非常简单
  • ang 是黄道面和地球赤道面之间的当前角度
  • 必须在白天测量!
  • 如果您在天文正午测量太阳高度(在您所在的纬度),则:

    ang = height - (90 degrees - your latitude)
    
    Run Code Online (Sandbox Code Playgroud)
  • 要转换随时测量的高度,您需要应用矢量数学
  • 请参阅两个平面之间的角度的计算
  • 查看图片以获得更清晰的信息

年内黄道 要计算一天中的时间,您需要寻找

  • 标准 (UTC) 时间和恒星时间之间的转换
  • 另外一个好主意是寻找太阳钟设计,其中包括以几何方式进行的所有计算。

不要忘记,这种方法不包括进动、章动......

  • 如果你考虑到这一点,那么这个任务就变得无法解决,因为太阳天空圆顶路径交叉,这会导致任何给定太阳位置的多个解决方案
  • 幸运的是岁差太慢,我们可以跳过它几千年
  • 章动半径小(仅影响精度)