{"id":34061088,"url":"https://github.com/ut-astria/orbdetpy","last_synced_at":"2026-04-05T11:32:11.311Z","repository":{"id":35063895,"uuid":"143186678","full_name":"ut-astria/orbdetpy","owner":"ut-astria","description":"Orbit Determination with Python","archived":false,"fork":false,"pushed_at":"2023-07-05T20:53:31.000Z","size":117469,"stargazers_count":123,"open_issues_count":7,"forks_count":39,"subscribers_count":12,"default_branch":"develop","last_synced_at":"2025-12-16T01:33:21.149Z","etag":null,"topics":["astrodynamics","celestial-mechanics","estimation","kalman-estimator","kalman-filter","orbit-determination","orbital-mechanics","orekit","python","satellite-prediction","satellite-tracking","tles"],"latest_commit_sha":null,"homepage":"https://ut-astria.github.io/orbdetpy","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ut-astria.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-01T17:19:12.000Z","updated_at":"2025-08-18T12:39:48.000Z","dependencies_parsed_at":"2024-06-21T20:23:17.358Z","dependency_job_id":"d4e3a45c-f6e6-447d-a7a2-1c36966b45f4","html_url":"https://github.com/ut-astria/orbdetpy","commit_stats":{"total_commits":207,"total_committers":7,"mean_commits":"29.571428571428573","dds":"0.16425120772946855","last_synced_commit":"de163683b8807ea3de755df49954702e07dbacfe"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/ut-astria/orbdetpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut-astria%2Forbdetpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut-astria%2Forbdetpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut-astria%2Forbdetpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut-astria%2Forbdetpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ut-astria","download_url":"https://codeload.github.com/ut-astria/orbdetpy/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut-astria%2Forbdetpy/sbom","scorecard":{"id":912941,"data":{"date":"2025-08-11","repo":{"name":"github.com/ut-astria/orbdetpy","commit":"114067883eb7d5164593d68e5823a739e4fbba73"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.3,"checks":[{"name":"Code-Review","score":1,"reason":"Found 2/20 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: pipCommand not pinned by hash: Dockerfile:14-18","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 2.1.0 not signed: https://api.github.com/repos/ut-astria/orbdetpy/releases/63180446","Warn: release artifact 2.0.7 not signed: https://api.github.com/repos/ut-astria/orbdetpy/releases/51108221","Warn: release artifact 2.0.6 not signed: https://api.github.com/repos/ut-astria/orbdetpy/releases/40541908","Warn: release artifact 2.0.5 not signed: https://api.github.com/repos/ut-astria/orbdetpy/releases/38807910","Warn: release artifact 2.0.4 not signed: https://api.github.com/repos/ut-astria/orbdetpy/releases/35255506","Warn: release artifact 2.1.0 does not have provenance: https://api.github.com/repos/ut-astria/orbdetpy/releases/63180446","Warn: release artifact 2.0.7 does not have provenance: https://api.github.com/repos/ut-astria/orbdetpy/releases/51108221","Warn: release artifact 2.0.6 does not have provenance: https://api.github.com/repos/ut-astria/orbdetpy/releases/40541908","Warn: release artifact 2.0.5 does not have provenance: https://api.github.com/repos/ut-astria/orbdetpy/releases/38807910","Warn: release artifact 2.0.4 does not have provenance: https://api.github.com/repos/ut-astria/orbdetpy/releases/35255506"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during GetBranch(master): error during branchesHandler.query: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-496j-2rq6-j6cc","Warn: Project is vulnerable to: GHSA-8qvm-5x2c-j2w7","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T19:55:13.532Z","repository_id":35063895,"created_at":"2025-08-24T19:55:13.533Z","updated_at":"2025-08-24T19:55:13.533Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31434624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T08:13:15.228Z","status":"ssl_error","status_checked_at":"2026-04-05T08:13:11.839Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astrodynamics","celestial-mechanics","estimation","kalman-estimator","kalman-filter","orbit-determination","orbital-mechanics","orekit","python","satellite-prediction","satellite-tracking","tles"],"created_at":"2025-12-14T04:36:24.774Z","updated_at":"2026-04-05T11:32:11.303Z","avatar_url":"https://github.com/ut-astria.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"**orbdetpy** is a Python orbit determination library.\n\n# Features\n\nDynamics in orbdetpy can be configured with:\n\n1. EGM96 gravity field up to degree and order 360.\n2. Earth solid tides due to the influence of the Sun and Moon.\n3. FES 2004 ocean tide model up to degree and order 100.\n4. NRL MSISE-00 and exponential atmospheric drag models.\n5. Solar radiation pressure.\n6. Third body perturbations from the Sun and Moon.\n7. Satellite box-wing models and maneuvers.\n\nRange, range-rate, angles, and inertial state measurements are supported. Filtering can be done with an EKF, UKF, or Batch Least Squares. Dynamic Model Compensation (DMC) can be used to estimate unmodeled accelerations.\n\n# Installation\n\nIf you have docker installed and wish to use a pre-built environment refer to the [Docker](#docker) section in this README.\n\n1. Install Java SE 11 (11.0.10) from \u003chttps://www.oracle.com/javadownload\u003e. Set the `JAVA_HOME` environment variable to the Java installation folder. The `java` executable must be added to the system path.\n\n2. Install Python 3.8.0 or higher and run `pip install orbdetpy` to install orbdetpy and other package dependencies.\n\n3. Update astrodynamics data under `orbdetpy/orekit-data` periodically by running the following. You will need `root` privileges on some systems.\n\n   `python -c \"from orbdetpy.astro_data import update_data; update_data();\"`\n\n   You can instead provide a fully qualified path in the `ORBDETPY_DATA_DIR` environment variable to use a different folder for data files and to avoid issues with folder write permissions.\n\n# Development\n\n1. Download and extract \u003chttps://github.com/ut-astria/orbdetpy/releases/download/2.1.0/orekit-data.tar.gz\u003e under the `orbdetpy/` sub-folder.\n\n2. Developers will need Apache Maven 3+ to build the Java library. Build using the following from the `orbdetpy/` sub-folder, where `os_cpu_type` is `linux-x86_64`, `linux-x86_32`, `windows-x86_64`, `windows-x86_32`, `osx-x86_64`, or `osx-x86_32` depending on your CPU and OS:\n\n   `mvn -e -Dos.detected.classifier=os_cpu_type package`\n\n   The command-line is simpler on Intel/AMD 64-bit Linux:\n\n   `mvn -e package`\n\n3. Run `pip install -e ./` from the top-level folder containing `setup.py`.\n\n# Docker\n\n1. Build the docker image on a machine that has docker installed. Go to the root folder of this repository where the `Dockerfile` is and run, `docker build --build-arg ORBDETPY_VERSION=2.1.0 -t orbdetpy:2.1.0 .`\n\n2. Run the *orbdetpy:2.1.0* image in a daemon state: `docker run -it --rm orbdetpy:2.1.0 bash`\n\n3. Activate the python environment and run a test to determine a successful docker image build:\n\n```bash\ncd \u0026\u0026 . env_orbdetpy/bin/activate \u0026\u0026 python orbdetpy/examples/test_estimation.py\n```\n\n4. From here, you can either develop in orbdetpy or script and test in this pre-built environment.\n\n# Examples\n\n1. `fit_radec.py` : Run OD with real angles measurements. Also demonstrates the Laplace IOD method for estimating an initial state vector.\n\n2. `interpolate_oem.py` : Command-line tool for interpolating state vectors from CCSDS OEM ephemeris files. OEM files are available for download at \u003chttp://astria.tacc.utexas.edu/AstriaGraph\u003e.\n\n3. `predict_passes.py` : Predict satellite passes for ground stations or geographic regions using TLEs. Current elements may be obtained from sites such as \u003chttp://www.celestrak.com\u003e.\n\n4. `propagate_tle.py` : Propagate TLEs given by command-line arguments.\n\n5. `test_conversion.py` : Test reference frame and other conversion functions.\n\n6. `test_estimation.py` : Demonstrates measurement simulation and orbit determination functions.\n\n7. `test_interpolation.py` : Interpolate state vectors.\n\n# Known Issues\n\n1. Give orbdetpy network access permissions if you get warnings from the Microsoft Windows Firewall. \n\n2. If you use orbdetpy with Python's `multiprocessing` package, call the function `multiprocessing.set_start_method(\"spawn\")` before other `multiprocessing` calls.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fut-astria%2Forbdetpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fut-astria%2Forbdetpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fut-astria%2Forbdetpy/lists"}