compute_feat_inertia: Compute the inertia of the individual feathers

View source: R/inertiafunctions.R

compute_feat_inertiaR Documentation

Compute the inertia of the individual feathers

Description

Compute the inertia of the individual feathers

Usage

compute_feat_inertia(dat_mat, dat_feat_curr, dat_bird_curr)

Arguments

dat_mat

Dataframe related to the current species input as a dataframe with the following structure:

  • materialMaterial information. Must include the following: "Cortex", "Medullary"

  • densityDensity of each material (kg/m^3)

dat_feat_curr

Dataframe related to the current bird wing feathers input as a dataframe with the following structure:

  • featherFeather ID code. Must be in standard format i.e. 1st primary is "P1", third secondary is "S3", etc. Alula feathers should be grouped and named "alula".

  • m_fMass of feather in the same row as the appropriate feather ID code (kg)

  • l_calLength of calamus in the same row as the appropriate feather ID code (m)

  • l_vaneLength of rachis/vane in the same row as the appropriate feather ID code (m)

  • w_calWidth (diameter) of calamus in the same row as the appropriate feather ID code (m)

  • w_vpWidth of proximal vane (average value) in the same row as the appropriate feather ID code (m)

  • w_vdWidth of distal vane (average value) in the same row as the appropriate feather ID code (m)

  • vane_angleInterior angle between the rachis and calamus (degrees)

NOTE: Alula feathers will be treated as point mass so only the mass of the feathers is required. Other columns can be left blank.

dat_bird_curr

Dataframe related to the current bird wing that must include the following columns:

  • barb_radiusRadius of feather barb for current species (m)

  • barb_distanceDistance between feather barbs for current species (m)

Value

A list with one entry per flight feather. Each primary feather includes the following variables:

  • I_pria 3x3 matrix representing the moment of inertia about each feather calamus tip (kg-m^2).

  • CG_pria 1x3 vector (x,y,z) representing the center of gravity of the primary feather (m).

  • m_pria double representing the mass of the primary feather (kg).

Each secondary feather includes the following variables:

  • I_seca 3x3 matrix representing the moment of inertia about each feather calamus tip (kg-m^2).

  • CG_seca 1x3 vector (x,y,z) representing the center of gravity of the primary feather (m).

  • m_seca double representing the mass of the primary feather (kg).

Examples

# refer to the vignette
library(AvInertia)

# load data
data(dat_id_curr, package = "AvInertia")
data(dat_bird_curr, package = "AvInertia")
data(dat_feat_curr, package = "AvInertia")
data(dat_bone_curr, package = "AvInertia")
data(dat_mat, package = "AvInertia")
data(clean_pts, package = "AvInertia")

# 1. Determine the center of gravity of the bird's torso (including the legs)
dat_torsotail_out = massprop_restbody(dat_id_curr, dat_bird_curr)
# 2. Calculate the inertia of the flight feathers about the tip of the calamus
feather_inertia <- compute_feat_inertia(dat_mat, dat_feat_curr, dat_bird_curr)
# 3. Determine the center of gravity of one of the bird's wings
dat_wing_out      = massprop_birdwing(dat_id_curr, dat_bird_curr,
dat_bone_curr, dat_feat_curr, dat_mat, clean_pts,
feather_inertia, plot_var = 0)
# Visualize the center of gravity of each wing component in the x and y axis
dat_wing_out      = massprop_birdwing(dat_id_curr, dat_bird_curr,
dat_bone_curr, dat_feat_curr, dat_mat, clean_pts,
feather_inertia, plot_var = "yx")
# or the y and z axis
dat_wing_out      = massprop_birdwing(dat_id_curr, dat_bird_curr,
dat_bone_curr, dat_feat_curr, dat_mat, clean_pts,
feather_inertia, plot_var = "yz")
# 4. Combine all data and obtain the center of gravity, moment of inertia
# and principal axes of the bird
curr_full_bird      = combine_inertialprop(dat_torsotail_out,dat_wing_out,
dat_wing_out, dat_id_curr, dat_bird_curr, symmetric=TRUE)


AvInertia documentation built on March 24, 2022, 5:07 p.m.