【问题标题】:Detection of satellites in the telescope frame在望远镜框架中检测卫星
【发布时间】:2020-12-27 07:53:10
【问题描述】:

我有望远镜图像中心的天体坐标、望远镜的视野(以秒为单位)、拍照的开始时间(全天)和曝光时间(以秒为单位)。我想知道有多少 Starlink 卫星可以进入图像帧。 我无法弄清楚如何正确计算。我不太了解天体坐标。 我尝试使用 Skyfield api、地心坐标并假设望远镜指向上方。 但它太长了,无法正常工作...

这是我迄今为止尝试做的。

import skyfield.timelib
from skyfield.api import Topos, load
from datetime import timedelta

def satnum(start_time, exposition, eq_cords, field_of_view):
    """Counts number of satellites

    Arguments
    ---------
    :param start_time: skyfield.timelib.Time object
    :param exposition: int
    :param eq_cords: list of floats
    :param field_of_view: int

    Returns
    -------
    :return: int


    Examples
    --------
    import satnum
    start_time = [2020, 12, 14, 18, 00, 00]
    exposition = 15
    eq_cords = [4741.1, -2257.7, 4505.7]
    field_of_view = 45
    satnum.satnum(start_time, exposition, eq_cords, field_of_view)
    0
    """

    url = "https://celestrak.com/NORAD/elements/starlink.txt"
    satellites = load.tle_file(url)
    sat_counter = 0
    ts = load.timescale()
    eq_cords = Topos(*eq_cords)

    for satellite in satellites:

        difference = satellite - eq_cords

        for n in range(exposition):
            time = ts.utc(start_time.utc_datetime() + timedelta(seconds=n))
            topocentric = difference.at(time)
            altaz = topocentric.altaz()
            if altaz[0].degrees >= 90 - (field_of_view/2)/60:
                sat_counter += 1
                break

    return sat_counter

如有任何想法,我将不胜感激。

【问题讨论】:

  • 我投票结束这个问题,因为这不是一个编程问题,而是一个关于天文学、地球物理学和/或基本天体数学的问题。似乎每当 OP 学习如何在纸上完成所需的任务时,通过 Python 脚本自动化代码将是一件小事。这使得这不是一个编程问题。
  • 嗨奥利弗,我很欣赏你的工作。非常好。我没有确切的答案,但首先我建议您尝试手动操作。否则,请分享 2-3 个示例输入和预期输出。
  • 嗨,奥利弗!碰巧在你问这个问题后的几个小时内,我尝试向 Skyfield 的 GitHub 存储库添加一个新的“讨论”论坛。它可能更适合像这样一个广泛的问题,它不是关于任何一个特定的编程或天文学概念,而是更多关于“我如何完成一项大任务,我需要什么概念工具?”:@987654321 @

标签: python astropy astronomy satellite skyfield


【解决方案1】:

一个简单的解决方案(如果我正确理解您的目标)是简单地计算星链卫星的表面数密度,然后乘以望远镜的面积,这将给出您期望的卫星数量随时在视野中寻找。然后,在该视场中找到卫星的概率将由泊松分布确定(假设卫星的位置和望远镜的指向是完全随机的,这并不完全正确,但会给出一个很好的顺序量级估计)。

所以,如果“#”是星链卫星的总数,“A”是望远镜视野的面积(以球面度为单位),天空的总面积是 4*pi 球面度:

随机指向的星链平均数“n”:

n = A * #/(4*pi)

在给定指向中找到“k”颗卫星的概率“P”:

P(k) = n^k * e^-n / k!

【讨论】:

    猜你喜欢
    • 2014-09-24
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多