首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算一个地理区域内的卫星通过率?

问如何计算一个地理区域内的卫星通过率?
EN

Stack Overflow用户
提问于 2015-06-18 21:48:52
回答 1查看 57关注 0票数 0

我有一些卫星数据,它本质上是在给定时间绕地球运行的卫星的地理位置。这是在SQLite DB中以纬度、经度和统一时间保存的数据。它的检索方式如下:

代码语言:javascript
复制
latitudes = [] #Long list of latitudes
longitudes = [] #Long list of longitudes
unixtimes = [] #Long list of corresponding unixtimes

因此,我有兴趣区分卫星每次经过相当大的地理区域时的纬度/经度记录(每次经过)。然而,我不确定我会怎么做。

现在我已经手动地,通过目测位置的图,在那个区域找到了卫星的第一个“出现”,然后我以同样的方式找到了下一个出现的地方。经过的时间就是这些事件之间的差异。然而,这个经过的时间会随着时间的推移而变化,所以这种方法并不是那么准确。另一个问题是,它依赖于地理位置,如果我想要第一次通过的时间,以及任何其他地理位置的通过时间,我必须再次手动检查。我已经包含了我的代码。请注意,seq函数只是我从中检索到的一个函数,因此它使我能够迭代非整数增量。

代码语言:javascript
复制
def seq(start, end, step):
    assert(step != 0)
    sample_count = abs(end - start) / step
    return itertools.islice(itertools.count(start, step), sample_count)

gridsize = 5 #Unit: degrees
upperleftlong = #Upper corner of geographical area
upperleftlat = #Upper corner of geographical area
lowerrightlong = #Lower corner of geographical area
lowerrightlat = #Lower corner of geographical area
passrate = 5500 #Time between passings in seconds
start = 1498902400 #Time of first passing
end = 1498905700 #Approximately passing length
numberofpassings = 600 #Number of passings that should be checked for
for p in range(0,numberofpassings+1):
    start = 1398903400+passrate*p
    end =  1398905400+passrate*p
    for i in seq(lowerrightlat, upperleftlat+gridsize, gridsize):
        for j in seq(upperleftlong, lowerrightlong+gridsize, gridsize):
            positions = getPositionsFromDB(j,i,start,end,gridsize,databasepath, con)

那么,有没有人有一个聪明的方法来表示传球速度,传球时间,并发现属于每个传球的地理位置?

我正在使用Python和SQLite。

EN

回答 1

Stack Overflow用户

发布于 2015-06-18 22:58:46

从你的卫星周期(5500秒)来看,我相当确定你的卫星就是空间站。由于寿命较短,很少有其他卫星在这种低空(370公里)活动。

Heavens-above site有许多工具可以预测空间站(和其他空间站)的视线。Spot-the-station是专门的,并提供预测。Satellites calculations on-line是一个很大的工具集合,它也可以提供帮助。

如果对这些程序的工作原理感兴趣,可以通过源代码获得一个开放源码项目Predict。

当然,Wikipedia必须存在,有一个应用程序列表,以及对许多带有预测工具的库的引用。

注意:整数增量是可以的,但是如果你使用numpy.arange,numpy可以给你浮点增量。这要灵活得多,您可以使用物理的、未缩放的值,而不会有遇到整数溢出的风险。

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

https://stackoverflow.com/questions/30917236

复制
相关文章

相似问题

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