Package: juice-phs
🪢 JUICE Planning Harmonisation Systemjuice-phs is a Python package that supports the Detailed Scenario Exercises during the Observation Plan,
Pointing and Instrument Timeline Harmonisation processes.🛠️️ PrerequisitesA computer based on a 64-bit Unix operating system: Linux or MacPython 3.8 (or higher)⎆ Python InstallationInstall geopipeline with:pipinstall[--upgrade]juice-geopipelineYou can install geopipeline locally from the repository:gitclonehttps://juigitlab.esac.esa.int/core-system/uplink/geopipelinecdgeopipeline
pipinstall.Using the libraryAfter installing the library can be used with the Python Shell or with its CLI.Python ShellA basic test of the library contents can be done as follows:from itl import export_timeline
output_dir = '.'
csvfile = 'tests/data/juice_example.csv'
export_timeline(output_dir, csvfile)Command line interfaceThe package has a number of CLI entry points:opl2otlconvert Observation Plan (OPL) to Observation Timeline (OTL).opl2otcconvert Observation Plan (OPL) to Observation Timeline Coverage (OTC).Usage examples are provided hereunder. Using the following input Observation Plan:RIME_PRIME_OBSERVATION,2032-07-02T16:09:54.000Z,2032-07-02T16:31:31.000Z,RIME_EUROPA_FLYBY_02,RIME
RPWI_OBSERVATION,2032-07-02T16:08:54.000Z,2032-07-02T16:32:31.000Z,RPWI_In_situ_slow_Radio_Full,RPWI
RPWI_OBSERVATION,2032-07-02T06:52:25.000Z,2032-07-02T14:52:25.000Z,RPWI_In_situ_normal_Radio_Full,RPWI
JANUS_PRIME_OBSERVATION,2032-07-02T04:18:40.000Z,2032-07-02T04:32:00.000Z,SJS0004C50A_UVS_SAT_STELL_OCC_A,JANUSwith:opl2otl-husage:opl2otl[-h][-oOUTPUT][-sSCENARIO][-iITERATION][-u]csv

juice-itl:convertObservationPlan(OPL)toObservationTimeline(OTL).

positionalarguments:csvObservationPlan(OPL)CSVinputfile.

optionalarguments:-h,--helpshowthishelpmessageandexit-oOUTPUT,--outputOUTPUTOutputdirectory(default:Current).-sSCENARIO,--scenarioSCENARIOScenarioIdentifier(default:E001).-iITERATION,--iterationITERATIONIterationreference(default:S01P00).-u,--utcFiletimesasUTC(default:Relativetoevents).with the following arguments:opl2otlopl_input.csvgenerates the following directory structure:.|--EVF_E001_01_SOC_S01P01.EVF|--EVF_E001_01_SOC_SXXPYY.EVF|--JANUS||--OTL_E001_01_JAN_S01P01.ITL|`--OTL_E001_01_JAN_SXXPYY.ITL|--RIME||--OTL_E001_01_RIM_S01P01.ITL|`--OTL_E001_01_RIM_SXXPYY.ITL`--RPWI|--OTL_E001_01_RPW_S01P01.ITL`--OTL_E001_01_RPW_SXXPYY.ITLwith the following content forOTL_E001_01_RPW_SXXPYY.ITL:PTR_OBS_END(COUNT=1)02:20:25RPWIOBS_STARTRPWI_In_situ_normal_Radio_FullPTR_OBS_START(COUNT=2)-01:17:29RPWIOBS_ENDRPWI_In_situ_normal_Radio_Full

PTR_OBS_START(COUNT=2)-00:01:00RPWIOBS_STARTRPWI_In_situ_slow_Radio_FullPTR_OBS_END(COUNT=2)00:01:00RPWIOBS_ENDRPWI_In_situ_slow_Radio_Fullwith :opl2qlc-h

usage:opl2otc[-h][-oOUTPUT]csv

juice-itl:convertObservationPlan(OPL)toObservationTimelineCoverage(OTC).

positionalarguments:csvQuick-LookCoverageinputCSVinputfile.

optionalarguments:-h,--helpshowthishelpmessageandexit-oOUTPUT,--outputOUTPUTOutputfile(default:qlc_output.csvatcurrentdirectory).with the following arguments:opl2otcopl_input.csv-ootc_output.csvgenerates the following output file:RIME_EUROPA_FLYBY_02,2032-07-02T16:09:54.000Z,2032-07-02T16:31:31.000Z,0,RIME
RPWI_In_situ_slow_Radio_Full,2032-07-02T16:08:54.000Z,2032-07-02T16:32:31.000Z,0,RPWI
RPWI_In_situ_normal_Radio_Full,2032-07-02T06:52:25.000Z,2032-07-02T14:52:25.000Z,0,RPWI
SJS0004C50A_UVS_SAT_STELL_OCC_A,2032-07-02T04:18:40.000Z,2032-07-02T04:32:00.000Z,0,JANUS