예제 #1
0
파일: tktogpx2.py 프로젝트: peletiah/poab
def interactive(outputDir,filename,tkFileName):
    """
    The main method.
    """
    # pylint: disable-msg=R0912,R0914,R0915
    outputFile = None
    timezone = None
    autotimezone = False
    usetimezone = False
   
    if outputDir and not os.path.exists(outputDir):
        print "Output directory %s doesn't exist!" % outputDir
        sys.exit(3)

    tkfiles = []
    for tkFileName in glob(tkFileName):
        tkfile = readTKFile(tkFileName)
        if isinstance(tkfile, TK1File):
        	if timezone:
        	    tkfile.setTimezone(timezone)
    	tkfile.setAutotimezone(autotimezone)
        tkfiles.append(tkfile)



    tkfile = readTKFile(tkFileName)
    tkfiles.sort(lambda x, y: cmp(x.getFirstTrackpoint().getDateTime(), y.getFirstTrackpoint().getDateTime()))
    
    try:
        if len(tkfiles) > 1:
            dateString = tkfiles[0].getFirstTrackpoint().getDateTimeString()
            dateString2 = tkfiles[-1].getFirstTrackpoint().getDateTimeString()
            outputFile = createOutputFile(outputDir, filename, '%s-%s#%03i.gpx', (dateString, dateString2,
                                                                                  len(tkfiles)))
        else:
            if isinstance(tkfiles[0], TK1File):
                dateString = tkfiles[0].getFirstTrackpoint().getDateTimeString()
                dateString2 = tkfiles[0].getLastTrackpoint().getDateTimeString()
                outputFile = createOutputFile(outputDir, filename, '%s-%s#%03i.gpx', (dateString, dateString2,
                                                                                      tkfiles[0].getTrackCount()))
            else:
                dateString = tkfiles[0].getFirstTrackpoint().getDateTimeString(DATETIME_FILENAME_TEMPLATE)
                outputFile = createOutputFile(outputDir, filename, '%s.gpx', dateString)
        if outputFile == None:
            return
        createGpxFile(outputFile, tkfiles, usetimezone)
    finally:
        if outputFile != None:
            outputFile.close()
예제 #2
0
파일: tktogpx2.py 프로젝트: peletiah/poab
def main():
    """
    The main method.
    """
    # pylint: disable-msg=R0912,R0914,R0915
    outputDir = None
    outputFile = None
    filename = None
    timezone = None
    autotimezone = False
    usetimezone = False
    
    try:
        opts, args = getopt.getopt(sys.argv[1:], "?hd:o:")
    except getopt.GetoptError:
        # print help information and exit:
        usage()
        sys.exit(2)
    if len(args) == 0:
        usage()
        sys.exit(1)

    for o, a in opts:
        if o in ("-h", "-?"):
            usage()
            sys.exit()
        if o == "-d":
            outputDir = a
        if o == "-o":
            filename = a
        if o == "-t":
            timezone = parseTimezone(a)
            if timezone == None:
                print "Timzone string doesn't match pattern +hh:mm!"
                sys.exit(4)
            usetimezone = True
        if o == "--autotz":
            usetimezone = autotimezone = True

    if outputDir and not os.path.exists(outputDir):
        print "Output directory %s doesn't exist!" % outputDir
        sys.exit(3)

    tkfiles = []
    for arg in args:
        for tkFileName in glob(arg):
            tkfile = readTKFile(tkFileName)
            if isinstance(tkfile, TK1File):
                if timezone:
                    tkfile.setTimezone(timezone)
                tkfile.setAutotimezone(autotimezone)
            tkfiles.append(tkfile)

    tkfiles.sort(lambda x, y: cmp(x.getFirstTrackpoint().getDateTime(), y.getFirstTrackpoint().getDateTime()))
    
    try:
        if len(tkfiles) > 1:
            dateString = tkfiles[0].getFirstTrackpoint().getDateTimeString()
            dateString2 = tkfiles[-1].getFirstTrackpoint().getDateTimeString()
            outputFile = createOutputFile(outputDir, filename, '%s-%s#%03i.gpx', (dateString, dateString2,
                                                                                  len(tkfiles)))
        else:
            if isinstance(tkfiles[0], TK1File):
                dateString = tkfiles[0].getFirstTrackpoint().getDateTimeString()
                dateString2 = tkfiles[0].getLastTrackpoint().getDateTimeString()
                outputFile = createOutputFile(outputDir, filename, '%s-%s#%03i.gpx', (dateString, dateString2,
                                                                                      tkfiles[0].getTrackCount()))
            else:
                dateString = tkfiles[0].getFirstTrackpoint().getDateTimeString(DATETIME_FILENAME_TEMPLATE)
                outputFile = createOutputFile(outputDir, filename, '%s.gpx', dateString)
        if outputFile == None:
            return
        createGpxFile(outputFile, tkfiles, usetimezone)
    finally:
        if outputFile != None:
            outputFile.close()