#!/usr/bin/env python
"""
Executable for simulating the survey.
"""
import os
import logging
import itertools

import ephem
import numpy as np

from maglites.scheduler import Scheduler
from maglites.utils.parser import Parser, DatetimeAction
from maglites.field import FieldArray

def main():
    parser = Scheduler.parser()
    args = parser.parse_args()

    scheduler = Scheduler(args.fields,args.windows,args.complete)
    survey = scheduler.schedule_survey(start=args.utc_start,end=args.utc_end,
                                       chunk=args.chunk,plot=args.plot)

    # Write all completed fields
    scheduler.completed_fields.write('survey_fields.csv')

    basedir = args.outfile if args.outfile else 'survey'
    if not os.path.exists(basedir): os.makedirs(basedir)
    print(basedir)

    for nite,chunks in survey.items():
        outdir = os.path.join(basedir,nite)
        if not os.path.exists(outdir): os.makedirs(outdir)
        outfile = os.path.join(outdir,nite+'.json')
        base,ext = os.path.splitext(outfile)

        for i,chunk in enumerate(chunks):
            if len(chunks) > 1:
                outfile = base+'_%02d'%(i+1)+ext
            logging.debug("Writing %s..."%outfile)
            chunk.write(outfile)
        
    return survey

if __name__ == "__main__":
    survey = main()
