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
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")
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
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