def load_and_update(): # read adelwheat inputs adel2 = AdelWheatDyn(seed=1, scene_unit='m',leaves=echap_leaves(xy_model='Soissons_byleafclass')) adel2.pars = adel2.read_pars(dir='adel_issue4') g2 = adel2.load(dir='adel_issue4') adel2.update_geometry(g2)
def create_init_MTG_with_tillers(nplants=1, sowing_density=250., plant_density=250., inter_row=0.15, nff=12, nsect=1, seed=1, leaves=None): stand = AgronomicStand(sowing_density=sowing_density, plant_density=plant_density, inter_row=inter_row, noise=0.04, density_curve_data=None) em = TillerEmission(primary_tiller_probabilities={ 'T1': 1., 'T2': 0.5, 'T3': 0.5, 'T4': 0.3 }) reg = TillerRegression(ears_per_plant=3) axp = AxePop(MS_leaves_number_probabilities={str(nff): 1}, Emission=em, Regression=reg) plants = axp.plant_list(nplants=nplants) hs = HaunStage(mean_nff=nff) pgen = PlantGen(HSfit=hs) axeT, dimT, phenT = pgen.adelT(plants) axeT = axeT.sort_values(['id_plt', 'id_cohort', 'N_phytomer']) devT = devCsv(axeT, dimT, phenT) adel = AdelWheatDyn(nplants=nplants, nsect=nsect, devT=devT, stand=stand, seed=seed, sample='sequence', leaves=leaves, scene_unit='m') age = hs.TT( reg.hs_debreg(nff=nff) ) # date a laquelle debut des regression. Problemes : 1) toutes les feuilles pas encore visibles, 2) il y a des feuilles senescentes g = adel.setup_canopy( age ) # MG : je ne crois pas que id_cohort soit renvoyee par la fonction R runAdel return adel, g
def create_init_MTG_with_tillers(nplants=1, sowing_density=250., plant_density=250., inter_row=0.15, nff=12, nsect=1, seed=1): stand = AgronomicStand(sowing_density=sowing_density, plant_density=plant_density, inter_row=inter_row, noise=0.04, density_curve_data=None) em = TillerEmission() reg = TillerRegression(ears_per_plant=3) axp = AxePop(MS_leaves_number_probabilities={str(nff): 1}, Emission=em, Regression=reg) plants = axp.plant_list(nplants=nplants) hs = HaunStage(mean_nff=nff) pgen = PlantGen(HSfit=hs) axeT, dimT, phenT = pgen.adelT(plants) axeT = axeT.sort_values(['id_plt', 'id_cohort', 'N_phytomer']) devT = devCsv(axeT, dimT, phenT) adel = AdelWheatDyn(nplants=nplants, nsect=nsect, devT=devT, stand=stand, seed=seed, sample='sequence', scene_unit='m') age = hs.TT(12) g = adel.setup_canopy(age) return adel, g
def test_add_metamer(): # create a plant with 3 metamers adel = AdelWheatDyn(seed=1234) g = adel.setup_canopy() labels = g.property('label') metamers = [vid for vid in labels if labels[vid].startswith('metamer')] assert len(metamers) == 3 # add empty new metamer vid = adel.add_metamer(g, 1, 'MS') new_metamer = g.node(vid) metamers = [vid for vid in labels if labels[vid].startswith('metamer')] assert len(metamers) == 4 internode, sheath, blade = new_metamer.components() assert blade.length == 0 elts = [c.label for c in blade.components()] assert elts == ['baseElement', 'topElement'] # grow leaf and check components blade.length = 6 blade.visible_length = 3 adel.update_geometry(g) assert blade.area > 0 elts = [c.label for c in blade.components()] assert len(elts) > 2
def old_load_and_update(): # But working for old inputs adel3 = AdelWheatDyn(seed=1234, scene_unit='m') g3 = adel3.load(dir='adel_saved') adel3.update_geometry(g3)
for vid_elt in g.components_at_scale(vid_org,5): g.property('senesced_length')[vid_elt] = 0. g.property('senesced_area')[vid_elt] = 0. if g.property('label')[vid_org] == 'blade' : g.property('width')[vid_org] = width_dict[org_id] g.property('shape_max_width')[vid_org] = width_dict[org_id] g.property('visible_length')[vid_org] = elt_dict[ tuple(list(org_id) + ['LeafElement1']) ]['length'] g.property('age')[vid_org] = age_dict[org_id] elif g.property('label')[vid_org] == 'sheath' : g.property('diameter')[vid_org] = width_dict[org_id] g.property('visible_length')[vid_org] = elt_dict[tuple(list(org_id) + ['StemElement'])]['length'] adel.update_geometry(g) adel.plot(g) # Save mtg adel.save(g) # save adel pars adel.save_pars() adel2 = AdelWheatDyn(seed=1, scene_unit='m',leaves=echap_leaves(xy_model='Soissons_byleafclass')) adel2.pars = adel2.read_pars() g2 = adel2.load() adel2.update_geometry(g2) adel2.plot(g2)