Metadata-Version: 2.4
Name: tle-tailor
Version: 0.1.0rc1
Summary: Generate SGP4-compatible TLEs from ephemeris and propagated state vectors
Author: Dan CaJacob
License-Expression: MIT
License-File: LICENSE
License-File: NOTICE
License-File: licenses/python-sgp4-MIT.txt
Requires-Dist: gmatpy==0.2.1
Requires-Dist: matplotlib>=3.6.1
Requires-Dist: numpy>=1.23.4
Requires-Dist: scipy>=1.9.3
Requires-Dist: sgp4>=2.21
Requires-Dist: skyfield>=1.45
Requires-Dist: jax>=0.3.23
Requires-Dist: jaxlib>=0.3.22
Requires-Dist: pandas>=1.5.1
Requires-Dist: pyarrow>=11.0.0
Requires-Dist: astropy>=5.1.1
Requires-Dist: spacetrack>=0.16.0
Requires-Dist: pytz>=2023.3
Requires-Dist: python-dotenv>=1.1.0,<2
Requires-Dist: gmatpy==0.2.1 ; extra == 'gmat'
Requires-Python: >=3.14, <3.15
Provides-Extra: gmat
Description-Content-Type: text/markdown

# TLE Tailor

Turn a predicted deployment orbit or supplied ephemeris into a **Two-Line Element set (TLE)** for SGP4 tracking software.

For a launch-provider orbit, TLE Tailor uses the bundled **gmatpy** numerical propagator to generate a reference trajectory, then fits an **SGP4** model to it. You do not need to build or install GMAT separately.

## Get your first TLE

With [uv](https://docs.astral.sh/uv/getting-started/installation/) installed, download and unpack the [v0.1.0rc1 source archive](https://github.com/dcajacob/tle-tailor/archive/refs/tags/v0.1.0rc1.zip) from the [GitHub prerelease](https://github.com/dcajacob/tle-tailor/releases/tag/v0.1.0rc1), open that project folder and run:

```bash
uv run tle-tailor example --output deployment.tle
```

This offline demonstration uses editable **osculating Keplerian elements**, a declared UTC epoch and EarthMJ2000Eq frame. It fits a 12,000-second arc, prints position/velocity fit errors, and saves two TLE lines. Existing output files are never overwritten. The demo values are synthetic; use the [short quickstart](QUICKSTART.md) to substitute your provider's inputs.

The supported prerelease target is standard **CPython 3.14 on Linux x86_64**, with a compatible gmatpy wheel. This is a release candidate; see [installation and platform support](docs/installation.md) for the [GitHub wheel](https://github.com/dcajacob/tle-tailor/releases/download/v0.1.0rc1/tle_tailor-0.1.0rc1-py3-none-any.whl) and source options. TLE Tailor 0.1.0rc1 is distributed through GitHub, not PyPI.

## Use your own inputs

- **Deployment prediction:** check the provider's epoch/time scale, reference frame, units and element/anomaly conventions. See [deployment inputs](docs/deployment.md). Osculating elements are not TLE mean elements.
- **Already have ephemerides?** [Fit them directly](docs/ephemerides.md), without unnecessary propagation.
- **Prefer notebooks?** [Examples](docs/workflows.md) separates Python implementations in `examples/scripts` from notebook companions in `examples/notebooks`, inside `tle_tailor/`.
- **Optional online comparison:** [Space-Track](docs/spacetrack.md) uses a hidden password prompt and does not save credentials by default.

A prelaunch TLE describes your supplied prediction and model assumptions. Fit residuals are not a guarantee of the actual or future orbit. Choose an appropriate interval, coordinate placeholder identifiers with your tracking partner, and update the TLE when measured orbit data become available. See [fit errors and limitations](docs/accuracy.md).

Worked guides: [deployment prediction](docs/walkthrough-deployment.md), [GPS ephemeris](docs/walkthrough-gps.md), and [optional NovAtel EDIE logs](docs/walkthrough-edie.md).

## More detail

[Theory](docs/theory.md) · [Measured validation results](docs/validation-results.md) · [Fitting performance](docs/performance.md) · [Propagation API and frames](docs/propagators.md) · [Advanced external GMAT](docs/local_gmat.md) · [Changes](docs/release-notes.md)

The methods build on David Vallado and Paul Crawford's [SGP4 Orbit Determination](https://celestrak.org/publications/AIAA/2008-6770/AIAA-2008-6770.pdf). Project and upstream notices are in [LICENSE](LICENSE) and [NOTICE](NOTICE).
