Skip to content

Add ITL file reader

Benoit Seignovert requested to merge itl-file-reader into main

Add support for ITL events file reader (instrument timeline events file):

#---------------
# Example of ITL
#---------------

# Timeline version
Version: 1

# Block comment with absolute timing
2032-07-02T04:18:40Z  UVS   OBS_START UVS_SAT_STELL_OCC_A (PRIME=TRUE)
2032-07-02T04:32:00Z  UVS   OBS_END   UVS_SAT_STELL_OCC_A

#==========
# Multi-lines comment block with EVF relative timing (related to `CA_EUROPA.EVF`):
#   29-JAN-2031_21:21:56    CA_EUROPA      (COUNT =  3)
#skip this line (no leading space or tab).
CA_EUROPA (COUNT = 3)  -00:27:00  MAJIS 	OBS_START 		MAJIS_FLYBY_HR_01_001 (PRIME=TRUE)
CA_EUROPA (COUNT = 3)  -00:25:06  MAJIS 	OBS_END 		MAJIS_FLYBY_HR_01_001

# Switch mode absolute block
2031-02-06T00:16:25Z	MAJIS * SWITCH_MODE  	(CURRENT_MODE=SERVICE3 [ENG])

# Switch mode relative block
CA_EUROPA (COUNT = 3)  +04:36:55	MAJIS * SWITCH_MODE  	(CURRENT_MODE=OFF [ENG])

The events can be fined with absolute or relative timing (2032-07-02T04:18:40Z vs. CA_EUROPA (COUNT = 3) -00:27:00). If the events refer to a an other event, here CA_EUROPA (COUNT = 3), you will need a companion EVF file (see !35 (merged) for EVF parser).

Added

  • New ItlEventFile was added:
from moon_coverage.events import ItlEventsFile

ItlEventsFile('OTL_EUROPA.ITL', evf='CA_EUROPA.EVF')

returns:

event # t_start t_stop
OBS 2 2031-01-29 2032-07-02
SWITCH_MODE 2 2031-01-30 2031-02-06

ItlEventFile is based on AbstractEventsFile and EventsDict objects.

It supports the same search/filtering methods as EventsDict and EventsList.

  • New generic event reader for all ESA mission event files (.csv/.evf/.itl):
from moon_coverage import read_events

phases = read_events('Mission_Phases.csv')
timeline = read_events('mission_timeline_event_file_5_0.csv')
malargue = read_events('segmentation_proposal_Jupiter_Phase_all_crema_5_0_MALARGUE.csv')
evf = read_events('CA_EUROPA.EVF')
itl = read_events('OTL_EUROPA.ITL', evf='CA_EUROPA.EVF')
  • Add AbstractEventsFile post parsing check.

  • timedelta parser now supports 卤HH:MM:SS[.MS] strings:

>>> from moon_coverage.spice import timedelta

>>> timedelta('+02:04:06')
numpy.timedelta64(7446,'s')

Changed

  • misc.depreciated_renamed was renamed misc.depreciated and changed to append depreciation version number in the doc string.

Deprecated

  • esa.EsaMissionPhases, esa.EsaMissionTimeline and esa.EsaMissionEvents are depreciated in favor of read_events()

Merge request reports