JUICE Scenario Generator
Project description
JUICE Symphony
juice-simphony (a.k.a. Simphony) is a suite of integrated tools designed to assist users at the start of the tactical science planning process by preparing the scenario file structure required to run the SOC simulations with OSVE and or MAPPS (ultimately AGM and EPS).
This file structure provide the latest version of the required inputs as defined in JUI-ESAC-SGS-TN-031 Configuration Items Description and is complemented by the procedure UC44 Top Level Detailsed Scenario Setup.
Getting started
Project requirements
- Python 3.10
Install the juice-simphony (also known as Simphony) package
pip install juice-simphony
Check spice kernels (for MAPPS products)
Ensure that the spice meta-kernel is aligned with that of the segmentation. If not, perform a git checkout accordingly.
Run the script
Start by running the script with the -h option
juice-simphony -h
the following output is expected
usage: juice-simphony [-h] [--config CONFIG] [--template] [--mapps]
Standalone Simphony Scenario Generator
options:
-h, --help show this help message and exit
--config CONFIG Path to JSON config file
--template Optional flag to dump template and exit
--mapps Enable MAPPS-specific behaviour
--zip Save the output as a ZIP file
Get the template configuration file by executing
juice-simphony --template
which prints the configuration file in data/config_scenario.json.
{
"juice_conf": "$HOME/juice_conf",
"output_folder": "$HOME/JUICE_PREOPS/PLANNING",
"kernel_abs_path": "$HOME/juice/kernels",
"scenario_id": "S008_01",
"shortDesc": "ORB17",
"trajectory": "CREMA_5_1_150lb_23_1_a3",
"mnemonic": "segment_opportunities_v4_derived_segmentation_v3",
"startTime": "2032-12-18T17:32:33",
"endTime": "2033-01-08T21:05:31",
"main_target": "Jupiter",
"iniAbsolutePath": "SOFTWARE/MAPPS"
}
Execute the package via
juice-simphony --config yourpath/config_scenario.json (--mapps --zip)
where the --mapps option allows the generation of MAPPS specific outputs, and the --zip option can be used to zip the output folder.
The output is folder created generated in the directory provided above in the configuration.
Description
The starting point of Symphony to generate the timeline related data for the given scenario is the trajectory segmentation.
The trajectory segmentation process divides the Juice Tour trajectory into non-overlapping prime segments. These segments are not linked to individual instruments but rather to specific measurement objectives, each representing a distinct and well-defined scientific focus. Within each segment, one science discipline is prioritized for mission resources such as pointing and power. The primary goal of this approach is to minimize potential operational conflicts between instruments in the future. By aligning all instruments toward a common science objective within each segment, it becomes easier — ideally — to coordinate and make necessary compromises.
Once the segmentation is finalized, time periods of operational importance are explored in greater detail through the creation of a new operational scenario. To support this, the module used for detailed studies must be configured with both the appropriate settings and the segmentation attributes, which serve as the foundation for scenario generation. During this process, the supporting tools will retrieve the prime and opportunity segments, along with their expected theoretical data production and power consumption. Segments defined by instrument types will be replaced by specific instrument observations if available (each instrument is associated with an instrument type, and each segment type supports compatible observation types).
Simphony builds upon the products of the Segment Harmonization Toolset (SHT) — a collection of tools that support the trajectory segmentation process:
- It provides a data model and a persistence layer (based on a relational database) to store all required entities, accessible via the SHT core and Web admin interface.
- It exposes a public REST API over HTTPS, enabling data access for other modules within the uplink system.
- It includes a web-based timeline tool that allows users to visualize and modify the segmentation interactively.
The Simphony module authenticates with the public SHT REST API endpoint and performs a series of synchronous API calls to fetch the necessary data. This interaction ensures that all required planning inputs are retrieved directly from the authoritative SHT database. The query to the SHT REST API is executed using the parameters defined in the configuration file. The resulting segmentation is then loaded into memory for processing, and each individual segment is subsequently inspected. Currently, if a segment is truncated due to the query’s input start and end dates, the segment is adjusted accordingly in terms of data rate (DR) and data volume (DV). Overlapping segments are not permitted. If overlapping segments are detected within the segmentation, the program halts execution and returns an error.
Simphony resolves resource values for each segment instance in the PRIME timeline only, including instrument-type-level data such as data rate and power consumption. The logic for selecting resource values follows a hierarchical priority. If the segment instance belongs to a group, the resource definitions at the segment or instance level are ignored, and the group-level resource information is used. Else, if the segment instance defines its own resources, the segment-level resource definitions are ignored, and the instance-level resources are used. The segment-level resource definitions are used otherwise.
Information provided at the instrument level takes the highest priority and overrides any data given at the instrument-type level for the same instrument type. The final information at the instrument-type level is computed by combining the resources from all instruments belonging to that type. This mixing process ensures that specifying an attribute for one particular instrument does not overwrite or interfere with attributes at the instrument-type level for other instrument types.
SHT provides Simphony exclusively with instantaneous resource magnitudes, specifically data rates and power consumption values. For each resource category and type, Simphony aggregates all relevant resource entries, converts these entries into instantaneous rates, and computes the total resource rate by summing their contributions. When the resource data originates from a group, the aggregated value is normalized by the total group duration, which is the sum of the durations of all group members. If the resource comes from a segment instance or segment definition, the value is normalized by the duration of that specific instance. Output files for data rate, data volume and accumulated data volume are created by target, instrument type and instrument.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file juice_simphony-0.1.3.tar.gz.
File metadata
- Download URL: juice_simphony-0.1.3.tar.gz
- Upload date:
- Size: 10.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8b41fda2c0f4bca699927ca02cd5b2c1166b8370cf16dce7d393a28cd4a2cfb
|
|
| MD5 |
c2e731f822a8c92f7fe4eca31a338b62
|
|
| BLAKE2b-256 |
54e733b26a5b5e208e2d854cbe3973e6696dcf112b5ab506cb3afe5c0fed4038
|
File details
Details for the file juice_simphony-0.1.3-py3-none-any.whl.
File metadata
- Download URL: juice_simphony-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4036848bf1ff2c7b464e2d58b4d55bed76a324f9d2ad1d6e97760c2fb729524
|
|
| MD5 |
bb33f02b04cb216fa6ce2bb856b35232
|
|
| BLAKE2b-256 |
bd6f9a04cc9cbc849d9fa5d17d5dfaa268de5ae0676bfb0ae77882998110a5b1
|