Skip to content
Snippets Groups Projects
merge.py 940 B
import io
from datetime import datetime
from edosl0util.cli import util
from edosl0util import merge, stream


def main():
    parser = util.default_parser()
    parser.add_argument('-o', '--output', default='out.pds')
    def interval(v):
        dt = lambda v: datetime.strptime(v, '%Y-%m-%d %H:%M:%S')
        return [dt(x) for x in v.split(',')]
    parser.add_argument(
        '-t', '--trunc-to', type=interval,
        help=('Truncate to the interval given as coma separated timestamps of '
              'the format YYYY-MM-DD HH:MM:SS. The begin time is inclusive, the '
              'end time is exclusive.'))
    parser.add_argument('pds', nargs='+')
    args = parser.parse_args()

    util.configure_logging(args)

    streams = [stream.jpss_packet_stream(io.open(f, 'rb')) for f in args.pds]
    merge.merge(
        streams, output=io.open(args.output, 'wb'), trunc_to=args.trunc_to)


if __name__ == '__main__':
    main()