# Operations Simulation & Validation Engine (OSVE)
## Introduction
OSVE is Python package that incorporates a `C/C++` library to assist the
Detailed Science Planning process of JUICE by the Science
Operations Center (SOC) to implement the Science Activity Plan of the mission.
Its main functionality is to simulate and validate the S/C pointing timeline,
instrument timeline and to perform operational constraint checks and assessment
of Power and Data Volume resources.
### AGM & EPS Libraries
OSVE's core includes the Experiment Planning System (EPS) and the Attitude
Generator Module (AGM) `C/C++` software applications developed by TEC (ESTEC)
and PSS (ESAC) that have been used to implement the science planning and conduct
in-flight science operations for ESA's Venus Express, Mars Express, Rosetta,
Solar Orbiter, and BepiColombo missions.
## Documentation (Not Available)
A detailed documentation is available with a thorough description of OSVE, the API
documentation is also included and is automatically generated from the content of
the [docs directory](./docs) and from the docstrings of the public signatures of the source code.
Additional documentation is available at the
[JUICE SOC Toolkit Help](https://juicesoc.esac.esa.int/panel/#/navigation/help).
### Building the Documentation
```shx
pip install sphinx
pip install sphinx sphinx_rtd_theme
```
```shx
sphinx-build -b html source build
```
## Installation
OSVE is available from the Python Package Index repository. Install it by running the
following command:
```shx
pip install osve
```
## Using the Library
After installing the library can be used with the Python Shell or with its CLI.
### Python Shell
A basic test of the library contents can be done as follows:
```python
from osve import osve
sim = osve.osve()
version = sim.get_app_version()
print(version)
```
### Command line Interface
The package has a CLI entry point:
```shx
usage: osve [-h] -r ROOTPATH -s SESSIONFILE
JUICE Operations Simulation & Validation Engine (OSVE) command line interface
optional arguments:
-h, --help show this help message and exit
-r ROOTPATH, --RootPath ROOTPATH
Top level path of the scenario file_path to be used to resolve the relative paths
-s SESSIONFILE, --SessionFile SESSIONFILE
Location and name of the session file containing all the scenarios files
```
### JUICE SOC Tools using OSVE
There are a number of JUICE SOC tools that make usage of OSVE. The most remarkable
public ones are listed hereunder:
- [`PTWrapper`](https://juigitlab.esac.esa.int/python/ptwrapper) Acts as a wrapper to simplify the usage of OSVE to simulate a
Pointing Timeline and generate the Attitude as a SPICE CK to assist the
Pointing Timeline Harmonisation of the Detailed Scenario process.
- [`juice-phs`](https://juigitlab.esac.esa.int/python/juice-phs) Exploits and uses the OSVE capabilities to assist the Instrument
Timeline Harmonisation of the Detailed Scenario process.
## OSVE Session File
The OSVE Session File is a text file in JSON format intended to specify to OSVE
the settings or parameters to use during initialisation, simulation and
reporting steps.
The JSON file is structured with the following objects:
- `sessionConfiguration` Main session object containing the specified OSVE settings.
- `source` Defines the source or the origin of the data used for this OSVE execution.
- `simulationConfiguration` Defines the simulation settings for the OSVE execution.
- `attitudeSimulationConfiguration` Defines the attitude simulation settings used by AGM during the OSVE execution.
If not specified, OSVE will run the simulation without using AGM.
- `kernelsList` Defines SPICE kernels settings for being used by AGM during the OSVE execution.
- `instrumentSimulationConfiguration` Defines the instrument simulation settings for being used by EPS during
the OSVE execution. In not specified, OSVE will run the simulation without EPS.
- `inputFiles` Defines the input files for the OSVE execution.
- `modellingConfiguration` Defines the Experiment modelling files for being used by EPS.
- `outputFiles` Defines the output files that OSVE will generate after the execution.
- `logging` Defines the logging parameters of OSVE.
A template of the Session file with a description of each parameter is available at
[session-file](session-file.json). In the JSON file keywords are mandatory unless specified as `[OPTIONAL]`.
Some keywords are labeled as `[NOT_USED]`, this just remarks that this keyword is not useD by
OSVE itself but can be used for traceability purposes.
An example of a session file with all the available OSVE overlays is available at
[session-file-example](session-file-example.json). More examples of Session files are provided in the test directories.
E.g.: [Minor Moons test scenario](validation/osve/osve-if/pt-if-test-0001-minor-moons/session_file.json).
## OSVE `C++/C` Library
The `C++/C` library for which the current Python package works as a wrapper
for can also be directly used and linked with other applications. If this path is chosen it is recommended to inspect the source code of the Python Package
to understand how to use it.
The libraries are available under the [docs directory](osve/deliveries).
Raw data
{
"_id": null,
"home_page": "https://juigitlab.esac.esa.int/core-system/uplink/phs/osve",
"name": "osve",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "esa, Juice, AGM, EPS, planetary, space, metrics, trajectory, assessment, crema",
"author": "Ricardo Valles, Marc Costa",
"author_email": "juice_soc@sciops.esa.int",
"download_url": null,
"platform": "Linux",
"description": "\ufeff# Operations Simulation & Validation Engine (OSVE)\n\n## Introduction\n\nOSVE is Python package that incorporates a `C/C++` library to assist the \nDetailed Science Planning process of JUICE by the Science \nOperations Center (SOC) to implement the Science Activity Plan of the mission.\n\nIts main functionality is to simulate and validate the S/C pointing timeline,\ninstrument timeline and to perform operational constraint checks and assessment\nof Power and Data Volume resources.\n\n### AGM & EPS Libraries\n\nOSVE's core includes the Experiment Planning System (EPS) and the Attitude\nGenerator Module (AGM) `C/C++` software applications developed by TEC (ESTEC)\nand PSS (ESAC) that have been used to implement the science planning and conduct\nin-flight science operations for ESA's Venus Express, Mars Express, Rosetta,\nSolar Orbiter, and BepiColombo missions.\n\n\n## Documentation (Not Available)\n\nA detailed documentation is available with a thorough description of OSVE, the API\ndocumentation is also included and is automatically generated from the content of \nthe [docs directory](./docs) and from the docstrings of the public signatures of the source code.\n\nAdditional documentation is available at the \n[JUICE SOC Toolkit Help](https://juicesoc.esac.esa.int/panel/#/navigation/help).\n\n\n### Building the Documentation\n\n```shx\npip install sphinx\npip install sphinx sphinx_rtd_theme\n```\n\n```shx\nsphinx-build -b html source build\n```\n\n\n## Installation\n\nOSVE is available from the Python Package Index repository. Install it by running the\nfollowing command:\n\n```shx\npip install osve\n```\n\n## Using the Library\n\nAfter installing the library can be used with the Python Shell or with its CLI.\n\n### Python Shell\n\nA basic test of the library contents can be done as follows:\n\n```python\nfrom osve import osve\nsim = osve.osve()\nversion = sim.get_app_version()\nprint(version)\n```\n\n### Command line Interface\n\nThe package has a CLI entry point:\n\n```shx\nusage: osve [-h] -r ROOTPATH -s SESSIONFILE\n\nJUICE Operations Simulation & Validation Engine (OSVE) command line interface\n\noptional arguments:\n -h, --help show this help message and exit\n -r ROOTPATH, --RootPath ROOTPATH\n Top level path of the scenario file_path to be used to resolve the relative paths\n -s SESSIONFILE, --SessionFile SESSIONFILE\n Location and name of the session file containing all the scenarios files\n\n```\n\n### JUICE SOC Tools using OSVE\n\nThere are a number of JUICE SOC tools that make usage of OSVE. The most remarkable\npublic ones are listed hereunder:\n\n- [`PTWrapper`](https://juigitlab.esac.esa.int/python/ptwrapper) Acts as a wrapper to simplify the usage of OSVE to simulate a \n Pointing Timeline and generate the Attitude as a SPICE CK to assist the \n Pointing Timeline Harmonisation of the Detailed Scenario process.\n- [`juice-phs`](https://juigitlab.esac.esa.int/python/juice-phs) Exploits and uses the OSVE capabilities to assist the Instrument \n Timeline Harmonisation of the Detailed Scenario process.\n\n\n## OSVE Session File\n\nThe OSVE Session File is a text file in JSON format intended to specify to OSVE\nthe settings or parameters to use during initialisation, simulation and\nreporting steps.\n\nThe JSON file is structured with the following objects:\n\n- `sessionConfiguration` Main session object containing the specified OSVE settings.\n - `source` Defines the source or the origin of the data used for this OSVE execution.\n - `simulationConfiguration` Defines the simulation settings for the OSVE execution. \n - `attitudeSimulationConfiguration` Defines the attitude simulation settings used by AGM during the OSVE execution. \n If not specified, OSVE will run the simulation without using AGM.\n - `kernelsList` Defines SPICE kernels settings for being used by AGM during the OSVE execution. \n - `instrumentSimulationConfiguration` Defines the instrument simulation settings for being used by EPS during \n the OSVE execution. In not specified, OSVE will run the simulation without EPS.\n - `inputFiles` Defines the input files for the OSVE execution.\n - `modellingConfiguration` Defines the Experiment modelling files for being used by EPS.\n - `outputFiles` Defines the output files that OSVE will generate after the execution.\n - `logging` Defines the logging parameters of OSVE.\n\nA template of the Session file with a description of each parameter is available at\n[session-file](session-file.json). In the JSON file keywords are mandatory unless specified as `[OPTIONAL]`.\nSome keywords are labeled as `[NOT_USED]`, this just remarks that this keyword is not useD by \nOSVE itself but can be used for traceability purposes.\n\nAn example of a session file with all the available OSVE overlays is available at \n[session-file-example](session-file-example.json). More examples of Session files are provided in the test directories. \nE.g.: [Minor Moons test scenario](validation/osve/osve-if/pt-if-test-0001-minor-moons/session_file.json).\n\n\n## OSVE `C++/C` Library\n\nThe `C++/C` library for which the current Python package works as a wrapper\nfor can also be directly used and linked with other applications. If this path is chosen it is recommended to inspect the source code of the Python Package\nto understand how to use it.\n\nThe libraries are available under the [docs directory](osve/deliveries).\n\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Python package for OSVE",
"version": "2.5.0",
"project_urls": {
"Homepage": "https://juigitlab.esac.esa.int/core-system/uplink/phs/osve"
},
"split_keywords": [
"esa",
" juice",
" agm",
" eps",
" planetary",
" space",
" metrics",
" trajectory",
" assessment",
" crema"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "66ab69d7891e904fb21f94c60dbb88f20f7ed7bb5855d5fbe70e06a40304e3da",
"md5": "100dda40c58e79f144c10e3e16620463",
"sha256": "78a7ec8905135f22d156813e6fc49e2e8b7ff41e560c1edcabf7fc16caf3bb08"
},
"downloads": -1,
"filename": "osve-2.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "100dda40c58e79f144c10e3e16620463",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 31771540,
"upload_time": "2024-10-22T14:11:15",
"upload_time_iso_8601": "2024-10-22T14:11:15.138407Z",
"url": "https://files.pythonhosted.org/packages/66/ab/69d7891e904fb21f94c60dbb88f20f7ed7bb5855d5fbe70e06a40304e3da/osve-2.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-22 14:11:15",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "osve"
}