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)
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)
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)
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)
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)
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
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)
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