def task_to_xcsoar(df_task, outdir, filename_base): filename_out = os.path.join(outdir, filename_base + '.tsk') print("Output '%s'" % filename_out) with open(filename_out, 'w') as fp: # codecs.open(..., encoding='...') writer = Writer(fp) with writer.write_task(type=TaskType.RACING): # encoding='...' for i, tp in df_task.iterrows(): with writer.write_point(type=tp.Type): writer.write_waypoint( name=tp.Name, latitude=tp.Lat, longitude=tp.Lon ) # ToDo: ENHANCEMENT #writer.write_observation_zone(tp.ObservationZone) # ToDo: Add a aerofiles.xcsoar.ObservationZone object #https://github.com/Turbo87/aerofiles/blob/master/aerofiles/xcsoar/writer.py d = {} for key, val in tp.ObservationZone.__dict__.items(): d[key] = val writer.write_observation_zone(**d)
def write_xcsoar_task(fp, task): writer = Writer(fp) params = { 'type': get_task_type(task), 'task_scored': 0, # task.task_scored, 'aat_min_time': 0, # task.aat_min_time, 'start_max_speed': 0, # task.start_max_speed, 'start_max_height': 0, # task.start_max_height, 'start_max_height_ref': 0, # task.start_max_height_ref, 'finish_min_height': 0, # task.finish_min_height, 'finish_min_height_ref': 0, # task.finish_min_height_ref, 'fai_finish': True, # task.fai_finish, 'min_points': 0, # task.min_points, 'max_points': 0, # task.max_points, 'homogeneous_tps': 0, # task.homogeneous_tps, 'is_closed': True, # task.is_closed, } print(params) # Write <Task> tag with writer.write_task(**params): # Iterate over turnpoints # for i, turnpoint in enumerate(task): for turnpoint in task.turnpoints: # print(task.turnpoints) # Write <Point> tag with writer.write_point( type=get_point_type(task, turnpoint.point_index)): print(turnpoint) # Write <Waypoint> tag writer.write_waypoint( name=turnpoint.name, latitude=turnpoint.latitude, longitude=turnpoint.longitude, id=turnpoint.point_index, comment="", # turnpoint.comment, altitude=turnpoint.elevation, ) params = get_observation_zone_params(turnpoint) writer.write_observation_zone(**params)
def write_xcsoar_task(fp, task): writer = Writer(fp) params = { 'type': get_task_type(task), 'task_scored': task.task_scored, 'aat_min_time': task.aat_min_time, 'start_max_speed': task.start_max_speed, 'start_max_height': task.start_max_height, 'start_max_height_ref': task.start_max_height_ref, 'finish_min_height': task.finish_min_height, 'finish_min_height_ref': task.finish_min_height_ref, 'fai_finish': task.fai_finish, 'min_points': task.min_points, 'max_points': task.max_points, 'homogeneous_tps': task.homogeneous_tps, 'is_closed': task.is_closed, } # Write <Task> tag with writer.write_task(**params): # Iterate over turnpoints for i, turnpoint in enumerate(task): # Write <Point> tag with writer.write_point(type=get_point_type(task, i)): # Write <Waypoint> tag writer.write_waypoint( name=turnpoint.name, latitude=turnpoint.lat, longitude=turnpoint.lon, id=turnpoint.id, comment=turnpoint.comment, altitude=turnpoint.altitude, ) # Write <ObservationZone> tag params = get_observation_zone_params(turnpoint.sector) writer.write_observation_zone(**params)
def task_to_xcsoar(df_task, outdir, filename_base): filename_out = os.path.join(outdir, filename_base + '.tsk') print("Output '%s'" % filename_out) with open(filename_out, 'w') as fp: # codecs.open(..., encoding='...') writer = Writer(fp) with writer.write_task(type=TaskType.RACING): # encoding='...' for i, tp in df_task.iterrows(): with writer.write_point(type=tp.Type): writer.write_waypoint(name=tp.Name, latitude=tp.Lat, longitude=tp.Lon) # ToDo: ENHANCEMENT #writer.write_observation_zone(tp.ObservationZone) # ToDo: Add a aerofiles.xcsoar.ObservationZone object #https://github.com/Turbo87/aerofiles/blob/master/aerofiles/xcsoar/writer.py d = {} for key, val in tp.ObservationZone.__dict__.items(): d[key] = val writer.write_observation_zone(**d)