improve running engine with args

Former-commit-id: 9f176282ef
pull/1161/head
edgarriba 2015-11-19 15:41:07 +00:00
rodzic c9fa4a7600
commit 848002d117
3 zmienionych plików z 32 dodań i 11 usunięć

Wyświetl plik

@ -4,7 +4,7 @@ import subprocess
import log
import dataset
import system
from tasks import ODMTaskManager
import tasks
class ODMApp:
''' ODMApp - a class for ODM Activities
@ -17,12 +17,24 @@ class ODMApp:
self.photos = []
# Task manager
# configure and schedule tasks
self.task_manager = ODMTaskManager(self)
self.task_manager = tasks.ODMTaskManager(self)
# Run all tasks given an starting point
def run_all(self, initial_task_id):
def run_all(self, initial_task, final_task):
self.task_manager.initial_task_id = initial_task_id
# found ids for tasks
t_dict = tasks.tasks_dict
initial_task_id = [k for k in t_dict if t_dict[k]==initial_task][0]
final_task_id = [k for k in t_dict if t_dict[k]==final_task][0]
if initial_task_id > final_task_id:
log.ODM_ERROR('Initial task must be lower than final')
return
# setup task manager
self.task_manager.initial_task_id = int(initial_task_id)
self.task_manager.final_task_id = int(final_task_id)
# run defined pipeline
self.task_manager.run_tasks()

Wyświetl plik

@ -25,13 +25,21 @@ if __name__ == '__main__':
# internally configure all tasks
app = ODMApp(config.args)
# set from where we want to start
# by default we will start from the beginnig
init_task_id = 0
log.ODM_INFO('Runnning OpenDroneMap app - %s' % system.now())
# run all tasks
app.run_all(init_task_id)
# run single task
if config.args.get('run_only') is not None:
# task to run
tasks = config.args['run_only']
app.run_all(tasks, tasks)
# run multiple tasks
else:
# get initial and final tasks
initial_task = config.args['start_with']
final_task = config.args['end_with']
# run tasks
app.run_all(initial_task, final_task)
log.ODM_INFO('OpenDroneMap app finished - %s' % system.now())

Wyświetl plik

@ -27,6 +27,7 @@ class ODMTaskManager(object):
self.odm_app = odm_app
self.initial_task_id = 0
self.current_task_id = 0
self.final_task_id = len(tasks_dict)
self.tasks = self.init_tasks(tasks_dict, self.odm_app)
def init_tasks(self, _tasks_dict, _odm_app):
@ -104,7 +105,7 @@ class ODMTaskManager(object):
return tasks
def run_tasks(self):
for id in range(self.initial_task_id, len(self.tasks)):
for id in range(self.initial_task_id, self.final_task_id + 1):
# catch task with current id
task = self.tasks[str(id)]
# update task tracking