2017-10-05 3 views
0

Ich versuche, auf die Daten in einer TLE-Datei für die Raumstation in Python zuzugreifen. Es hat jedoch Probleme beim Einlesen der Daten, da TLEs sowohl Zahlen als auch Buchstaben haben. Ich brauche keinen der Buchstaben und möchte, dass er streng numerisch ist.np.loadtxt() So lesen Sie eine TLE-Satellitentxt-Datei in Python

Code:

import numpy as np 

fname = 'zarya.txt' 
a = np.loadtxt(fname) 

yearDigit = a[0,3] 
print(yearDigit) 
#year = a[:,] 
#dayOfYear = a[:,3] 
#fractionDay = a[:,7] 

Fehler: Valueerror: invalid wörtliche für Schwimmer(): 25544U

Hier sind die ersten beiden Zeilen von Daten in meiner Datei:

1 25544U 98067A 98324.28472222 -.00003657 11563-4 00000+0 0 10

2 25544 51.5908 168.3788 0125362 86.4185 359.7454 16.05064833 05

Gibt es auch eine Möglichkeit, nur auf die ersten beiden Ziffern (98) von [0,3] = 98324.28472222 zuzugreifen?

+0

Es ist mir unklar, was Sie erwarten. Was genau sollte "a" sein? Ignorieren Sie einfach alle Elemente mit einer Zahl in ihnen? –

+0

Ich möchte die Buchstaben ignorieren und verwenden Sie einfach die Zahlen – Rose

+0

So dass ein [0 ,:] = 1 25544 98067 98324.28472222 -.00003657 11563-4 00000 + 0 0 10 – Rose

Antwort

0

Wenn Sie keinen der TLE-Werte mit Buchstaben benötigen, funktioniert diese Lösung für Sie.

import numpy as np 

filename = 'zarya2000data.txt' 
a = np.genfromtxt(filename) 

Alle Werte in der TLE mit Buchstaben, wie 25544U, wird als nan zeigen, wenn Sie die Daten drucken. Die Werte, die nur Zahlen sind, sind in Ordnung und wie üblich zugänglich.