Exemple #1
0
    def load(index=0, dir='./adel_saved', basename=None, load_geom=True):
        if basename is None:
            if not os.path.exists(dir):
                os.mkdir(dir)
            basename_geom = dir + '/scene%04d' % (index)
            basename_adel = dir + '/adel%04d' % (index)
        else:
            basename_adel = basename_geom = basename
        fgeom = basename_geom + '.bgeom'
        fg = basename_adel + '.pckl'
        if not os.path.exists(fgeom) or not os.path.exists(fg):
            raise IOError('adel cannot find saved files')

        f = open(fg)
        g = pickle.load(f)
        f.close()

        # backward compatibility
        if isinstance(g, list):
            g, age = g
            root = g.node(0)
            meta = {'canopy_age': age}
            if 'meta' not in g.property_names():
                root.meta = meta
            else:
                root.meta.update(meta)

        if load_geom:
            s = Scene()
            s.read(fgeom, 'BGEOM')
            geom = {sh.id: sh.geometry for sh in s}
            g.add_property('geometry')
            g.property('geometry').update(geom)

        return g
Exemple #2
0
def convex():
    s = Scene()
    s.read('pruning.geom')
    assert len(s) == 740

    leaves = get_leaves_from_scene(s)
    assert len(leaves) == 177

    return leaves
 def load(self, filename):
     """
     :param filename: filename to convert into python object
     :return: a python object interpreted from string "text"
     """
     filename = Path(filename)
     if filename.exists():
         try:
             from openalea.plantgl.all import Scene
             sc = Scene()
             sc.clear()
             sc.read(str(filename), "BGEOM")
             return sc
         except ImportError:
             warnings.warn("You must install PlantGL if you want to load a BGEOM object.")
         except Exception, e:
             print e
             warnings.warn("Impossible to load the scene")
Exemple #4
0
 def load(self, index=0, dir = './adel_saved'):
     from openalea.plantgl.all import Scene
     
     fgeom = dir + '/scene%04d.bgeom'%(index)
     fg = dir + '/adel%04d.pckl'%(index)
     
     s = Scene()
     s.read(fgeom, 'BGEOM')
     geom = {sh.id:sh.geometry for sh in s}
 
     f = open(fg)
     g, TT = pickle.load(f)
     f.close()
     
     self.canopy_age = TT
     
     g.add_property('geometry')
     g.property('geometry').update(geom)
     
     return g, TT
Exemple #5
0
 def load(self, filename):
     """
     :param filename: filename to convert into python object
     :return: a python object interpreted from string "text"
     """
     filename = Path(filename)
     if filename.exists():
         try:
             from openalea.plantgl.all import Scene
             sc = Scene()
             sc.clear()
             sc.read(str(filename), "BGEOM")
             return sc
         except ImportError:
             warnings.warn(
                 "You must install PlantGL if you want to load a BGEOM object."
             )
         except Exception, e:
             print e
             warnings.warn("Impossible to load the scene")
def test_boxcounting():
    from openalea.plantgl.all import Scene
    s = Scene()
    s.read('pruning.geom')
    log_n_delta, log_inv_delta, n_delta, delta = boxcounting(s,
                                                             show=False,
                                                             maxd=5)

    try:
        log_n_delta_2, log_inv_delta_2, n_delta, delta_2 = boxcounting(
            s, show=False, maxd=5, library='fractalysis')
        assert log_n_delta == log_n_delta_2
        assert log_inv_delta == log_inv_delta_2
        assert n_delta == n_delta_2
    except:
        pass

    try:
        boxcounting(s, show=False, maxd=5, library='wrong_name')
        assert False
    except:
        assert True