中华农历论坛知识讨论区历法知识 → 求助:如何求某时某地的东方地平线与黄道的交点?


  共有23106人关注过本帖树形打印

主题:求助:如何求某时某地的东方地平线与黄道的交点?

帅哥哟,离线,有人找我吗?
buffettlamb
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:237 威望:0 精华:0 注册:2009/10/3 15:33:00
求助:如何求某时某地的东方地平线与黄道的交点?  发帖心情 Post By:2010/3/3 19:45:00

如何求某时某地的东方地平线与黄道的交点?

地平线:观察者所在位置的切平面与天球的交线

谢谢!

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2010/3/3 22:17:00

使用球坐标变换公式即可。(球面三角公式)

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
buffettlamb
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:237 威望:0 精华:0 注册:2009/10/3 15:33:00
  发帖心情 Post By:2010/3/5 16:00:00

以下是引用xjw01在2010-3-3 22:17:00的发言:
使用球坐标变换公式即可。(球面三角公式)



许老师,我不会啊。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2010/3/5 18:59:00

ε黄赤交角

90表示90度,不是弧度编程时应注意

g是格林尼治恒星时

L是地理经度,向东测量为正

 

 

 

黄极的赤道坐标是(-90,90-ε)
黄极的时角坐标是(g+L-(-90),90-ε) = (g+L+90,90-ε)
黄极的正西起算的时角坐标是(90-(g+L+90),90-ε) = (-g-L,90-ε)
最后,把(-g-L,90-ε)代入黄道转赤道坐标的公式中,即得到黄极在地平坐标系中的坐标


参见:
tan(α) = ( sin(λ)*cos(ε) - tan(β)*sin(ε) ) / cos(λ)

sin(δ) = sin(β)*cos(ε) + cos(β)*sin(ε)*sin(λ)

把式中的λ用(-g-L)代入,β用90-ε代入即可。

当然(α,δ)变成了地平坐标

我就不化简了,你自己简吧。

 

注:黄极计算出来后,你要得答案易得。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
buffettlamb
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:237 威望:0 精华:0 注册:2009/10/3 15:33:00
  发帖心情 Post By:2010/3/6 1:39:00

谢谢许老师,我对星历很感兴趣,很感谢您的指导,可我的天文知识太少太少了,正在努力学习中,刚知道了啥叫黄极。
能看懂您的,但不会继续推下去。

东方地平线交于黄道的那个点就叫上升点,我想知道它在黄道的经度。

是不是您程序sunShengJ(jd-dt_T(jd)+L/pi2,L,fa,-1) 中的VAR a就是我要的结果?

function sunShengJ(jd,L,fa,sj){ //太阳升降计算。jd儒略日(须接近L当地平午UT),L地理经度,fa地理纬度,sj=-1升,sj=1降
  var i;
  jd=floor(jd+0.5)-L/pi2;
  for(i=0;i<2;i++){
  var="var"  t="jd/36525," e="(84381.4060" -46.836769*T)/rad; //黄赤交角
  var="var"  t="t"  = T+(32*(T+1.8)*(T+1.8)-20)/86400/36525;  //儒略世纪年数,力学时

  var="var"  J="J"  = (48950621.66 + 6283319653.318*t + 53*t*t - 994
        +334166 * cos( 4.669257+  628.307585*t)
        +  3489="3489"  * cos( 4.6261  + 1256.61517*t )
        +2060.6 * cos( 2.67823 +  628.307585*t ) * t)/10000000;
  var="var"  sinj="sin(J)," cosj="cos(J);" //太阳黄经以及它的正余弦值
  var="var"  gst="gst"  = (0.7790572732640 + 1.00273781191135448*jd)*pi2 + (0.014506 + 4612.15739966*T + 1.39667721*T*T)/rad; //恒星时(子午圈位置)
  var="var"  A="A"  = atan2( sinJ*cos(E), cosJ="cosJ"  );  //太阳赤经
  var="var"  D="D"  = asin="asin"  ( sin(E)*sinJ );        //太阳赤纬
  var="var"  cosH0="cosH0"  = (sin(-50*60/rad) - sin(fa)*sin(D) ) / ( cos(fa)*cos(D) );
    if(abs(cosH0)>=1) return 0; //太阳在地平线上的cos(时角)计算
  jd += rad2rrad(sj*acos(cosH0) - (gst+L-A) )/6.28; //(升降时角-太阳时角)/太阳速度
  }
  return jd; //反回格林尼治UT
}

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2010/3/6 9:52:00

ε黄赤交角
90表示90度,不是弧度编程时应注意
g是格林尼治恒星时
L是地理经度,向东测量为正
D=g+L是本地恒星时

 

黄极的赤道坐标是(-90,90-ε)
黄极的时角坐标是(D-(-90),90-ε) = (D+90,90-ε)
黄极的正西起算的时角坐标是(90-(D+90),90-ε) = (-D,90-ε)
最后,把(-D,90-ε)代入黄道转赤道坐标的公式中,即得到黄极在地平坐标系中的坐标
tanα = ( sinλ*cosε - tanβ*sinε ) / cosλ
sinδ = sinβ*cosε + cosβ*sinε*sinλ
(把式中的λ用-D代入,β用90-ε代入即可。α为黄极的经度J,δ为黄极的纬度W)

所以:
tan(J) = ( -sinD*cosε - tan(90-ε)*sin(ε) ) / cosD
sin(W) = cosε*cosε - sinε*sinε*sinD

化简得最后公式:
J = atan2( -cosε(1+sinD), cosD)
W = asin( 1 - sin 平方ε(1+sinD) )
这就得到了黄极的坐标(J,W)
注意,这个坐标是从正西起算(北球正西点:沿赤道逆时针(即顺行),经过该点,高度角由负变正,是个升交点) 的。

当(J,W)计算出来以后,升降交点就可求得(J+-90度,0),黄道面与地平面的夹角为90-W

 

 你认真计算一下,也许我算错了。你要作图计算!!!!把地球画正立(赤道),北极在上。

 

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2010/3/6 10:01:00

以下是引用buffettlamb在2010-3-6 1:39:00的发言:
谢谢许老师,我对星历很感兴趣,很感谢您的指导,可我的天文知识太少太少了,正在努力学习中,刚知道了啥叫黄极。
能看懂您的,但不会继续推下去。

东方地平线交于黄道的那个点就叫上升点,我想知道它在黄道的经度。

是不是您程序sunShengJ(jd-dt_T(jd)+L/pi2,L,fa,-1) 中的VAR a就是我要的结果?

 

sunShengJ(jd-dt_T(jd)+L/pi2,L,fa,-1) 是用来求日出日没时间的。

var a我怎么没有找到。当时给出这个程序时,好象有给出算法的描述。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
buffettlamb
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:237 威望:0 精华:0 注册:2009/10/3 15:33:00
  发帖心情 Post By:2010/3/6 12:29:00

太感谢许老师了!

上面那段里有VAR A,但看不清,弄张图片上来,看得清楚些。这段代码在EPH0.JS里。



图片点击可在新窗口打开查看此主题相关图片如下:vara.jpg
图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
buffettlamb
  9楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:237 威望:0 精华:0 注册:2009/10/3 15:33:00
  发帖心情 Post By:2010/3/7 2:57:00

许老师,您好。我在您的代码上修改了下:
function sunShengD(jd2,L,fa){
//上升点计算。jd2儒略日(L当地平午UT),L地理经度,fa地理纬度
  var i;
  var now=new Date();
    var jd=jd2 - J2000;
  jd += now.getTimezoneOffset()/60/24+dt_T(jd); //转为力学时;
//求星历
    var T=jd/36525, E=(84381.4060 -46.836769*T)/rad; //黄赤交角
  var gst =pGST2(jd);  //恒星时
  var D=gst+L;
    var AA = atan2( -1*cos(E)*(1+sin(D)),cos(D))+90/radd; 
  return AA;
}

计算sunShengD(jd2,L,fa)    // L  = 121.46/radd, fa = 31.23/radd
得到:
2010-03-08 12:00  53°46'22.51"

和正确的上升点数值92°15'不一样。不知我错在哪里?


[此贴子已经被作者于2010-3-7 16:07:27编辑过]


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  10楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2010/3/7 10:00:00

你的题目是“求助:如何求某时某地的东方地平线与黄道的交点?”

 

 

并不是求太阳运动,也不是求太阳升降。太阳升降问题:太阳在平行圈上运动,不是简单的在黄道上运动!

 

你现在求黄道与地平圈的交点。那只要给出黄道位置、地平圈位置,不就可以知道交点了。黄道位置用黄极描述,地平圈位置用天顶描述。在这个表述过程中,没用到“太阳”位置,苦苦计算太阳位置又作何用。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 13 1 2 下一页

返回版面帖子列表

求助:如何求某时某地的东方地平线与黄道的交点?








签名