Task snapshot.

debian-sid
Tom Payne 15 years ago
parent 38836d21a3
commit c5b62b47dd

@ -29,6 +29,7 @@ clean:
$(CC) -o $@ $(CFLAGS) $^ $(LIBS)
EXAMPLES=examples/2008-07-28-XPG-KVE-02.kmz \
examples/2008-06-07-FLY-6113-01.kmz \
examples/2008-06-16-xgd-001-01.kmz \
examples/2008-09-05-CGP-XAGC-01-ebessos.kmz \
examples/858umbh1.kmz \
@ -181,6 +182,19 @@ examples/2007-04-22-FLY-5094-01.kmz: examples/2007-04-22-FLY-5094-01.igc example
-p http://qking.web.cern.ch/qking/2007/p_chamonix/images/img_8180.jpg \
-d "After seven and half hours and 155km I finally prepare to land back at the landing field near the Plan Praz telecabine - what an amazing day!"
examples/2008-06-07-FLY-6113-01.kmz: examples/2008-06-07-FLY-6113-01.igc examples/2008-06-07-FLY-6113-01.gpx examples/pgcomps.org.uk.kml
$(IGC2KMZ) -z 2 -o $@ -r examples/pgcomps.org.uk.kml \
-t examples/2008-06-07-FLY-6113-01.gpx \
-i examples/2008-06-07-FLY-6113-01.igc
examples/2008-06-07-FLY-6113-01.gpx: examples/2008-06-07-FLY-6113-01.igc
$(IGC2TASK) -o $@ $< \
-n "British Open Pedro Bernardo Task 5" \
--tz-offset 2 \
--start-radius 21000 \
--start-time 14:45 \
--ess-radius 1000
examples/2008-06-16-xgd-001-01.kmz: examples/2008-06-16-xgd-001-01.igc examples/2008-06-16-xgd-001-01.gpx examples/ukxcl.kml
$(IGC2KMZ) -z 2 -o $@ -r examples/ukxcl.kml \
-i $< \
@ -228,6 +242,13 @@ examples/xcontest.kml: $(BRAND2KML)
-u http://www.xcontest.org/ \
-i http://www.xcontest.org/img/xcontest.gif
examples/pgcomps.org.uk.kml: $(BRAND2KML)
$(BRAND2KML) \
-o $@ \
-n "British Paragliding Competitions" \
-u http://www.pgcomps.org.uk/ \
-i http://www.pgcomps.org.uk/ssl/aerofoil_shadow_348.gif
examples/ukxcl.kml: $(BRAND2KML)
$(BRAND2KML) \
-o $@ \

@ -88,7 +88,7 @@ def main(argv):
if len(args) > 2:
parser.error('excess arguments on command line: %s' % repr(args[2:]))
#
igc = IGC(open(argv[1]))
igc = IGC(open(args[1]))
if not igc.c:
parser.error('%s does not contain a task' % repr(argv[1]))
tps = []
@ -113,7 +113,7 @@ def main(argv):
if not start:
parser.error('start turnpoint %s not found' % repr(options.start))
else:
start = task.tps[0]
start = task.tps[1]
if options.start_radius:
start.radius = int(options.start_radius)
if options.start_time:
@ -133,7 +133,7 @@ def main(argv):
parser.error('end of speed section turnpoint %s not found'
% repr(options.ess))
else:
options.ess = task.tps[-2]
ess = task.tps[-2]
if options.ess_radius:
ess.radius = int(options.ess_radius)
#

File diff suppressed because it is too large Load Diff

@ -734,6 +734,8 @@ def make_task_folder(globals, task):
for i in xrange(0, len(task.tps) - 1):
tp0 = task.tps[i]
tp1 = task.tps[i + 1]
if tp0.name == tp1.name and tp0.radius == tp1.radius:
continue
coord0 = tp0.coord.coord_at(tp0.coord.initial_bearing_to(tp1.coord),
tp0.radius)
theta = tp1.coord.initial_bearing_to(tp0.coord)

@ -82,19 +82,19 @@ class Turnpoint(object):
def from_element(cls, element):
name = element.findtext('name').encode('utf_8')
desc_tag = element.find('desc')
desc = desc_tag.text.encode('utf_8') if desc_tag else None
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('ele')
ele = int(ele_tag.text) if ele_tag else 0
ele = 0 if ele_tag is None else int(ele_tag.text)
time_tag = element.find('time')
if time_tag:
dt = datetime.datetime.strptime(time_tag.text, '%Y-%m-%dT%H:%M:%SZ')
else:
if time_tag is None:
dt = None
else:
dt = datetime.datetime.strptime(time_tag.text, '%Y-%m-%dT%H:%M:%SZ')
coord = Coord.deg(lat, lon, ele, dt)
radius_tag = element.find('extensions/radius')
radius = int(radius_tag.text) if radius_tag else 400
radius = 400 if radius_tag is None else int(radius_tag.text)
enter = element.find('extensions/exit') is None
return cls(name, coord, radius, enter, desc)
@ -120,7 +120,7 @@ class Task(object):
@classmethod
def from_element(cls, element):
name_tag = element.find('name')
name = name_tag.text.encode('utf_8') if name_tag else None
name = None if name_tag is None else name_tag.text.encode('utf_8')
tps = map(Turnpoint.from_element, element.findall('rtept'))
return cls(name, tps)

Loading…
Cancel
Save