kopia lustrzana https://github.com/OpenDroneMap/ODM
rodzic
c9fa4a7600
commit
848002d117
|
@ -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()
|
||||
|
||||
|
||||
|
|
|
@ -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())
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue