在計算日出/日落時如何計算觀察者仰角?在計算日出/日落時如何考慮觀察者的高程?
計算任何緯度/經度的日出/設置是沒有問題的,但是如何計算海拔而不是海平面?我已經用完了三天的組合,並且花了三天時間在這裏,我正在努力尋求幫助。
我使用Paul Schlyter出色的公共領域C源代碼,這似乎是最常見的。它可以讓你設置「太陽應該穿越的高度」,例如-12爲航海暮光或-35/60等,但我不知道如何修改這個以考慮到海平面以上的觀察員海拔。
例如,厄瓜多爾基多是海拔2850米的最高城市之一。
緯度+經度:-78.46784,-0.18065
區:-5
海拔高度:2850米
使用卡西歐計算器(http://keisan.casio.com/exec/system/1224686065),爲數不多的我發現,不考慮高程之一,它返回以下的(日期= 2017年1月1日):
日出= 6:14日落= 18:22。海拔=0米< - 我已經可以得到這個
日出= 6:05日落= 18:30。海拔=2850米< - 但我怎麼能得到這個?
我能夠獲得通過設置高度= -35/60(-0.58333)上肢= 1.0 可是如何才能讓第二個是第一個(海拔= 0)?
我使用下面的函數:
int sunriset(int year, int month, int day, double lon, double lat,
double altit, int upper_limb, double *trise, double *tset)
/*************************************************************/
/* altit = the altitude which the Sun should cross */
/* Set to -35/60 degrees for rise/set, -6 degrees */
/* for civil, -12 degrees for nautical and -18 */
/* degrees for astronomical twilight. */
/* upper_limb: non-zero -> upper limb, zero -> center */
/* Set to non-zero (e.g. 1) when computing rise/set */
/* times, and to zero when computing start/end of */
/* twilight. */
/**************************************************************/
SUNRISE.C(我做了這個READY-TO-RUN爲例):通過硬編碼基多/緯的/ etc:https://pastebin.com/XSWR2Hby 編譯:gcc sunrise.c -o sunrise.exe
[本節]的最後一段(https://en.wikipedia.org/wiki/Sunrise_equation#Hour_angle)? –
這就是我的想法,但我已經嘗試過這些例子中的每個組合,例如。 ALT = -0.8333 + -0.5536
ALT = -0.8333 - -1.388
ALT = -0.8333 + -101.378
ALT = -0.8333 - (0.347 * SQR(米))
等 –
其例子也是混亂,作爲顯示的算法似乎使用分割和平方根?但他們的例子只使用分區!? –