tle_fetcher.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/usr/bin/python3
  2. from tle_database import TleDatabase
  3. from tle_reader import TleReader
  4. import logging
  5. CELESTRAK_ROOT = 'https://www.celestrak.com/NORAD/elements/'
  6. groups = [
  7. 'weather',
  8. 'noaa',
  9. 'goes',
  10. 'resource',
  11. 'sarsat',
  12. 'dmc',
  13. 'tdrss',
  14. 'argos',
  15. 'planet',
  16. 'spire',
  17. 'geo',
  18. 'intelsat',
  19. 'ses',
  20. 'iridium',
  21. 'iridium-NEXT',
  22. 'starlink',
  23. 'oneweb',
  24. 'orbcomm',
  25. 'globalstar',
  26. 'swarm',
  27. 'amateur',
  28. 'x-comm',
  29. 'other-comm',
  30. 'satnogs',
  31. 'gorizont',
  32. 'raduga',
  33. 'molniya',
  34. 'gnss',
  35. 'gps-ops',
  36. 'glo-ops',
  37. 'galileo',
  38. 'beidou',
  39. 'sbas',
  40. 'nnss',
  41. 'musson',
  42. 'science',
  43. 'geodetic',
  44. 'engineering',
  45. 'education',
  46. 'military',
  47. 'radar',
  48. 'cubesat',
  49. 'other'
  50. ]
  51. log = logging.getLogger('tle_fetcher')
  52. log.setLevel(logging.INFO)
  53. time_string = "%m/%d/%Y %H:%M:%S %Z"
  54. formatter = logging.Formatter(
  55. fmt='{asctime} [{module}] {message}',
  56. datefmt=time_string,
  57. style='{')
  58. f_handler = logging.FileHandler('/home/bryon/dev/tle_fetcher/tle_fetcher.log', mode='a')
  59. f_handler.setLevel(logging.INFO)
  60. f_handler.setFormatter(formatter)
  61. log.addHandler(f_handler)
  62. c_handler = logging.StreamHandler()
  63. c_handler.setLevel(logging.INFO)
  64. c_handler.setFormatter(formatter)
  65. log.addHandler(c_handler)
  66. log.info("TLE fetcher started")
  67. def main(tle_rd: TleReader, tle_db: TleDatabase) -> None:
  68. tles = tle_rd.get_tles()
  69. tle_db.connect_db()
  70. tle_db.delete_rows()
  71. tle_db.update_tles(tles)
  72. for group in groups:
  73. gp = tle_rd.get_group(group)
  74. tle_db.update_sat_group(gp)
  75. tle_db.close_db()
  76. log.info("TLE fetcher completed")
  77. if __name__ == "__main__":
  78. main(TleReader(CELESTRAK_ROOT), TleDatabase())