Index: pyglider/trunk/pyglider/dbd2asc.py =================================================================== --- pyglider/trunk/pyglider/dbd2asc.py (revision 477) +++ pyglider/trunk/pyglider/dbd2asc.py (revision 487) @@ -56,5 +56,6 @@ dt_str = dt.strftime("_%Y_%m_%d_%H%M") # datetime string added to outfile name for raw2proc - outfile = os.path.join(asc_dir, f + dt_str + '.' + filetype + 'asc') + # outfile = os.path.join(asc_dir, f + dt_str + '.' + filetype + 'asc') + outfile = os.path.join(asc_dir, f + '.' + filetype + 'asc') cache_dir = os.path.join(asc_dir, "cache") if debug: Index: pyglider/trunk/pyglider/dbdcopy.py =================================================================== --- pyglider/trunk/pyglider/dbdcopy.py (revision 475) +++ pyglider/trunk/pyglider/dbdcopy.py (revision 487) @@ -48,7 +48,7 @@ infile = os.path.join(fg_dir, f) outfile = os.path.join(bd_dir, f) - rc = shutil.copyfile(infile, outfile) + rc = shutil.copy2(infile, outfile) # copy file and file stat if rc: - raise IOError("shutil.copyfile return code: " + str(rc)) + raise IOError("shutil.copy2 return code: " + str(rc)) else: print " ... Copied ", infile Index: pyglider/trunk/pyglider/pyglider.py =================================================================== --- pyglider/trunk/pyglider/pyglider.py (revision 486) +++ pyglider/trunk/pyglider/pyglider.py (revision 487) @@ -46,4 +46,16 @@ return str +def dt2es(dt): + """Convert datetime object to epoch seconds (es) as seconds since Jan-01-1970 """ + # microseconds of timedelta object not used + delta = dt - datetime.datetime(1970,1,1,0,0,0) + es = delta.days*24*60*60 + delta.seconds + return es + +def es2dt(es): + """ Convert epoch seconds (es) to datetime object""" + dt = datetime.datetime(*time.gmtime(es)[0:6]) + return dt + # ------------------------------------------------------------------- # playground @@ -526,4 +538,15 @@ def parse_glider_goto_ma(lines, glider): data = [] + + m = re.search(r'^(# File creation time:)\s*(.*)', ''.join(lines), re.MULTILINE) + if m: + try: + t = time.strptime(m.group(2), "%d-%b-%Y %H:%M:%S") + # the '*' operator unpacks the tuple, producing the argument list. + # add 5 hours for GMT + dt = datetime.datetime(*t[0:6]) + datetime.timedelta(hours=5) + dt_str = datetime.date.strftime(dt, "%Y-%m-%d %H:%M:%S UTC") + except: dt_str = None + m = re.search(r'\(.*)\', ''.join(lines), re.MULTILINE|re.S) latlonstr = m.group(1) @@ -551,8 +574,10 @@ lat = None lon = None + html_str = '
'+glider+' goto position at
'+ dt_str + '
' + \ + ll+'
' if lat and lon: data.append({'glider': glider, 'name': '', - 'description': '
'+ll+'
', + 'description': html_str, 'lon': lon, 'lat': lat}) @@ -629,5 +654,5 @@ waypoint_line = KML.Placemark( KML.name(glider), - KML.description(glider+' goto'), + KML.description(glider+' latest goto waypoints'), KML.styleUrl(linestyle), KML.LineString(