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)
Exemple #2
0
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
Exemple #4
0
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)