Python skyfield FileNotFoundError: [Errno 2] No such file or directory: 'de413.bsp' beheben

English Deutsch

Problem:

Beim Versuch, die Python-Bibliothek skyfield zu verwenden, sehen Sie eine Ausnahme wie

skyfield_de413_error.txt
Input In [2], in <cell line: 11>()
      8 from calendar import monthrange
     10 ts = api.load.timescale()
---> 11 ephem = api.load_file('de413.bsp')

File /usr/local/lib/python3.10/dist-packages/skyfield/iokit.py:412, in load_file(path)
    410 base, ext = os.path.splitext(path)
    411 if ext == '.bsp':
--> 412     return SpiceKernel(path)
    413 raise ValueError('unrecognized file extension: {}'.format(path))

File /usr/local/lib/python3.10/dist-packages/skyfield/jpllib.py:71, in SpiceKernel.__init__(self, path)
     69 self.path = path
     70 self.filename = os.path.basename(path)
---> 71 self.spk = SPK.open(path)
     72 self.segments = [SPICESegment(self, s) for s in self.spk.segments]
     73 self.codes = set(s.center for s in self.segments).union(
     74                  s.target for s in self.segments)

File /usr/local/lib/python3.10/dist-packages/jplephem/spk.py:49, in SPK.open(cls, path)
     46 @classmethod
     47 def open(cls, path):
     48     """Öffnet die Datei unter `path` und gibt eine SPK-Instanz zurück."""
---> 49     return cls(DAF(open(path, 'rb')))

FileNotFoundError: [Errno 2] No such file or directory: 'de413.bsp'

Lösung

Schauen Sie sich die api.load(...)-Zeile in Ihrem Code an:

example_load_de413.py
ephem = api.load_file('de413.bsp')

Er versucht, die Daten aus der Datei de413.bsp im aktuellen Verzeichnis zu laden. Diese Datei enthält Positionsdaten von Objekten am Himmel und Sie müssen diese Datei manuell herunterladen.

Sie können die Datei von der NASA herunterladen. Achten Sie nur darauf, sie entweder im richtigen Verzeichnis abzulegen oder den Pfad im api.load()-Aufruf so anzupassen, dass er auf die Datei verweist.

URL zum Herunterladen der Datei:

de413.bsp_url.txt
https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de413.bsp

Meine bevorzugte Methode zum Herunterladen ist die Verwendung von wget:

download_de413_command.sh
wget https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de413.bsp

Dieser Befehl platziert die Datei im aktuellen Verzeichnis.


Check out similar posts by category: Python, Skyfield