prepImageData: Prepares raw imaging data for further processing

prepImageDataR Documentation

Prepares raw imaging data for further processing

Description

Forms the prime traits by selecting a subset of the traits in a data.frame of imaging data produced by the Lemna Tec Scanalyzer. The imaging traits to be retained are specified using the traits and labsCamerasViews arguments. Some imaging traits are divided by 1000 to convert them from pixels to kilopixels. Also added are factors and explanatory variates that might be of use in an analysis of the data.

Usage

prepImageData(data, individualId = "Snapshot.ID.Tag", 
              imageTimes = "Snapshot.Time.Stamp", 
              timeAfterStart = "Time.after.Planting..d.",
              PSAcolumn = "Projected.Shoot.Area..pixels.", 
              potIDcolumns = NULL, 
              idcolumns = c("Genotype.ID","Treatment.1"), 
              traits = list(all = c("Area", 
                                    "Boundary.Points.To.Area.Ratio", 
                                    "Caliper.Length", "Compactness", 
                                    "Convex.Hull.Area"), 
                            side = c("Center.Of.Mass.Y", 
                                     "Max.Dist.Above.Horizon.Line")),
              labsCamerasViews = list(all = c("SV1", "SV2", "TV"),
                                      side = c("SV1", "SV2")), 
              smarthouse.lev = NULL, 
              calcWaterUse = TRUE, ...)

Arguments

data

A data.frame containing the columns specified by individualId, imageTimes, timeAfterStart, PSAcolumn and idcolumns, provided potIDcolumns is NULL, or potIDcolumns, as well as traits, cameras and the following columns:

Smarthouse, Lane, Position, Weight.Before, Weight.After, Water.Amount,

Projected.Shoot.Area..pixels.

The defaults for the arguments to prepImageData requires a data.frame containing the following columns, although not necessarily in the order given here:

Smarthouse, Lane, Position, Weight.Before, Weight.After, Water.Amount,

Projected.Shoot.Area..pixels., Area.SV1, Area.SV2, Area.TV,

Boundary.Points.To.Area.Ratio.SV1, Boundary.Points.To.Area.Ratio.SV2,

Boundary.Points.To.Area.Ratio.TV, Caliper.Length.SV1,

Caliper.Length.SV2, Caliper.Length.TV,

Compactness.SV1, Compactness.SV2, Compactness.TV,

Convex.Hull.Area.SV1, Convex.Hull.Area.SV2, Convex.Hull.Area.TV,

Center.Of.Mass.Y.SV1, Center.Of.Mass.Y.SV2,

Max.Dist.Above.Horizon.Line.SV1, Max.Dist.Above.Horizon.Line.SV2.

individualId

A character giving the name of the column that contains the unique Id for each individual.

imageTimes

A character giving the name of the column that contains the time that each individual was imaged.

timeAfterStart

A character giving the name of the column that contains the time after some nominated starting time e.g. the number of days after planting.

PSAcolumn

A character giving the name of the column that contains the projected shoot area.

potIDcolumns

A character vector giving the names of the columns that identify differences between the pots in data e.g. Genotype.ID, Treatment.1, Treatment.2, Replicate. There is no restriction on the names, except that they must occur in data. Often the combinations of values of the columns specified in potIDcolumns uniquely identifies each pot on which data is based. It is more flexible than idcolumns in that the factor Reps is not calculated and the user can include in potIDcolumns the name of a column in data that identifies the replicates of the combinations of the values in the other columns in potIDcolumns.

idcolumns

A character vector giving the names of the columns that identify differences (e.g. Genotype.ID, Treatment.1, Treatment.2) between the individuals (e.g. plant, pot, cart, plot or unit). If potIDcolumns is NULL, then a factor Reps is calculated that specifies the replicates of the combinations of the values stored in the columns named in idcolumns.

traits

A character or a list whose components are characters. Each character gives the names of the columns for imaging traits whose values are required for each of the camera-view combinations given in the corresponding list component of labsCamerasViews. If labsCamerasViews or a component of labsCamerasViews is NULL, then the contents of traits or the coresponding component of traits are merely treated as the names of columns to be retained.

labsCamerasViews

A character or a list whose components are characters. Each character gives the labels of the camera-view combinations for which is required values of each of the imaging traits in the corresponding character of traits. It is assumed that the camera-view labels are appended to the trait names and separated from the trait names by a full stop (.). If labsCamerasViews or a component of labsCamerasViews is NULL, then the contents of the traits or the coresponding component of traits are merely treated as the names of columns to be retained.

smarthouse.lev

A character vector giving the levels to use for the Smarthouse factor. If NULL then the unique values in Smarthouse will be used.

calcWaterUse

A logical indicating whether to calculate the Water.Loss. If it is FALSE, Water.Before, Water.After and Water.Amount will not be in the returned data.frame. They can be copied across by listing them in a component of traits and set the corresponding component of cameras to NULL.

...

allows passing of arguments to other functions; not used at present.

Details

The columns are copied from data, except for those columns that are calculated from the columns in data; those columns that are calculated have ‘(calculated)’ appended in the list under Value.

Value

A data.frame containing the columns specified by individualId, imageTimes, timeAfterStart, potIDcolumns or, if potIDcolumns is NULL, idcolumns, traits and cameras. The defaults will result in the following columns:

  1. Smarthouse: factor with levels for the Smarthouse

  2. Lane: factor for lane number in a smarthouse

  3. Position: factor for east/west position in a lane

  4. DAP: factor for the number of Days After Planting

  5. xDAP: numeric for the DAP (calculated)

  6. individualId: unique code for each individual

  7. imageTimes: time at which an image was taken in POSIXct format

  8. Hour: hour of the day, to 2 decimal places, at which the image was taken (calculated)

  9. potIDcolumns: the columns listed in potIDcolumns, after being converted to factors

  10. Reps: factor indexing the replicates for each combination of the factors in idcolumns (calculated only if potIDcolumns is NULL)

  11. idcolumns: only if potIDcolumns is NULL, the columns listed in idcolumns, after being converted to factors

  12. Weight.Before: weight of the pot before watering (only if calcWaterUse is TRUE)

  13. Weight.After: weight of the pot after watering (only if calcWaterUse is TRUE)

  14. Water.Amount: the weight of the water added (= Water.After - Water.Before) (calculated)

  15. WU: the water use calculated as the difference between Weight.Before for the current imaging and the Weight.After for the previous imaging (calculated unless calcWaterUse is FALSE)

  16. PSA: the Projected.Shoot.Area..pixels. divided by 1000 (calculated)

  17. PSA.SV1: the Projected.Shoot.Area from Side View 1 divided by 1000 (calculated)

  18. PSA.SV2: the Projected.Shoot.Area from Side View 2 divided by 1000 (calculated)

  19. PSA.TV: the Projected.Shoot.Area from Top View divided by 1000 (calculated)

  20. Boundary.To.PSA.Ratio.SV1

  21. Boundary.To.PSA.Ratio.SV2

  22. Boundary.To.PSA.Ratio.TV

  23. Caliper.Length.SV1

  24. Caliper.Length.SV2

  25. Caliper.Length.TV

  26. Compactness.SV1 from Side View 1

  27. Compactness.SV2 from Side View 2

  28. Compactness.TV: from Top View

  29. Convex.Hull.PSA.SV1: area of Side View 1 Convex Hull divided by 1000 (calculated)

  30. Convex.Hull.PSA.SV2: area of Side View 2 Convex Hull divided by 1000 (calculated)

  31. Convex.Hull.PSA.TV: Convex.Hull.Area.TV divided by 1000 (calculated)

  32. Center.Of.Mass.Y.SV1: Centre of Mass from Side View 1

  33. Center.Of.Mass.Y.SV2: Centre of Mass from Side View 2

  34. Max.Dist.Above.Horizon.Line.SV1: the Max.Dist.Above.Horizon.Line.SV1 divided by 1000 (calculated)

  35. Max.Dist.Above.Horizon.Line.SV2: the Max.Dist.Above.Horizon.Line.SV2 divided by 1000 (calculated)

Author(s)

Chris Brien

Examples

data(exampleData)
longi.dat <- prepImageData(data=raw.dat, smarthouse.lev=1)

longi.dat <- prepImageData(data=raw.dat, 
                          traits= list(all = "Area"), 
                          labsCamerasViews = list(all = NULL), 
                          potIDcolumns = c("Genotype.ID", "Treatment.1", "Replicate" ), 
                          smarthouse.lev=1)

longi.dat <- prepImageData(data=raw.dat, smarthouse.lev=1, 
                           traits = list(a = "Area", c = "Compactness"),
                           labsCamerasViews = list(all = c("SV1", "SV2", "TV"), 
                                                   t = "TV"))

longi.dat <- prepImageData(data=raw.dat, smarthouse.lev=1, 
                           traits = c("Area.SV1", "Area.SV2", "Area.TV", 
                                      "Compactness.TV"),
                           labsCamerasViews = NULL)

longi.dat <- prepImageData(data=raw.dat, smarthouse.lev=1, 
                           calcWaterUse = FALSE, 
                           traits = list(img = c("Area", "Compactness"), 
                                         H20 = c("Weight.Before","Weight.After",
                                                 "Water.Amount")),
                          labsCamerasViews = list(all = c("SV1", "SV2", "TV"), 
                                                       H2O = NULL))

briencj/growthPheno documentation built on April 14, 2025, 6:17 p.m.