VPalm Parameters

VPalm is a submodule of XPalm that provides a set of functions to reconstruct the architecture of palm trees based on a set of parameters and allometric relations.

Parameters are defined in a YAML file and a template is provided:

using XPalm

VPalm = XPalm.load_vpalm!()

file = joinpath(dirname(dirname(pathof(XPalm))), "test", "references", "vpalm-parameter_file.yml")
parameters = VPalm.read_parameters(file)

Parameters definition

The VPalm geometry parameters are listed below:

The optional juvenile parameters below are enabled by default only in the dynamic XPalm–VPalm coupling file. They are intentionally absent from the linked standalone static template, which therefore retains the historical allometries.

ParameterValueDescription
seed0Seed for random number generation
nb_leaves_emitted145Number of leaves emitted since the seed
nb_internodes_before_planting20Number of internodes before planting (estimation)
nb_leaves_in_sheath8Number of leaves in the sheath (rank <1)
phyllotactic_angle_mean136.67Frond phyllotactic angle mean (°)
phyllotactic_angle_sd0.48Frond phyllotactic angle standard deviation (°)
initial_stem_height0.05Stem height at planting (m)
stem_height_coefficient0.018Coefficient used in the computation of stem height
internode_length_at_maturity0.03Growth in stem height per leaf (~internode length) at adult stage (m)
stem_growth_start120Number of leaves emitted when stem starts to grow in height
stem_height_variation0.50Variation in stem height (m, never > 30% of stem height)
stem_bending_mean0Average stem bending
stem_bending_sd0Standard deviation around mean stem bending
stem_diameter_max0.77Maximum stem diameter (m)
stem_diameter_slope0.007Slope of the logit function for stem diameter
stem_diameter_inflection1.69Inflection point of the logit function for stem diameter
stem_diameter_residual0.063Residual of stem diameter (m)
stem_diameter_snag0.3Diameter of stem considered as snag (m)
stem_base_shrinkage0.1Shrinkage at stem base (smaller = sharper)
stem_top_shrinkage0.3Shrinkage at stem top (smaller = sharper)
internode_rank_no_expansion9Rank of internode where expansion stops
internode_final_length0.01Length of internode around apical meristem (m)
leaf_max_angle90Maximum angle of the leaf (°)
leaf_slope_angle0.05Slope of leaf angle for logistic function
leaf_inflection_angle40Inflection point of leaf angle for logistic function
cpoint_decli_intercept10.47Intercept of linear regression of c-point declination
cpoint_decli_slope1.33Slope of linear regression of c-point declination
cpoint_angle_SDP5.32Standard deviation of c-point angle
rachis_twist_initial_angle4.0Initial twist angle of rachis
rachis_twist_initial_angle_sdp0.0Standard deviation of initial twist angle of rachis
petiole_rachis_ratio_mean0.25Mean ratio of petiole length to rachis length
petiole_rachis_ratio_sd0.033Standard deviation of petiole to rachis length ratio
petiole_nb_segments15Number of segments in the petiole
rachis_nb_segments100Number of segments in the rachis
leafLengthIntercept351.20Intercept for leaf length calculation
leafLengthSlope0.058Slope for leaf length calculation
rachisLength_SDP15.25Standard deviation of rachis length
rachis_fresh_weight[array]Fresh weight of rachis (g) for each leaf
leaf_length_intercept0.0Intercept of the linear relationship between rachis length and biomass (m) (optional, can use rachis_final_lengths instead)
leaf_length_slope1.31Slope of the linear relationship between rachis length and biomass (m/kg) (optional, can use rachis_final_lengths instead)
rachis_final_lengths[array]Final rachis lengths (m) from oldest to rank 1 leaf (optional, can use leaf_length_intercept + leaf_length_slope instead)
leaflet_lamina_angle140V-shape angle of leaflet (°)
leaflets_nb_max171.72Maximum number of leaflets on a leaf
leaflets_nb_min20Minimum number of leaflets on a leaf
leaflets_nb_slope0.25Slope of logistic relationship between rachis length and nb leaflets
leaflets_nb_inflexion2.33Inflection point of logistic relationship (rachis length vs nb leaflets)
nbLeaflets_SDP6Standard deviation around computed value for given rachis length
leaflet_position_shape_coefficient2.48Shape coefficient for placing leaflets along rachis
leaflets_between_to_within_group_ratio2.0Ratio of inter-group to intra-group leaflets spacing
relative_position_bpoint0.66Relative position of b-point
relative_position_bpoint_sd0.034Standard deviation of relative position of b-point
leaflet_length_at_b_intercept0.61Intercept of leaflet length at b-point (m)
leaflet_length_at_b_slope0.054Slope of leaflet length at b-point
leaflet_width_at_b_intercept0.063Intercept of leaflet width at b-point
leaflet_width_at_b_slope-0.004Slope of leaflet width at b-point
relative_length_first_leaflet0.18Relative length of first leaflet
relative_length_last_leaflet0.52Relative length of last leaflet
relative_position_leaflet_max_length0.52Relative position of leaflet with maximum length
relative_width_first_leaflet0.22Relative width of first leaflet
relative_width_last_leaflet0.53Relative width of last leaflet
relative_position_leaflet_max_width0.61Relative position of leaflet with maximum width
leaflet_xm_intercept0.18Base value for xm (position of maximum width) for leaflets
leaflet_xm_slope0.08How much xm changes per unit of relative position along rachis
leaflet_ym_intercept0.51Base value for relative width at maximum width position
leaflet_ym_slope-0.025How much relative width changes per unit of position along rachis
leaflet_axial_angle_c78.22Leaflet axial angle parameter c
leaflet_axial_angle_a10.43Leaflet axial angle parameter a
leaflet_axial_angle_slope-4.69Leaflet axial angle slope
leaflet_axial_angle_sdp8.06Standard deviation of leaflet axial angle
leaflet_stiffness1500Leaflet stiffness
leaflet_stiffness_sd7000Standard deviation of leaflet stiffness
leaflet_frequency_high[array]Frequency of high position leaflets along 10 rachis sub-sections
leaflet_frequency_low[array]Frequency of low position leaflets along 10 rachis sub-sections
nbInflorescences0Number of inflorescences
leaf_base_width0.3Adult width of leaf base (m)
leaf_base_width_juvenile0.01Optional juvenile width of leaf base (m)
leaf_base_height_juvenile0.001Optional juvenile height of leaf base (m)
leaf_base_dimensions_juvenile_max_emitted_leaf60Last emitted leaf at the juvenile base dimensions
leaf_base_dimensions_adult_min_emitted_leaf110First emitted leaf at the adult base dimensions
cpoint_width_intercept0.01Rachis width at c-point intercept for linear interpolation (m)
cpoint_width_slope0.012Rachis width at c-point slope for linear interpolation
cpoint_width_juvenile_coefficient0.0167Optional juvenile width at a 1 m rachis (m)
cpoint_width_juvenile_exponent0.5381Optional juvenile width power exponent
cpoint_height_juvenile_coefficient0.0106Optional juvenile height at a 1 m rachis (m)
cpoint_height_juvenile_exponent0.5125Optional juvenile height power exponent
cpoint_dimensions_juvenile_max_rachis_length1.71End of the juvenile section allometry (m)
cpoint_dimensions_adult_min_rachis_length2.45Start of the adult section allometry (m)
rachis_width_tip0.003Width at tip of rachis (m)
leaf_base_height0.1Adult height of leaf base (m)
cpoint_height_width_ratio0.57Height to width ratio at c-point
height_rachis_tappering-0.93Tapering factor for rachis height
leaflet_radial_high_a0_sup26.30Upper bound of leaflet angle at position 0 for high position leaflets
leaflet_radial_high_amax_sup60.49Upper bound of maximum angle for high position leaflets
leaflet_radial_high_a0_inf16.66Lower bound of angle at position 0 for high position leaflets
leaflet_radial_high_amax_inf9.08Lower bound of maximum angle for high position leaflets
leaflet_radial_low_a0_sup-7.91Upper bound of angle at position 0 for low position leaflets
leaflet_radial_low_amax_sup-4.83Upper bound of maximum angle for low position leaflets
leaflet_radial_low_a0_inf-12.29Lower bound of angle at position 0 for low position leaflets
leaflet_radial_low_amax_inf-34.33Lower bound of maximum angle for low position leaflets
elastic_modulus2221.67Elastic modulus for biomechanical calculations
shear_modulus68.20Shear modulus for biomechanical calculations
Juvenile rachis sections

The six cpoint_*_juvenile_* and cpoint_dimensions_* parameters are an optional, indivisible set. Their power laws were fitted to 14 EKA1 rachises measured between 0.60 and 1.71 m. The measurement position was not written explicitly in the JPCE workbook and is assumed to be the C point from its context. A smooth transition from 1.71 to 2.45 m reconnects the juvenile fits to the historical adult VPalm allometry. If the six parameters are omitted, VPalm uses the historical allometry at every rachis length.

Provisional juvenile petiole base

The four optional leaf_base_*_juvenile and leaf_base_dimensions_*_emitted_leaf parameters reuse the 1 cm × 1 mm setting from the JPCE EKA1 reconstruction script. JPCE did not measure these dimensions, so they are a visual ontogenetic hypothesis rather than a calibrated allometry. VPalm interpolates them logarithmically to the adult dimensions between emitted leaves 60 and 110. Omit the complete set to retain the historical fixed adult base dimensions.

Biomechanical Model Parameters

ParameterValueDescription
nb_sections100Number of sections for discretizing constant form sections
angle_max21.0Maximum flexion and torsion angles between sections (°)
iterations15Number of iterations for recursive computation