{"id":24556,"library":"satkit","title":"SatKit","description":"SatKit is a satellite orbital dynamics toolkit for Python, providing tools for orbit propagation, coordinate transformations, TLE handling, and more. Current version is 0.16.2, with a relatively stable release cadence. It requires Python >=3.10.","status":"active","version":"0.16.2","language":"python","source_language":"en","source_url":"https://github.com/egemenimre/satkit","tags":["satellite","orbital-dynamics","orbit-propagation","tle","astrodynamics"],"install":[{"cmd":"pip install satkit","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Array operations and numerical computations","package":"numpy","optional":false},{"reason":"Optimization and interpolation","package":"scipy","optional":false}],"imports":[{"note":"Satellite is a top-level class in satkit module, not a submodule","wrong":"import satkit; satkit.Satellite","symbol":"Satellite","correct":"from satkit import Satellite"},{"note":"tle is a submodule containing TLE-related classes; direct import of TLE class may not work","wrong":"from satkit.tle import TLE","symbol":"tle","correct":"from satkit import tle"}],"quickstart":{"code":"from satkit import Satellite, tle\n\n# Example: propagate a satellite from TLE\nline1 = '1 25544U 98067A   24001.00000000  .00000000  00000-0  00000-0 0  9999'\nline2 = '2 25544  51.6428  45.1234 0001234 100.0000 200.0000 15.50000000350000'\nsat = tle.TLE(line1, line2).to_satellite()\n# Propagate to a specific time (fractional day of year)\nstate = sat.propagate(245.0)\nprint(state.position, state.velocity)","lang":"python","description":"Creates a satellite from TLE and propagates to a time."},"warnings":[{"fix":"Use state.position and state.velocity instead of state[0] and state[1].","message":"In v0.16, the 'propagate' method now returns a namedtuple instead of a tuple. Access fields by name (.position, .velocity) rather than indexing [0], [1].","severity":"breaking","affected_versions":">=0.16.0"},{"fix":"Ensure TLE lines are exactly 69 characters, including trailing spaces if needed.","message":"TLE lines must be exactly 69 characters long (with newline stripped). Missing or extra spaces cause parsing errors.","severity":"gotcha","affected_versions":"all"},{"fix":"Replace with the new pattern: sat = TLE(line1, line2).to_satellite(); state = sat.propagate(time).","message":"The function 'satkit.tools.propagate_tle' is deprecated in v0.16 and will be removed in v0.17. Use 'TLE.to_satellite().propagate()' instead.","severity":"deprecated","affected_versions":">=0.16.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install satkit' in the correct environment.","cause":"SatKit is not installed yet, or installed in a different Python environment.","error":"ModuleNotFoundError: No module named 'satkit'"},{"fix":"Check that each TLE line is exactly 69 characters; add trailing spaces if necessary.","cause":"TLE line is shorter or longer than 69 characters (including padding).","error":"ValueError: TLE line must be 69 characters long"},{"fix":"Update code to use state.position and state.velocity instead of index access.","cause":"Using old code that indexed the return of propagate(), but satkit v0.16 returns a namedtuple.","error":"AttributeError: 'tuple' object has no attribute 'position'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}