tle_fetcher.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/usr/bin/python3
  2. from modules.tle_fetcher_logging import TleFetcherLogger
  3. from modules.tle_database import TleDatabase
  4. from modules.tle_reader import TleReader
  5. CELESTRAK_ROOT = "https://www.celestrak.com/NORAD/elements/"
  6. groups = [
  7. "stations",
  8. "weather",
  9. "noaa",
  10. "goes",
  11. "resource",
  12. "sarsat",
  13. "dmc",
  14. "tdrss",
  15. "argos",
  16. "planet",
  17. "spire",
  18. "geo",
  19. "intelsat",
  20. "ses",
  21. "iridium",
  22. "iridium-NEXT",
  23. "starlink",
  24. "oneweb",
  25. "orbcomm",
  26. "globalstar",
  27. "swarm",
  28. "amateur",
  29. "x-comm",
  30. "other-comm",
  31. "satnogs",
  32. "gorizont",
  33. "raduga",
  34. "molniya",
  35. "gnss",
  36. "gps-ops",
  37. "glo-ops",
  38. "galileo",
  39. "beidou",
  40. "sbas",
  41. "nnss",
  42. "musson",
  43. "science",
  44. "geodetic",
  45. "engineering",
  46. "education",
  47. "military",
  48. "radar",
  49. "cubesat",
  50. "other",
  51. ]
  52. log = TleFetcherLogger.get_logger()
  53. log.info("TLE fetcher started")
  54. def main(tle_rd: TleReader, tle_db: TleDatabase) -> None:
  55. tles = tle_rd.get_tles()
  56. tle_db.connect_db()
  57. tle_db.delete_rows()
  58. tle_db.update_tles(tles)
  59. for group in groups:
  60. grp = tle_rd.get_group(group)
  61. tle_db.update_sat_group(grp)
  62. tle_db.close_db()
  63. log.info("TLE fetcher completed")
  64. if __name__ == "__main__":
  65. main(TleReader(CELESTRAK_ROOT), TleDatabase())