首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算次太阳点

计算次太阳点
EN

Stack Overflow用户
提问于 2013-06-23 23:42:29
回答 2查看 1.4K关注 0票数 3

我才刚刚开始使用PyEphem。我的当务之急是,给定一个日期和时间,用latitude-longitude值计算地球上的次太阳点。我将深入研究PyEphem来解决这个问题,但如果有人已经这样做了,我会很感激样例代码。

EN

回答 2

Stack Overflow用户

发布于 2017-07-10 13:54:27

我去寻找和操作员一样的答案。许多帖子“提到”PyEphem是如何实现的,但没有提供实际的示例。

这是我计算太阳下点的工作示例。将所有内容映射到-180到+ 180度之间的经度。

代码语言:javascript
复制
greenwich = ephem.Observer()
greenwich.lat = "0"
greenwich.lon = "0"
greenwich.date = datetime.utcnow()
sun = ephem.Sun(greenwich)
sun.compute(greenwich.date)
sun_lon = math.degrees(sun.ra - greenwich.sidereal_time() )
if sun_lon < -180.0 :
  sun_lon = 360.0 + sun_lon 
elif sun_lon > 180.0 :
  sun_lon = sun_lon - 360.0
sun_lat = math.degrees(sun.dec)
print "Subsolar Point Sun Lon:",sun_lon, "Lat:",sun_lat

我不是PyEphem方面的专家,也许有一种更好的方法-但我的测试到目前为止已经完成了我想要的工作。

附注:是的..上面的格林威治实际上并没有设置为实际的经度/纬度...它实际上只需要0.0的经度就可以得到我们需要的适当的恒星时间。

票数 1
EN

Stack Overflow用户

发布于 2013-06-24 19:50:33

我不能从今天早上的位置测试实际的代码,但是:一个位于赤经位置的对象应该始终位于地球上一系列具有纬度的位置的正上方,所以纬度数字是由body的.dec属性(或.a_dec.g_dec,取决于您的应用程序)直接提供给您的。

现在,经度呢?

想象一下这种情况,我想大概每天都会发生一次,当格林威治在经度为0°的地方抬头看到天空中0°的直线就在头顶上。在那个时刻,假设经度是正的向东移动,那么在右升角θ的天空中的一个物体将会俯视经度θ,就像PyEphem一样。

现在,如果格林威治抬头看的是一条非零线的右升线呢?在我看来,我们只需要从一个物体的右行高度中减去它就可以得到经度,因为随着时间的推移,地球转动,右升线经过格林威治,分配给它们越来越大的右行,任何给定的物体都会向西穿过地球,它的经度会变小,然后当它经过西半球时,它会变成负数。

如果我没有记错快速参考的话,可以通过在0°经度创建一个观察者并询问它的.sidereal_time()来确定格林威治头顶上任何给定时刻的直纬线。所以我认为身体下面的经度可能是:

代码语言:javascript
复制
lon = body.ra - greenwich.sidereral_time()

我将在今天晚些时候对此做一个快速测试,看看是否会得出合理的数字。

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

https://stackoverflow.com/questions/17262428

复制
相关文章

相似问题

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