确定合时坐标

2024-04-08

今天金星的下合(虽然由于太阳偏北而仍然可以观测到)激发了 pyEphem 的以下研究。

  1. 确定金星与太阳下合的日期。 pyEphem 中是否有金星和太阳之间(劣)合相的搜索功能?
  2. 确定该日期金星的黄道纬度。那应该很容易。
  3. 对过去 100 年和未来 100 年的合词执行此操作。这只是一个循环。

我想知道如何在 pyEphem 中做到这一点。

谢谢, 格特


在 PyEphem 中执行此操作会很尴尬,因为将其返回值减少为数字所需的操作 - 但它看起来类似于以下代码,它使用更现代的 Skyfield 库在 Python 中进行天文学。 (这段代码还需要安装SciPy,这样它的求解器就可以用来找到准确的合取时刻:)

import scipy.optimize
from skyfield.api import load, pi, tau

ts = load.timescale()
eph = load('de421.bsp')
sun = eph['sun']
earth = eph['earth']
venus = eph['venus']

# Every month from year 2000 to 2050.
t = ts.utc(2000, range(12 * 50))

# Where in the sky were Venus and the Sun on those dates?
e = earth.at(t)

lat, lon, distance = e.observe(sun).ecliptic_latlon()
sl = lon.radians

lat, lon, distance = e.observe(venus).ecliptic_latlon()
vl = lon.radians

# Where was Venus relative to the Sun?  Compute their difference in
# longitude, wrapping the value into the range [-pi, pi) to avoid
# the discontinuity when one or the other object reaches 360 degrees
# and flips back to 0 degrees.
relative_lon = (vl - sl + pi) % tau - pi

# Find where Venus passed from being ahead of the Sun to being behind.
conjunctions = (relative_lon >= 0)[:-1] & (relative_lon < 0)[1:]

# For each month that included a conjunction, ask SciPy exactly when
# the conjunction occurred.

def f(jd):
    "Compute how far away in longitude Venus and the Sun are."
    t = ts.tt(jd=jd)
    e = earth.at(t)
    lat, lon, distance = e.observe(sun).ecliptic_latlon()
    sl = lon.radians
    lat, lon, distance = e.observe(venus).ecliptic_latlon()
    vl = lon.radians
    relative_lon = (vl - sl + pi) % tau - pi
    return relative_lon

for i in conjunctions.nonzero()[0]:
    t0 = t[i]
    t1 = t[i + 1]
    print("Starting search at", t0.utc_jpl())
    jd_conjunction = scipy.optimize.brentq(f, t[i].tt, t[i+1].tt)
    print("Found conjunction:", ts.tt(jd=jd_conjunction).utc_jpl())
    print()

无论您使用哪个天文学库,这都是要采取的一般方法:随着时间向前迈出一大步(在本例中为 1 个月的步长),寻找金星在经度上从太阳前面移动到太阳后面的时间。然后,返回每个月份,并在经度相同的确切时刻归零。以下是上述脚本打印的一些值,您可以根据 USNO 或其他来源发布的值进行抽查:

Starting search at A.D. 2013-Dec-24 00:00:00.0000 UT
Found conjunction: A.D. 2014-Jan-11 12:24:30.8031 UT

Starting search at A.D. 2015-Jul-28 00:00:00.0000 UT
Found conjunction: A.D. 2015-Aug-15 19:21:55.1672 UT

Starting search at A.D. 2017-Mar-01 00:00:00.0000 UT
Found conjunction: A.D. 2017-Mar-25 10:17:27.5276 UT

Starting search at A.D. 2018-Oct-03 00:00:00.0000 UT
Found conjunction: A.D. 2018-Oct-26 14:16:19.3941 UT

Starting search at A.D. 2020-May-06 00:00:00.0000 UT
Found conjunction: A.D. 2020-Jun-03 17:43:37.7391 UT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定合时坐标 的相关文章

  • 在 UIImage iOS 6.0 的所有四个面上添加阴影

    我正在尝试向 imageView 的所有四个侧面添加阴影 我看到 self shadowView layer shadowOffset CGSizeMake 10 20 在两侧添加阴影 如何在四个面上都添加阴影 刚刚设置shadowOffs
  • 从列表创建变量并全局访问

    我正在编写一个程序 从数据库中提取部门列表 我想避免对此进行硬编码 因为列表可能会发生变化 我想为每个部门创建一个变量 将问题填充到 GUI 中 我遇到的问题是我可以使用 vars 函数从数据库列表中创建变量 然后 我存储变量名称列表 以便
  • Java 相当于 C++ 加密 [重复]

    这个问题在这里已经有答案了 我有以下用于加密的 C 代码片段 EVP CIPHER CTX ctx const EVP CIPHER cipher EVP des ede3 cbc unsigned char iv EVP MAX IV L
  • 如何通过直接链接将 WebCal/iCalendar 添加到 Google 日历

    您可以通过直接链接将 Google 托管的日历添加到您的 Google 日历帐户 例如澳大利亚假期 https www google com calendar embed src en australian 23holiday 40grou
  • 在 makefile 中,目录名是假目标还是“真实”目标?

    根据我所读到的有关 makefile 的内容 虚假目标是指与实际文件名不对应的任何目标 我的直觉表明 作为目标的目录将被视为与文件相同 为什么这很重要 我的 makefile 中有一个目录作为目标 当我将其作为主要可执行文件的先决条件时 无
  • 如何以编程方式访问 NIB 中的 UI 元素而不“连接”它们?

    我正在考虑编写一些辅助函数 以便更轻松地对 iPhone NIB 中的 UI 元素进行简单的更改 主要是 我想通过 Interface Builder 中的名称访问 UILabel 或其他元素 这可能吗 有更聪明的方法吗 Example 假
  • 用于旋转 QWidget 的 QPropertyAnimation

    我是 Qt 新手 遇到一些问题QWidget回转 我在 QLabel 中有一个 QPixmap 我想要的是让它连续旋转 90 度 I know QPropertyAnimation我知道如何使用它 但我正在努力解决如何使用它来旋转QWidg
  • 向下滑动动画Angular 4

    我正在尝试为我的页面添加动画效果 但遇到以下问题 我的页面上有内容 div 以及一个可在内容上方打开另一个 div 的按钮 我希望该 div 淡出并滑入 并且下面的 div 也向下 向上滑动 我为上面的 div 创建了我想要的动画 该动画在
  • 如何删除 JavaScript 数组元素并重置键

    我有一个如下所示的数组 var fields name mark age 23 name smith age 28 name kelvin age 25 name micheal age 22 我知道字段现在将具有索引 键 0 1 2 3

随机推荐

  • 找出哪些超类包含属性或方法实现

    如果我已经正确记录了方法或属性 我可以通过键入找到它的定义位置help class method 这会告诉我Help for class method is inherited from superclass otherclass 通常 这
  • 为什么 Android 中的 Loader 很糟糕

    我读过几条推文和评论 说装载机很糟糕 使用它们是 朝自己脸上开枪 的好方法 还普通人宣布他将停止他的图书馆的任何工作 Loaderex 平民还说 加载器是一个失败的抽象 我显然在这里遗漏了一些东西 我想了解更多信息并了解为什么装载机不好以及
  • 如何删除具有相同imageID的多个docker镜像?

    我创建了一个本地 Docker 注册表 https docs docker com registry deploying 然后从 docker hub 中提取一些 docker 镜像 然后将它们推送到本地注册表 现在我想删除我的本地图像 但
  • QT - 将按钮放在右下角

    我正在尝试放置一组按钮 以便它们固定在屏幕的右下角 我的问题是 每当我调整屏幕大小时 按钮都不会固定在右下角 而是保留在当前位置 我在水平布局中放置了两个按钮 然后 我将此布局放置在网格布局内 其中包含水平和垂直间隔符 我已将网格布局的la
  • AVAudioCompressedBuffer 到 UInt8 数组,反之亦然

    我想知道如何获取 AVAudioCompressedBuffer 的字节 然后 从字节重建 AVAudioCompressedBuffer 下面的代码采用 AVAudioPCMBuffer 使用 AVAudioConverter 将其压缩为
  • 了解 Firebug 探查器输出

    我一直在尝试使用 Firebug 的分析器来更好地理解我们所看到的一些 JavaScript 性能问题的根源 但我对输出有点困惑 当我分析一些代码时 分析器会报告配置文件 464 323 毫秒 26 412 次调用 我怀疑 464 323
  • 操作员 '??'不能应用于子类类型的操作数

    以下代码给出了 Main 函数第二行标题中的错误 public class P public class B P public class A P void Main P p GetA GetB public A GetA return n
  • iOS 11 AVPlayer 在 KVO 时崩溃

    我在使用时遇到了奇怪的崩溃AVPlayer播放远程视频 从崩溃登录Fabric 应用程序在系统线程上崩溃 com apple avfoundation playerlayer configuration 崩溃日志如下 Crashed com
  • perl:一个父母,许多孩子 - 父母中的单管道阅读器?

    在perl中是否可以以这样一种方式建立一个管道 即父管道只有一个READER管道 并且许多子管道在它们启动 退出时写入它 典型的食谱代码是 usr bin perl w pipe2 use pipe and fork so child ca
  • 检索 iOS 中所有联系人的电话号码

    到目前为止 我看到了如果我显示一个选择器 则可以获取多个电话号码的方法 以便用户可以选择人员 然后获取电话号码 我想要的是检索所有联系人的号码 有可能吗 试试这个它适用于iOS 6 以及 iOS 5 0 或更早版本 示例项目演示 https
  • 如何在Vim终端模式下复制粘贴?

    我经常想从 terminal窗口到普通文本缓冲区 此刻我exitshell 会话并从历史记录中复制 一定有更好的方法 Copy To copy from a terminal window press CTRL W N This is a
  • 提交表单时Spring绑定异常

    卡住了 不知道为什么 Spring Form 在 get 中预填充时无法成功提交 给出绑定问题 Request call loadForm 但在方法中填充时工作正常setupFormObject with ModelAttribute注释标
  • wkhtmltopdf 和基于表单的身份验证

    我有一个使用基于表单的身份验证的应用程序 我正在尝试获取应用程序中页面的副本并使用 wkhtmltopdf 将其保存为 PDF wkhtmltopdf 已安装并且工作正常 我可以从应用程序内成功调用它来生成另一个网站的 PDF 无需身份验证
  • Rails has_many 自引用

    我的帐户模型如下 简化 class Account lt ActiveRecord Base attr accessible account number display name master account id has many ch
  • 如何在python中更改iBus输入法?

    我正在编写一个 Vim 插件来设置 iBus 引擎和输入法 到目前为止 我可以使用以下代码更改引擎 function im setEngine name python lt lt EOF try import ibus vim bus ib
  • .Net 3.5 日志记录

    我是一个相当新的 C 程序员 我想知道是否有人可以向我提供有关如何在现有解决方案中使用日志框架的更多信息 如果您这么称呼它 我正在尝试记录我正在做的项目 我想知道有哪些好的和简单的框架以及它们应该如何实现 我应该研究一个特定的主题吗 我还没
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • 如何阻止 Maven 尝试访问 http://repo.maven.apache.org?

    开发机无法上网 大约60秒超时 当我尝试构建时 我看到 Downloading http repo maven apache org maven2 com google gsa connector 2 8 0 gsa connector 2
  • Cloud Functions Firebase v1.0 不会初始化

    随着 Firebase 云功能的最新更新 我在初始化应用程序以及数据库引用时遇到错误 第一个错误 以下应该基于 Firebase 函数 v1 0 文档和示例进行工作 https github com firebase Friendlycha
  • 确定合时坐标

    今天金星的下合 虽然由于太阳偏北而仍然可以观测到 激发了 pyEphem 的以下研究 确定金星与太阳下合的日期 pyEphem 中是否有金星和太阳之间 劣 合相的搜索功能 确定该日期金星的黄道纬度 那应该很容易 对过去 100 年和未来 1