# Path: forest/core/Config.py



from ..core.Engine import *
from ..core.Bob import *
from ..bobs.Bobs import *
from ..core import Config
import copy
import math
import multiprocessing
import numpy as np
import gdal
"""
Copyright (c) 2017 Eric Shook. All rights reserved.
Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
@author: eshook (Eric Shook, eshook@gmail.edu)
@contributors: (Luyi Hunter, chen3461@umn.edu; Xinran Duan, duanx138@umn.edu)
@contributors: <Contribute and add your name here!>
"""





class TileEngine(Engine):
    def __init__(self):
        # FIXME: Need an object to describe type of engines rather than a string
        super(TileEngine,self).__init__("TileEngine")

        self.split_stacks = [] # List of Data stacks to maintain (only when split into tiles)
        
    # Split (<)
    def split(self):

        # If already split, do nothing.
        if self.is_split is True:
            return
        
        # Set split to True so engine knows that the data stack has been split 
        self.is_split = True 


# Path: forest/core/Config.py



# Path: forest/engines/Engines.py
from ..core.Engine import *
from ..core.Bob import *
from ..bobs.Bobs import *
from ..core import Config
import copy
import math
import multiprocessing
import numpy as np
import gdal

"""
Copyright (c) 2017 Eric Shook. All rights reserved.
Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
@author: eshook (Eric Shook, eshook@gmail.edu)
@contributors: (Luyi Hunter, chen3461@umn.edu; Xinran Duan, duanx138@umn.edu)
@contributors: <Contribute and add your name here!>
"""





class TileEngine(Engine):
    def __init__(self):
        # FIXME: Need an object to describe type of engines rather than a string
        super(TileEngine,self).__init__("TileEngine")

        self.split_stacks = [] # List of Data stacks to maintain (only when split into tiles)
        
    # Split (<)
    def split(self):

        # If already split, do nothing.
        if self.is_split is True:
            return
        
        # Set split to True so engine knows that the data stack has been split 
        self.is_split = True 


        num_tiles = Config.n_cores # The the number of tiles to split into as the number of cores