ESA Planning Timeline Request (PTR) Python package
==================================================
<img src="https://esa-ptr.readthedocs.io/en/1.4/_static/ptr-logo.svg" align="right" hspace="50" vspace="50" height="100" alt="ESA PTR logo">
Since the [Rosetta mission](https://www.esa.int/Science_Exploration/Space_Science/Rosetta),
ESA developed an XML-like syntax to create Planning Timeline Request (PTR) files.
These files allow the mission team member to design custom attitude spacecraft pointing.
It is readable by `AGM` and `MAPPS` softwares to detect spacecraft constrains violations,
power conception and surface coverage. It can also be used to compute custom spacecraft
attitude: quaterions, camera kernels (`ck`) and resolved PTR.
This format is used for the [JUICE mission](https://sci.esa.int/web/juice),
and can be tested on the [JUICE pointing tool](https://juicept.esac.esa.int).
This python package implements an object oriented approach to help the creation and parsing
of PTR files for the user, as well an interface to check JUICE PTR validity with AGM.
> 🚧 **Disclaimer:** This package is in beta stage and does not support all PTR implementations.
> Please, open an issue to report any issue you may accounter.
> ⚠️ Currently this tool in **beta stage**, **do not** use it in critical environments.
📚 Documentation
----------------
A detailed documentation can be found here: [esa-ptr.readthedocs.io](https://esa-ptr.readthedocs.io/)
🐍 Installation
---------------
This package is available on [PyPI](https://pypi.org/project/esa-ptr/) and could be installed with the python package manager `pip`:
```bash
python -m pip install esa-ptr
```
Even if this tool does not have any external dependencies, we recommend to use it in an isolated virtual environment (`venv` or `conda env`).
🐛 Development and testing
--------------------------
If you want to contribute to the development and tests your changes before submitting a merge request,
you need to install [Poetry](https://python-poetry.org/docs/) and clone this repository:
```bash
git clone https://juigitlab.esac.esa.int/python/ptr.git esa-ptr ;
cd esa-ptr/
```
Install the package and its dependencies:
```
poetry install
```
Then, after your edits, you need to check that both linters are happy:
```bash
poetry run flake8
poetry run pylint src tests
```
and all the tests passed:
```bash
poetry run pytest
```
🎓 Ressources
-------------
* Rosetta Flight Dynamics: `RO-ESC-IF-5501_i3r4_RSGS_FD_ICD-2.pdf`
Raw data
{
"_id": null,
"home_page": "https://juigitlab.esac.esa.int/python/ptr",
"name": "esa-ptr",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "esa,ptr,rosetta,juice",
"author": "Beno\u00eet Seignovert",
"author_email": "benoit.seignovert@univ-nantes.fr",
"download_url": "https://files.pythonhosted.org/packages/d4/46/9cdccc85278c391d868575a0be2184eb1cc95ad8d1f103296b7b3fd9312c/esa_ptr-1.4.tar.gz",
"platform": null,
"description": "ESA Planning Timeline Request (PTR) Python package\n==================================================\n<img src=\"https://esa-ptr.readthedocs.io/en/1.4/_static/ptr-logo.svg\" align=\"right\" hspace=\"50\" vspace=\"50\" height=\"100\" alt=\"ESA PTR logo\">\n\nSince the [Rosetta mission](https://www.esa.int/Science_Exploration/Space_Science/Rosetta),\nESA developed an XML-like syntax to create Planning Timeline Request (PTR) files.\nThese files allow the mission team member to design custom attitude spacecraft pointing.\nIt is readable by `AGM` and `MAPPS` softwares to detect spacecraft constrains violations,\npower conception and surface coverage. It can also be used to compute custom spacecraft\nattitude: quaterions, camera kernels (`ck`) and resolved PTR.\nThis format is used for the [JUICE mission](https://sci.esa.int/web/juice),\nand can be tested on the [JUICE pointing tool](https://juicept.esac.esa.int).\n\nThis python package implements an object oriented approach to help the creation and parsing\nof PTR files for the user, as well an interface to check JUICE PTR validity with AGM.\n\n> \ud83d\udea7 **Disclaimer:** This package is in beta stage and does not support all PTR implementations.\n> Please, open an issue to report any issue you may accounter.\n> \u26a0\ufe0f Currently this tool in **beta stage**, **do not** use it in critical environments.\n\n\ud83d\udcda Documentation\n----------------\nA detailed documentation can be found here: [esa-ptr.readthedocs.io](https://esa-ptr.readthedocs.io/)\n\n\ud83d\udc0d Installation\n---------------\n\nThis package is available on [PyPI](https://pypi.org/project/esa-ptr/) and could be installed with the python package manager `pip`:\n\n```bash\npython -m pip install esa-ptr\n```\n\nEven if this tool does not have any external dependencies, we recommend to use it in an isolated virtual environment (`venv` or `conda env`).\n\n\n\ud83d\udc1b Development and testing\n--------------------------\n\nIf you want to contribute to the development and tests your changes before submitting a merge request,\nyou need to install [Poetry](https://python-poetry.org/docs/) and clone this repository:\n\n```bash\ngit clone https://juigitlab.esac.esa.int/python/ptr.git esa-ptr ;\ncd esa-ptr/\n```\n\nInstall the package and its dependencies:\n```\npoetry install\n```\n\nThen, after your edits, you need to check that both linters are happy:\n```bash\npoetry run flake8\npoetry run pylint src tests\n```\n\nand all the tests passed:\n```bash\npoetry run pytest\n```\n\n\ud83c\udf93 Ressources\n-------------\n* Rosetta Flight Dynamics: `RO-ESC-IF-5501_i3r4_RSGS_FD_ICD-2.pdf`\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License",
"summary": "ESA Planning Timeline Request package",
"version": "1.4",
"project_urls": {
"Bug Tracker": "https://juigitlab.esac.esa.int/python/ptr/-/issues",
"Documentation": "https://esa-ptr.readthedocs.io",
"Homepage": "https://juigitlab.esac.esa.int/python/ptr",
"Repository": "https://juigitlab.esac.esa.int/python/ptr"
},
"split_keywords": [
"esa",
"ptr",
"rosetta",
"juice"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "73da4947d65ab9775baefcc25daef0aa9da4fcc6459c6956be006c32510da774",
"md5": "f13d96cd6bd7d5ee344cd48c046e810c",
"sha256": "1929f59508894ccc83de8cd102c6ff3b4159ce2006bfdc9a0a2b7ed5395c6145"
},
"downloads": -1,
"filename": "esa_ptr-1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f13d96cd6bd7d5ee344cd48c046e810c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 36169,
"upload_time": "2023-12-06T17:17:53",
"upload_time_iso_8601": "2023-12-06T17:17:53.496422Z",
"url": "https://files.pythonhosted.org/packages/73/da/4947d65ab9775baefcc25daef0aa9da4fcc6459c6956be006c32510da774/esa_ptr-1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d4469cdccc85278c391d868575a0be2184eb1cc95ad8d1f103296b7b3fd9312c",
"md5": "2d69a0e40b0f9f7a124305d96c37d2de",
"sha256": "7d1fbaebb2df1e8dbbb96ea769990b944bbe28e8380fb34d3e4d05abc0a3b310"
},
"downloads": -1,
"filename": "esa_ptr-1.4.tar.gz",
"has_sig": false,
"md5_digest": "2d69a0e40b0f9f7a124305d96c37d2de",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 29211,
"upload_time": "2023-12-06T17:17:55",
"upload_time_iso_8601": "2023-12-06T17:17:55.332223Z",
"url": "https://files.pythonhosted.org/packages/d4/46/9cdccc85278c391d868575a0be2184eb1cc95ad8d1f103296b7b3fd9312c/esa_ptr-1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-06 17:17:55",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "esa-ptr"
}