首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyEphem角度澄清

PyEphem角度澄清
EN

Stack Overflow用户
提问于 2012-06-23 01:13:40
回答 2查看 2K关注 0票数 4

我只想确保我理解PyEphem对angles做了什么。

假设我有一个观测者在30°S,60°W,今天中午看着天空。所以我这么做了:

代码语言:javascript
复制
obs = ephem.Observer()
obs.lat, obs.lon = '-30', '-60'
obs.date = '2012/6/22 12:00:00'

现在我想找出当观察者观察某个方位和高度时,他看到的是天球的哪一部分(在RA和赤纬中)。我可以这样做:

代码语言:javascript
复制
obs.radec_of(az,alt)

这就是我感到困惑的地方。据我所知,PyEphem适用于所有角度的弧度,所以我应该将azalt作为弧度。那么,是不是这样,0°高度是地平线,90°高度直接在头顶上,-90°是直指地面?在哪种情况下,PyEphem将95°高度视为与85°相同,还是将其翻转到-85°?

另外,如果观测者想要观察南天极,这是正确的代码吗?

代码语言:javascript
复制
az = float( ephem.degree('180') )
alt = float( ephem.degree('30') )
ra, dec = obs.radec_of(az,alt)

或者海拔应该是-30°?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-23 11:48:53

你对高度和方位的理解听起来是正确的!对于位于南纬30°的人来说,南天极确实位于南边地平线上方30°,正如你所描述的那样。

但我们可以对您的代码进行一两个修复。

首先,有一个拼写错误。您正在寻找的将度数转换为弧度的函数名为ephem.degrees() (请注意复数)-如果您尝试将ephem.degree作为函数调用,则会得到异常:

代码语言:javascript
复制
TypeError: 'float' object is not callable

因为ephem.degree实际上是浮点数0.0174532925199,因为这是度数中的弧度。而且你不能像调用函数一样调用浮点数!修复后,我们将为您的示例获得正确且有效的代码:

代码语言:javascript
复制
az = float(ephem.degrees('180'))
alt = float(ephem.degrees('30'))
ra, dec = obs.radec_of(az,alt)
print ra, dec

→ 12:30:10.05 -89:53:54.7

但是我们可以让代码更简单!

首先,ephem.degrees()的返回值已经是一个浮点数,因此实际上并不需要围绕它的float()调用;您可以这样说:

代码语言:javascript
复制
az = ephem.degrees('180')
alt = ephem.degrees('30')

这两个值可以作为radec_of()的参数。实际上,您可以做得更好:因为radec_of()函数知道方位角和高度传统上是以度为单位给出的,您只需将字符串交给函数本身,它就会假定字符串中的数字是以度为单位编写的。因此,如果我们愿意,我们可以完全删除azalt变量,只需这样说:

代码语言:javascript
复制
ra, dec = obs.radec_of('180', '30')

最后,你可能想知道为什么我们得到的RA和赤纬并不完全在南极点,尽管它们很接近。

第一个原因是PyEphem考虑了大气折射,在低海拔时,大气折射会提高地平线以上物体的视高度。如果我们告诉Observer对象忽略大气影响(通过告诉它我们居住的地方没有空气-大气压力为零),那么返回值将更接近南极:

代码语言:javascript
复制
obs.pressure = 0
ra, dec = obs.radec_of('180', '30')
print ra, dec

→ 12:24:25.48 -89:55:15.9

显然,这让我们走得更近了。还有一两个问题涉及到进动,甚至章动,我们需要解决这些问题,才能真正将赤经降低到-90°,但我将不得不在早上看到它们,那时我可以更好地想象角度!

票数 4
EN

Stack Overflow用户

发布于 2012-06-23 12:32:44

回答你的另一个问题:像95°这样的高度既不能简单地认为与85°相同,PyEphem也不认为它在-85°高度的底部低于我们的脚下。相反,它认为95°的意思是“沿着你正在追随的方位线一直走下去,直到你最终到达天顶并处于90°-然后继续向天空的另一边移动5度,将你带到完全相反的方位线下5度。”

因此,如果你询问方位和高度( 15°,95°)的点,那么PyEphem会认为它一直沿着15°线向上,然后走得更远,所以你开始沿着天顶另一侧的195°方位线返回。因此,您正在讨论的方位和高度的“标准化”名称是(195°,90°- 5°) = (195°,85°)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11161028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档