Ejemplo n.º 1
0
Archivo: xc.py Proyecto: gdine/igc2kmz
 def from_element(cls, rtept, namespace):
     name = rtept.findtext('{%s}name' % namespace).encode('utf_8')
     lat = float(rtept.get('lat'))
     lon = float(rtept.get('lon'))
     ele_tag = rtept.find('{%s}ele' % namespace)
     ele = 0 if ele_tag is None else int(ele_tag.text)
     time_text = rtept.findtext('{%s}time' % namespace)
     dt = datetime.strptime(time_text, GPX_DATETIME_FORMAT)
     coord = Coord.deg(lat, lon, ele, dt)
     return cls(name, coord)
Ejemplo n.º 2
0
Archivo: xc.py Proyecto: Iv/igc2kmz
 def from_element(cls, rtept, namespace):
     name = rtept.findtext('{%s}name' % namespace).encode('utf_8')
     lat = float(rtept.get('lat'))
     lon = float(rtept.get('lon'))
     ele_tag = rtept.find('{%s}ele' % namespace)
     ele = 0 if ele_tag is None else int(ele_tag.text)
     time_text = rtept.findtext('{%s}time' % namespace)
     dt = datetime.strptime(time_text, GPX_DATETIME_FORMAT)
     coord = Coord.deg(lat, lon, ele, dt)
     return cls(name, coord)
Ejemplo n.º 3
0
 def track(self):
     ele = 'ele' if any(b.ele for b in self.b) else 'alt'
     coords = [Coord.deg(b.lat, b.lon, getattr(b, ele), b.dt)
               for b in self.b]
     kwargs = {}
     kwargs['filename'] = os.path.basename(self.filename)
     if 'plt' in self.h and not NOT_SET_RE.match(self.h['plt']):
         kwargs['pilot_name'] = self.h['plt'].strip()
     if 'gty' in self.h and not NOT_SET_RE.match(self.h['gty']):
         kwargs['glider_type'] = self.h['gty'].strip()
     if 'gid' in self.h and not NOT_SET_RE.match(self.h['gid']):
         kwargs['glider_id'] = self.h['gid'].strip()
     for k in self.i.keys():
         if any(getattr(b, k) for b in self.b):
             kwargs[k] = [getattr(b, k) for b in self.b]
     if self.c:
         tps = [Turnpoint(c.name, Coord.deg(c.lat, c.lon, 0), 0)
                for c in self.c]
         kwargs['declaration'] = Task('Declaration', tps)
     return track.Track(coords, **kwargs)
Ejemplo n.º 4
0
 def track(self):
     ele = 'ele' if any(b.ele for b in self.b) else 'alt'
     coords = [Coord.deg(b.lat, b.lon, getattr(b, ele), b.dt)
               for b in self.b]
     kwargs = {}
     kwargs['filename'] = os.path.basename(self.filename)
     if 'plt' in self.h and not NOT_SET_RE.match(self.h['plt']):
         kwargs['pilot_name'] = self.h['plt'].strip()
     if 'gty' in self.h and not NOT_SET_RE.match(self.h['gty']):
         kwargs['glider_type'] = self.h['gty'].strip()
     if 'gid' in self.h and not NOT_SET_RE.match(self.h['gid']):
         kwargs['glider_id'] = self.h['gid'].strip()
     for k in self.i.keys():
         if any(getattr(b, k) for b in self.b):
             kwargs[k] = [getattr(b, k) for b in self.b]
     return track.Track(coords, **kwargs)
Ejemplo n.º 5
0
 def track(self):
     ele = 'ele' if any(b.ele for b in self.b) else 'alt'
     coords = [
         Coord.deg(b.lat, b.lon, getattr(b, ele), b.dt) for b in self.b
     ]
     kwargs = {}
     kwargs['filename'] = os.path.basename(self.filename)
     if 'plt' in self.h and not NOT_SET_RE.match(self.h['plt']):
         kwargs['pilot_name'] = self.h['plt'].strip()
     if 'gty' in self.h and not NOT_SET_RE.match(self.h['gty']):
         kwargs['glider_type'] = self.h['gty'].strip()
     if 'gid' in self.h and not NOT_SET_RE.match(self.h['gid']):
         kwargs['glider_id'] = self.h['gid'].strip()
     for k in self.i.keys():
         if any(getattr(b, k) for b in self.b):
             kwargs[k] = [getattr(b, k) for b in self.b]
     return track.Track(coords, **kwargs)
Ejemplo n.º 6
0
 def from_element(cls, element, namespace):
     name = element.findtext("{%s}name" % namespace).encode("utf_8")
     desc_tag = element.find("{%s}desc" % namespace)
     desc = None if desc_tag is None else desc_tag.text.encode("utf_8")
     lat = float(element.get("lat"))
     lon = float(element.get("lon"))
     ele_tag = element.find("{%s}ele" % namespace)
     ele = 0 if ele_tag is None else int(ele_tag.text)
     time_tag = element.find("{%s}time" % namespace)
     if time_tag is None:
         dt = None
     else:
         dt = datetime.datetime.strptime(time_tag.text, GPX_DATETIME_FORMAT)
     coord = Coord.deg(lat, lon, ele, dt)
     radius_tag = element.find("{%s}extensions/{%s}radius" % (namespace, namespace))
     radius = 400 if radius_tag is None else int(radius_tag.text)
     enter = element.find("{%s}extensions/{%s}exit" % (namespace, namespace)) is None
     return cls(name, coord, radius, enter, desc)
Ejemplo n.º 7
0
    def __init__(self, url, path=None):
        self.url = url
        components = urlparse.urlparse(self.url)
        self.name = os.path.splitext(os.path.basename(components.path))[0]
        if path:
		try:
			file = open(path)
		except:
			file =urllib2.urlopen(path.replace('/var/www/','http://files.leonardo.pgxc.pl/'))
        else:
            file = urllib2.urlopen(self.url) 
            if file.info().typeheader != 'image/jpeg':
                raise RuntimeError, '%s: not an image/jpeg' % self.url
        self.jpeg = exif.JPEG(file)
        if 'DateTimeOriginal' in self.jpeg.exif:
            self.dt = exif.parse_datetime(self.jpeg.exif['DateTimeOriginal'])
        elif 'DateTime' in self.jpeg.exif:
            self.dt = exif.parse_datetime(self.jpeg.exif['DateTime'])
        else:
            self.dt = datetime.datetime(2000, 1, 1)
        if 'GPSVersionID' in self.jpeg.exif:
            lat = exif.parse_angle(self.jpeg.exif['GPSLatitude'])
            if self.jpeg.exif['GPSLatitudeRef'] == 'S\0':
                lat = -lat
            lon = exif.parse_angle(self.jpeg.exif['GPSLongitude'])
            if self.jpeg.exif['GPSLongitudeRef'] == 'W\0':
                lon = -lon
            if 'GPSAltitude' in self.jpeg.exif:
                gps_altitude = self.jpeg.exif['GPSAltitude']
                ele = float(gps_altitude[0]) / gps_altitude[1]
                self.elevation_data = True
            else:
                ele = 0
                self.elevation_data = False
            self.coord = Coord.deg(lat, lon, ele)
        else:
            self.coord = None
            self.elevation_data = None
        if 'UserComment' in self.jpeg.exif:
            user_comment = self.jpeg.exif['UserComment']
            self.description = exif.parse_usercomment(user_comment)
        else:
            self.description = None
Ejemplo n.º 8
0
 def from_element(cls, element, namespace):
     name = element.findtext('{%s}name' % namespace).encode('utf_8')
     desc_tag = element.find('{%s}desc' % namespace)
     desc = None if desc_tag is None else desc_tag.text.encode('utf_8')
     lat = float(element.get('lat'))
     lon = float(element.get('lon'))
     ele_tag = element.find('{%s}ele' % namespace)
     ele = 0 if ele_tag is None else int(ele_tag.text)
     time_tag = element.find('{%s}time' % namespace)
     if time_tag is None:
         dt = None
     else:
         dt = datetime.datetime.strptime(time_tag.text, GPX_DATETIME_FORMAT)
     coord = Coord.deg(lat, lon, ele, dt)
     radius_tag = element.find('{%s}extensions/{%s}radius' %
                               (namespace, namespace))
     radius = 400 if radius_tag is None else int(radius_tag.text)
     enter = element.find('{%s}extensions/{%s}exit' %
                          (namespace, namespace)) is None
     return cls(name, coord, radius, enter, desc)
Ejemplo n.º 9
0
Archivo: photo.py Proyecto: Iv/igc2kmz
 def __init__(self, url, path=None):
     self.url = url
     components = urlparse.urlparse(self.url)
     self.name = os.path.splitext(os.path.basename(components.path))[0]
     if path:
         file = open(path)
     else:
         file = urllib2.urlopen(self.url) 
         if file.info().typeheader != 'image/jpeg':
             raise RuntimeError, '%s: not an image/jpeg' % self.url
     self.jpeg = exif.JPEG(file)
     if 'DateTimeOriginal' in self.jpeg.exif:
         self.dt = exif.parse_datetime(self.jpeg.exif['DateTimeOriginal'])
     elif 'DateTime' in self.jpeg.exif:
         self.dt = exif.parse_datetime(self.jpeg.exif['DateTime'])
     else:
         self.dt = datetime.datetime(2000, 1, 1)
     if 'GPSVersionID' in self.jpeg.exif:
         lat = exif.parse_angle(self.jpeg.exif['GPSLatitude'])
         if self.jpeg.exif['GPSLatitudeRef'] == 'S\0':
             lat = -lat
         lon = exif.parse_angle(self.jpeg.exif['GPSLongitude'])
         if self.jpeg.exif['GPSLongitudeRef'] == 'W\0':
             lon = -lon
         if 'GPSAltitude' in self.jpeg.exif:
             gps_altitude = self.jpeg.exif['GPSAltitude']
             ele = float(gps_altitude[0]) / gps_altitude[1]
             self.elevation_data = True
         else:
             ele = 0
             self.elevation_data = False
         self.coord = Coord.deg(lat, lon, ele)
     else:
         self.coord = None
         self.elevation_data = None
     if 'UserComment' in self.jpeg.exif:
         user_comment = self.jpeg.exif['UserComment']
         self.description = exif.parse_usercomment(user_comment)
     else:
         self.description = None