Add XLSM timeline export from ITL observations
Changes
- Add
Timeline
object to manipulate MAJIS timeline file (.xlsm
):
>>> from majis import Timeline
>>> timeline = Timeline(timeline='timeline.xlsm')
# Get the number of observations
>>> len(timeline)
10
# Get the list of observations
>>> timeline['OBS_NAME']
['OBS_001', ...]
# Get an observation details
>>> timeline[1]
{'OBS_NAME': 'OBS_001', 'start_angle': 1.5, ...}
# Get an observation property
>>> timeline['start_angle', 1]
1.5
# Append new observations from ITL file
>>> timeline.append('absolute_time.itl')
# Edit a single field
>>> timeline['start_angle', 1] = -1.5
>>> timeline['start_angle', 1]
-1.5
# Save to the same XLSM timeline
>>> timeline.save()
# Create a new timeline from the default template and a relative ITL file
>>> timeline = Timeline('relative_time.itl', refs='events.evf')
# Compute all relative time w.r.t. to a C/A reference
>>> timeline.ca_ref = '2032-09-24T21:33:36 PERIJOVE_12PJ (COUNT = 1)'
>>> timeline['First CU_frame start wrt C/A', 1]
'-001.18:35:25'
# Export the timeline to a new file
>>> timeline.save('new_timeline.xlsm')
- Add explicit
save_xlsm()
function:
from majis.itl import save_xlsm
# Export as XLSM timeline w.r.t. C/A reference (based on default template)
save_xlsm('output.xlsm', itl_abs, ca_ref='DATETIME REF_CA (COUNT = N)')
# Append to an existing XLSM timeline
save_xlsm(None, itl_abs, timeline='timeline.xlsm')
- Add new flags to
majis-itl
to export asxlsm
:
# Create a new MAJIS timeline (`.xlsm`) from a ITL the default template.
majis-itl absolute_time.itl --output output.xlsm
# Edit an existing MAJIS timeline to compute relative time w.r.t. C/A reference.
majis-itl --timeline timeline.xlsm --relative-to "2032-09-24T21:33:36 PERIJOVE_12PJ (COUNT = 1)"
Note: If no --output
flag is present, the output will be save in the original template.
- The original ITL filename is now kept in
read_itl()
:
>>> events = read_itl('foo.itl')
>>> events['OBS_000']['ITL']
'foo.itl'
- Add explicit
START_ROW_VIS
to tests ITL files and fixSYNCHRONOUS
to float value (instead of'YES'
string). - Fix
concatenate()
function for on zeros blocks input
Other
- Enforce code coverage to
100%
. - Add
Axelle Gottafray
to authors
Fix #2 (closed)
Edited by Benoît SEIGNOVERT