pytroll / pyorbital

Orbital and astronomy computations in python

Home Page:http://pyorbital.readthedocs.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pyorbital fails to find TLE For some satellites

wevonosky opened this issue · comments

Code Sample, a minimal, complete, and verifiable piece of code

from pyorbital.orbital import Orbital
sat_names = ['WORLDVIEW-1 (WV-1)', 'WORLDVIEW-2 (WV-2)', 'WORLDVIEW-3 (WV-3)',
             'SKYSAT-1', 'SKYSAT-2', 'SKYSAT-C1', 'SKYSAT-C2', 'SKYSAT-C3', 
             'SKYSAT-C4', 'SKYSAT-C5', 'SKYSAT-C6', 'SKYSAT-C7', 'SKYSAT-C8', 
             'SKYSAT-C9', 'SKYSAT-C10', 'SKYSAT-C11', 'SKYSAT-C12', 
             'SKYSAT-C13', 'GEOEYE 1', 'PATHFINDER 1', 'GLOBAL-1', 
             'BLACKSKY GLOBAL 2', 'GLOBAL-3', 'GLOBAL-4', 'PLEIADES 1A', 
             'PLEIADES 1B', 'DEIMOS-2', 'KOMPSAT-3A']

for sat in sat_names:
    orb = Orbital(sat)
    print (sat + ' Worked!')

Problem description

Pyorbital is having no problem finding the TLE for most of the satellites in the above list, but fails to find others. For example, it finds the TLE for all the SKYSAT-X satellites but fails for SKYSAT-C12 and SKYSAT-C13. I checked the names against the catalog in CelesTrak (https://celestrak.com/NORAD/elements/active.php) and verified the satellites are still in orbit
(https://www.n2yo.com/database/?name=SKYSAT+C12#results)

It also fails for all of the GLOBAL satellites.

Expected Output

None

Actual Result, Traceback if applicable

KeyError: "Found no TLE entry for 'GLOBAL-4'"

Versions of Python, package at hand and relevant dependencies

Using Python 3.6

Seems some satellites included by CelesTrak are not categorized into the eight TLE_URLS checked by PyOrbital. The URL's checked by PyOrbital are:

TLE_URLS = ('http://celestrak.com/NORAD/elements/weather.txt',
            'http://celestrak.com/NORAD/elements/resource.txt',
            'https://www.celestrak.com/NORAD/elements/cubesat.txt',
            'http://celestrak.com/NORAD/elements/stations.txt',
            'https://www.celestrak.com/NORAD/elements/sarsat.txt',
            'https://www.celestrak.com/NORAD/elements/noaa.txt',
            'https://www.celestrak.com/NORAD/elements/amateur.txt',
            'https://www.celestrak.com/NORAD/elements/engineering.txt')

found at line 37 of tlefile.py

The satellites I mentioned that are not found by Pyorbital are found if you include the following CelesTrak link:

http://www.celestrak.com/NORAD/elements/active.txt

This link has a lot of redundant satellites that are found in the previous 8 links, but adding it may help with finding other satellites not categorized that are relevant to Earth science and imaging.

Edit: I modified TLE_URLS in my local copy of pyorbital with the above mentioned URL and now every satellite in my list returns a TLE.

@wevonosky Thanks a lot for bringing this issue to our attention. I have nothing against adding this file to the urls, so if you have the possibility send us a pull request. That would be highly appreciated !

@mraspaud I am pretty unfamiliar with pull requests so forgive me if I am missing something silly.

I created a clone of the repo on my local machine, then created a new branch and checked out onto it. Then I tried : git push origin add_tle_urls
and got a permission error.

I was then going to make my changes, commit and push them to the branch and then create a pull request. Is there another way of doing this that I am missing?

@wevonosky the first thing you need to do before cloning is to create a fork of the pytroll/pyorbital repo. Then you have to clone your repo (not the pytroll one) and work on that. Then pushing should be working better.
Maybe the following link could help ? https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork

Thanks @mraspaud

The pull request is in!