Skip to main content

Collection of Python tools for working with CCSDS Space Packets

Project description

Contributor Covenant

SPaC-Kit

✨ Introduction

SpaC-Kit is a collection of Python tools for working with CCSDS Space Packets. It can generically:

  • Parses data files into Pandas DataFrames or Excel spreadsheets
  • (Scheduled Feb 2026) – Generates documentation in multiple formats (HTML, Markdown, reStructuredText, PDF)
  • (Scheduled Apr 2026) – Generates simulated packets

SpaC-Kit supports mission or instrument-specific CCSDS packet structures via plugin packages built on the CCSDSPy library.

[!IMPORTANT] This library is currently in active development.

Some functions are placeholders and may not yet have full implementations. Expect ongoing updates and new features as the library evolves.

🔌 Available Mission/Instrument Plugins

Users

Requirement

Tested with python 3.12.

Optionally, but recommended, create a virtual environment:

python3 -m venv my_virtual_env
source my_virtual_env/bin/activate

Install

Install your plugin library first, for example Europa-Clipper CCSDS packets definitions:

git clone https://github.com/joshgarde/europa-cliper-ccsds-plugin.git
cd europa-cliper-ccsds-plugin
pip install .

Install the SPaC-Kit package:

pip install spac-kit

Use

spac-parse --file {your ccsds file}

See more options with:

spac-parse --help

Developers

Requirements

Python 3.12

Create a virtual environment

For example in command line:

python3 -m venv venv
source venv/bin/activate

Install the latest development version of CCSDSPy (optionnal)

To install the latest version of CCSDSPy:

pip install git+https://github.com/CCSDSPy/ccsdspy.git

Deploy the project, for developers

Clone the repository

Install the package

pip install -e '.[dev]'
pre-commit install && pre-commit install -t pre-push

Run an example:

python src/spa_kit/parse/downlink_to_excel.py

or

spac-parse --help

or

spac-parse --file ./data/ecm_mag_testcase6_cmds_split_out.log --bdsem --header

Build and publish the package

Update the version number in file pyproject.toml

Create a tag in the repository and push the changes.

git tag vX.Y.Z
git push origin main --tags

TO BE DONE: the CI automation is going to mke the release on PyPI

Locally, you can do the following steps to build and publish the package.

python3 -m pip install --upgrade build
rm -rf dist/
python3 -m build

Publish the project:

pip install twine
twine upload dist/*

Other reference information for developers

  • The package is released following Semantic Versioning.
  • We follow the trunk-based branching strategy since the development team is current reduced and we want to favor efficient of the releases. That mean we don't have a 'develop' branch.
  • TO BE DONE: Continuous integration using GitHub Actions. It runs linting, unit test and code coverage on each Pull Request.
  • The code follows the PEP-8 style guide using black for formatting and flake8 for linting.

Acknowledgments

The work being done here heavily relies on the CCSDSpy library. It has been started as part of the NASA Europa Clipper mission Science Data System development and it is being now funded by a NASA ROSES grant.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spac_kit-0.3.0.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spac_kit-0.3.0-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

Details for the file spac_kit-0.3.0.tar.gz.

File metadata

  • Download URL: spac_kit-0.3.0.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for spac_kit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 79060d3f9b36d8d92a60b5bdfbb0a917b6086c954fbde77f37d89654d3c019cd
MD5 78799d93ddb2ddc1a5711311771822e1
BLAKE2b-256 f81c26af0c5407966859806d9bc3042e13ded56d4841faee17650b13205fe70c

See more details on using hashes here.

File details

Details for the file spac_kit-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: spac_kit-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for spac_kit-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ef4a3e429d1eb91c4e23aa4f827a280a5b40af75c691cdf3e0072e31a2d1963
MD5 949bdd811854d0352e22ab6b2067501c
BLAKE2b-256 9aaaf563d2b9be800b1780e2a82956db2bf8bdc86eb8208c4b53fb82323518aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page