kopia lustrzana https://github.com/OpenDroneMap/ODM
rodzic
c9fa4a7600
commit
848002d117
|
@ -4,7 +4,7 @@ import subprocess
|
||||||
import log
|
import log
|
||||||
import dataset
|
import dataset
|
||||||
import system
|
import system
|
||||||
from tasks import ODMTaskManager
|
import tasks
|
||||||
|
|
||||||
class ODMApp:
|
class ODMApp:
|
||||||
''' ODMApp - a class for ODM Activities
|
''' ODMApp - a class for ODM Activities
|
||||||
|
@ -17,12 +17,24 @@ class ODMApp:
|
||||||
self.photos = []
|
self.photos = []
|
||||||
# Task manager
|
# Task manager
|
||||||
# configure and schedule tasks
|
# configure and schedule tasks
|
||||||
self.task_manager = ODMTaskManager(self)
|
self.task_manager = tasks.ODMTaskManager(self)
|
||||||
|
|
||||||
# Run all tasks given an starting point
|
# 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()
|
self.task_manager.run_tasks()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,13 +25,21 @@ if __name__ == '__main__':
|
||||||
# internally configure all tasks
|
# internally configure all tasks
|
||||||
app = ODMApp(config.args)
|
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())
|
log.ODM_INFO('Runnning OpenDroneMap app - %s' % system.now())
|
||||||
|
|
||||||
# run all tasks
|
# run single task
|
||||||
app.run_all(init_task_id)
|
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())
|
log.ODM_INFO('OpenDroneMap app finished - %s' % system.now())
|
|
@ -27,6 +27,7 @@ class ODMTaskManager(object):
|
||||||
self.odm_app = odm_app
|
self.odm_app = odm_app
|
||||||
self.initial_task_id = 0
|
self.initial_task_id = 0
|
||||||
self.current_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)
|
self.tasks = self.init_tasks(tasks_dict, self.odm_app)
|
||||||
|
|
||||||
def init_tasks(self, _tasks_dict, _odm_app):
|
def init_tasks(self, _tasks_dict, _odm_app):
|
||||||
|
@ -104,7 +105,7 @@ class ODMTaskManager(object):
|
||||||
return tasks
|
return tasks
|
||||||
|
|
||||||
def run_tasks(self):
|
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
|
# catch task with current id
|
||||||
task = self.tasks[str(id)]
|
task = self.tasks[str(id)]
|
||||||
# update task tracking
|
# update task tracking
|
||||||
|
|
Ładowanie…
Reference in New Issue