Source code for majis.itl.eps.export
"""ITL EPS export module."""
from pathlib import Path
from planetary_coverage.events import EventsDict, EventsList, EventWindow
from ...misc import fmt_datetime
from ...misc.events import flatten_events
from ...misc.evf import ref_key
from ...misc.export import save_file
@flatten_events
def save_itl_eps(
fout: str | Path | None,
*events: EventsList | EventsDict,
ref: str | None = None,
overlap: bool = False,
header: str = None,
) -> Path:
"""Save ITL events to a new EPS ITL file.
Notes
-----
By default, ITL blocks must not overlap each other.
This can be disable with `overlap=True`.
Any custom header can be added.
Reference datetime, if provided, will be reported after
the header (if any provided).
All the bocks will be commented if additional parameters
are present in the Event objects.
"""
content = [header, ''] if header else []
if ref:
ref = ref_key(ref)
content += [
'# Relative time reference:',
f'# {ref[1]} {ref[0]}',
'',
]
for event in events:
content.extend(fmt_eps_comments(event))
start, end = fmt_datetime(event.start, event.stop, ref=ref)
inst = event['INSTRUMENT']
prime = ' (PRIME=TRUE)' if event['PRIME'] else ''
content.append(f'{start} {inst} OBS_START {event.key}{prime}')
content.append(f'{end} {inst} OBS_END {event.key}')
content.append('') # empty line
return save_file(fout, content, suffix='.itl')
EXCLUDED_KEYS = [
'INSTRUMENT',
'PRIME',
'T_START',
'T_END',
'COMMENTS',
'ITL',
]