我有一些衛星數據,基本上是一個衛星的地理位置,它在給定的時間繞地球轉。這是在SQLite數據庫中以緯度,經度和unixtime保存的數據。這是檢索如下:如何在一個地理區域找到衛星合格率?
latitudes = [] #Long list of latitudes
longitudes = [] #Long list of longitudes
unixtimes = [] #Long list of corresponding unixtimes
所以,我很感興趣區分緯度/經度記錄每個衛星是在相當大的地理區域(每個傳遞)時間。但我不確定我會如何做到這一點。
現在我手動地通過視覺檢查位置圖,發現衛星在該區域的第一個「發生」,然後我以相同的方式發現了下一個事件。時間流逝是每個事件之間的差異。但是,這種傳遞時間隨時間而變化,所以這種方法隨着時間的推移並不準確。另一個問題是它取決於地理位置,如果我想要第一次通過的時間,以及任何其他地理位置的通過時間,我必須再次手動檢查。我已經包含了我的代碼。請注意0函數只是我從SO中檢索到的函數,它使我能夠遍歷非整數增量。
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。