这里有PSA算法的实现:
http://www.psa.es/sdg/sunpos.htm
我将此测试代码添加到sunpos.cpp,以计算2008年8月6日6:00慕尼黑的太阳位置。但是我得到了无用的结果,输出是:
dZenithAngle:71.034037 dAzimuth:86.052150
#include <stdio.h>
main(){
cTime t = {2008, 8, 6, 6.0, 0.0, 0.0};
cLocation l = {11.6, 48.1};
cSunCoordinates s;
sunpos(t, l, &s);
printf("%f %f\n", s.dZenithAngle, s.dAzimuth);
}
有人对这种算法有过一些经验吗?
答案 0 :(得分:2)
正如我发表评论,我认为该功能的结果还可以:
结果是太阳位置几乎在东方,海拔高度为4度。 (90 - 86)。看起来很正确。
您确定输入UTC时间吗?我在site中看到德语在夏天的当地时间为UTC + 2。那么6点是德语中的8点。它能解释你的结果吗?