Title: | Cleanup and Visualization of Quadrat Data |
Version: | 1.1.0 |
Description: | A tool that can be customized to aid in the clean up of ecological data collected using quadrats and can crop quadrats to ensure comparability between quadrats collected under different methodologies. |
License: | GPL (≥ 3) |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.1 |
URL: | https://github.com/DominiqueMaucieri/quadcleanR, https://dominiquemaucieri.com/quadcleanR/ |
BugReports: | https://github.com/DominiqueMaucieri/quadcleanR/issues |
Suggests: | covr, dplyr, ggplot2, kableExtra, knitr, MASS, rmarkdown, shiny, shinydashboard, shinyWidgets, testthat (≥ 3.0.0), tidyr, viridis |
VignetteBuilder: | knitr |
Config/testthat/edition: | 3 |
Depends: | R (≥ 2.10) |
LazyData: | true |
Imports: | magrittr |
NeedsCompilation: | no |
Packaged: | 2022-10-17 20:49:06 UTC; dom |
Author: | Dominique Maucieri
|
Maintainer: | Dominique Maucieri <dominiquemaucieri@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2022-10-17 21:20:02 UTC |
quadcleanR: Cleanup and Visualization of Quadrat Data
Description
A tool that can be customized to aid in the clean up of ecological data collected using quadrats and can crop quadrats to ensure comparability between quadrats collected under different methodologies.
Author(s)
Maintainer: Dominique Maucieri dominiquemaucieri@gmail.com (ORCID)
See Also
Useful links:
Report bugs at https://github.com/DominiqueMaucieri/quadcleanR/issues
Pipe operator
Description
See magrittr::%>%
for details.
Usage
lhs %>% rhs
Arguments
lhs |
A value or the magrittr placeholder. |
rhs |
A function call using the magrittr semantics. |
Value
The result of calling rhs(lhs)
.
Add data to existing data frame.
Description
Using key identifying columns, add additional columns to an existing data frame. This function allows you to match new columns based on specified IDs and you can choose what columns to add. Additionally you can specify the column number at which to add the new columns, so they are not added to the end of the data frame. Helpful for adding environmental or taxonomic data to your quadrat data.
Usage
add_data(data, add, cols, data_id, add_id, number = FALSE)
Arguments
data |
A data frame you want to add columns to. |
add |
A data frame with columns you want to add to |
cols |
The column names from |
data_id |
The ID column in |
add_id |
The ID column in |
number |
The column number to start at to add the new columns, so they are not added to the end of the data frame. If not specified they will be added to the end of the data frame by default. |
Value
A data frame with added columns.
Examples
Sites <- as.factor(c("One", "One", "One", "Two", "Two", "Three"))
Transect <- as.factor(c("1-Deep", "1-Shallow", "2-Shallow", "1-Shallow", "1-Deep", "1"))
coral_name <- c("Acropora.sp", "Leptastrea.sp", "Sinularia.sp", "Psammocora.sp", "
Psammocora.sp", "Leptastrea.sp")
prop_cover <- c(0.1, 0.6, 0.4, 0.9, 0.2, 0.5)
coral_cover <- data.frame(Sites, Transect, coral_name, prop_cover)
corals <- c("Acropora.sp", "Leptastrea.sp", "Psammocora.sp")
lifehistory <- c("compeditive", "weedy", "stresstolerant")
functionalgroup <- c("hardcoral", "hardcoral", "hardcoral")
coral_info <- data.frame(corals, lifehistory, functionalgroup)
add_data(data = coral_cover, add = coral_info, cols = c("lifehistory", "functionalgroup"),
data_id = "coral_name", add_id = "corals", number = 4)
Categorize data based on contents of a column
Description
Using a column within the data frame, categorize rows in a binary of yes or no, or customize with a set of category names. Data can be categorized based on the inclusion or lack of inclusion of parts of characters, or based on exact characters. Especially useful for turning ID tags into useful categories for analysis such as morphology, bleaching, taxonomy etc.
Usage
categorize(data, column, values, name, binary = TRUE, exact = TRUE, categories)
Arguments
data |
The data frame. |
column |
The column name which contains the data on which to categorize rows. |
values |
The characters or parts of characters to use to classify rows. |
name |
The name of the now column of categories. |
binary |
If |
exact |
If |
categories |
The factor names denoting the presence of the characters or
parts of characters specified by |
Value
A data frame with new categorization column.
Examples
Sites <- as.factor(c("One", "One", "One", "Two", "Two", "Three"))
Transect <- as.factor(c("1-Deep", "1-Shallow", "2-Shallow", "1-Shallow", "1-Deep", "1-Deep"))
Acropora.sp <- c(0.1, 0.6, 0.4, 0.9, 0.2, 0.5)
Gardineroseris.sp <- c(0.4, 0.9, 0.5, 0.23, 0.5, NA)
Psammocora.sp <- c(0.9, 0.6, 0.5, 0.8, 0.1, 0.4)
Leptastrea.sp <- c(0.5, 0.7, 0.4, 0.8, 0.2, NA)
Notes <- c(NA, NA, "saw octopus", NA, "white balance corrected", NA)
coral_cover <- data.frame(Sites, Transect, Acropora.sp, Gardineroseris.sp,
Psammocora.sp, Leptastrea.sp, Notes)
# Classify shallow transects in a binary column
categorize(data = coral_cover, column = "Transect", values = "Shallow",
name = "Shallow", binary = TRUE, exact = FALSE)
# Classify depth of transect in a new column based on transect name
categorize(data = coral_cover, column = "Transect", values = c("Shallow", "Deep"),
name = "Depth", binary = FALSE, categories = c("S", "D"), exact = FALSE)
Change names of columns
Description
Using a new data frame of labels, change column names in one function. Helpful if column names are shorthands or contain spaces and characters that are not supported in column names in R.
Usage
change_names(data, labelset, from, to)
Arguments
data |
The data frame that you want to change the column names of. |
labelset |
The data frame containing column names that you want to change and what you want them to be changed to. |
from |
The name of the column in the label set data frame containing the original column names. |
to |
The name of the column in the label set data frame containing new column names that the original column names will be changed to. |
Value
A data frame containing new column names.
Examples
#creating data set
Sites <- c("One", "Two", "Three", "Four", "Five")
Acrop <- c(0.1, 0.4, 0.9, 0.2, 0.5)
Gardin <- c(0.4, 0.9, 0.5, 0.23, 0.8)
Psam <- c(0.9, 0.5, 0.8, 0.1, 0.4)
Lepta <- c(0.5, 0.7, 0.8, 0.2, 0.9)
coral_cover <- data.frame(Sites, Acrop, Gardin, Psam, Lepta)
#creating label data frame
species_short <- c("Acrop", "Gardin", "Psam", "Lepta")
species_long <- c("Acropora", "Gardineroseris", "Psammocora", "Leptastrea")
coral_labels <- data.frame(species_short, species_long)
change_names(coral_cover, coral_labels, "species_short", "species_long")
Change values within a column
Description
Using two vectors, change the values in one column to a new set of values. Helpful if you need to change many values at once, like updating changes to site names or taxonomy.
Usage
change_values(data, column, from, to)
Arguments
data |
A data frame. |
column |
The column in which to change values. |
from |
A vector containing the values you wish to change. |
to |
A vector contain the values you want to change to, ensuring these
occur in the same order as the |
Value
A data frame containing new values within the specified column.
Examples
Sites <- c("One.jpg", "Two.jpg", "Three.jpg", "Four.jpg", "Five.jpg")
Dominant_Coral <- c("Acropora.sp", "Leptastrea.spp", "Acropora.sp",
"Acropora.sp", "Acropora.sp")
Dominant_Cover <- c(0.1, 0.4, 0.9, 0.2, 0.5)
Largest_Coral <- c("Acropora.sp", "Acropora.sp", "Psammocora.sp",
"Acropora.sp","Gardineroseris.spp")
coral_cover <- data.frame(Sites, Dominant_Coral, Dominant_Cover, Largest_Coral)
change_values(coral_cover, "Dominant_Coral",
c("Acropora.sp","Leptastrea.spp"), c("Acropora_tabulate", "Leptastrea.purpurea"))
Labelset for Corals
Description
A data_frame
that can be used with the Simple Cleaning Quadrat
Data vignette to rename columns in quadrat data and add functional group data,
to produce easy to analyze data frames. The short names were used to
identify substrate using CoralNet and are
included in the output from CoralNet.
Usage
coral_labelset
Format
A data_frame
with 5 columns, which are:
- short_name
The short name ID used to annotate the photo quadrats.
- full_name
The long name and definition for each short name ID.
- taxonomic_name
The taxonomic grouping name for each short name ID.
- functional_group
The functional group for each ID.
- life_history
The life history category for each coral ID.
Simple Coral Quadrat Data
Description
A data_frame
that can be used with the Simple Examples
of Functions vignette to learn how the cleaning functions in quadcleanR work.
Data was collected by the Baum Lab
and Kiritimati Field Teams. Data is the uncleaned version of data found in
Maucieri and Baum 2021. Biological Conservation. doi:10.1016/j.biocon.2021.109328
The data are from photo quadrats (1m by 1m) which were randomly annotated
with 100 random points each. At each of these annotated points, the substrate
was identified. Photo quadrats were collected on Kiritimati Island in the
Republic of Kiribati and document coral cover over time and space. The
annotations and output of the data_frame
were produced using
CoralNet and all annotations were done manually,
by trained researchers.
Usage
corals
Format
A data_frame
with 14 columns, which are:
- Field.Season
Field season ID.
- Site
Site number.
- Quadrat
Quadrat ID.
- AcCor
Percent of total annotated points annotated for Acropora (corymbose morphology).
- AcDig
Percent of total annotated points annotated for Acropora (digitate morphology).
- AcroTab
Percent of total annotated points annotated for Acropora (tabulate morphology).
- Monta
Percent of total annotated points annotated for Montastraea.
- Lepta
Percent of total annotated points annotated for Leptastrea.
- Sinu
Percent of total annotated points annotated for Sinularia.
- Clad
Percent of total annotated points annotated for Cladiella.
- Lobph
Percent of total annotated points annotated for Lobophora.
- Sarco
Percent of total annotated points annotated for Sarcophyton.
- Unc
Percent of total annotated points annotated for unclear.
- SHAD
Percent of total annotated points annotated for shadow.
Calculate species cover
Description
Convert the number of observations for each species or non-species to proportion or percent cover within each row based on the total number of observations in each row. Useful for quadrats with varying numbers of observations to calculate each row's percent cover all at once.
Usage
cover_calc(data, spp, prop = TRUE, total = FALSE)
Arguments
data |
A data frame with each row representing a sampling unit (ex. a quadrat or photo). |
spp |
The column names containing all observations to be used in the proportion calculation. It is important to note that the proportions will be scaled to the total observations in these columns for each quadrat. |
prop |
If |
total |
If |
Value
A data frame containing scaled observation cover.
Examples
#create data set for example
Sites <- as.factor(c("One", "One", "Two", "Two", "Three", "Three"))
Transect <- as.factor(c("1-Shallow", "2-Shallow", "1-Shallow", "2-Shallow",
"1-Shallow", "2-Shallow"))
Acropora.sp <- c(1, 2, 3, 4, 5, 6)
Gardineroseris.sp <- c(6, 1, 2, 3, 4, 5)
Psammocora.sp <- c(5, 6, 1, 2, 3, 4)
Leptastrea.sp <- c(4, 5, 6, 1, 2, 3)
coral_cover <- data.frame(Sites, Transect, Acropora.sp, Gardineroseris.sp,
Psammocora.sp, Leptastrea.sp)
cover_calc(data = coral_cover, spp = names(coral_cover[3:6]), prop = TRUE, total = TRUE)
cover_calc(data = coral_cover, spp = names(coral_cover[3:6]), prop = FALSE, total = FALSE)
Crop quadrats based on area
Description
Using the location of annotated points within quadrats and the size of the quadrat, crop quadrat data to a smaller area, while maintaining the spatial relationships between points. Useful for making different sized quadrat data comparable.
Usage
crop_area(
data,
row,
column,
id,
dim,
obs_rm = FALSE,
obs_range,
res = FALSE,
res_dim_x,
res_dim_y
)
Arguments
data |
A data frame containing annotations, in long format, such that all observations are contained in one column. |
row |
The column name in |
column |
The column name in |
id |
The column name in |
dim |
A vector with length of 2, containing the proportion of the row and columns to crop. First element will be the proportion of the rows and the second will be the proportion of the columns. |
obs_rm |
If |
obs_range |
A vector with length of 2, specifying the min and max accepted number of annotated observations to retain in the data set. |
res |
If |
res_dim_x |
The column name in |
res_dim_y |
The column name in |
Value
A data frame in of quadrat annotations with a subset of annotated points.
Examples
#Creating the data file
tags <- c("Clad", "Sinu", "Sarco", "Loph")
site <- c(rep("Site1", times = 100),
rep("Site2", times = 100),
rep("Site3", times = 100),
rep("Site4", times = 100))
row <- c(sample(x = c(1:2000), size = 100, replace = TRUE),
sample(x = c(1:2000), size = 100, replace = TRUE),
sample(x = c(1:2000), size = 100, replace = TRUE),
sample(x = c(1:2000), size = 100, replace = TRUE))
column <- c(sample(x = c(1:2000), size = 100, replace = TRUE),
sample(x = c(1:2000), size = 100, replace = TRUE),
sample(x = c(1:2000), size = 100, replace = TRUE),
sample(x = c(1:2000), size = 100, replace = TRUE))
label <- c(sample(x = tags, size = 100, replace = TRUE),
sample(x = tags, size = 100, replace = TRUE),
sample(x = tags, size = 100, replace = TRUE),
sample(x = tags, size = 100, replace = TRUE))
coral_annotations <- data.frame(site, row, column, label)
crop_area_coral <- crop_area(data = coral_annotations, row = "row",
column = "column", id = "site", dim = c(0.5, 0.5))
coral_annotations$col_dim <- 2000
coral_annotations$row_dim <- 2000
crop_area_coral_2 <- crop_area(data = coral_annotations, row = "row",
column = "column", id = "site", dim = c(0.5, 0.5),
res = TRUE, res_dim_x = "col_dim", res_dim_y = "row_dim")
Sample Environmental Data for Cleaning Vignettes
Description
A data_frame
that can be used with the Simple Cleaning Quadrat
Data vignette to show how environmental data can be easily added to quadrat data.
Data was collected and collated by the Baum Lab.
Data was originally published with coral quadrat data in
Maucieri and Baum 2021. Biological Conservation doi:10.1016/j.biocon.2021.109328.
Usage
environmental_data
Format
A data_frame
with 7 columns, which are:
- Site
Site number.
- HD_Cat
Estimate of local human disturbance at each site as a categorical variable.
- HD_Cont
Estimate of local human disturbance at each site as a continuous variable.
- NPP
Max net primary productivity at each site (mg C m^-2 day^-1).
- WE
If the sampling site is on the sheltered or windward side of the atoll.
- Region
Region of the atoll.
- WaveEnergy
Wave energy at each site (kW m^-1).
Final cleaned quadrat data
Description
A data_frame
that was created with the Cleaning Quadrat
Data from CoralNet. This is an example data frame of how the quadcleanR
package can be useful in cleaning quadrat data.
Usage
final_cleaned
Format
A data_frame
with 14 columns, which are:
- Field.Season
Field season ID.
- TimeBlock
If the sampling season was before, during or after the El NiƱo event.
- Site
Site number.
- Quadrat
Quadrat ID.
- HD_Cat
Estimate of local human disturbance at each site as a categorical variable.
- HD_Cont
Estimate of local human disturbance at each site as a continuous variable.
- NPP
Max net primary productivity at each site (mg C m^-2 day^-1).
- WE
If the sampling site is on the sheltered or windward side of the atoll.
- Region
Region of the atoll.
- WaveEnergy
Wave energy at each site (kW m^-1).
- Taxonomic_Name
Taxonomic name for each substrate.
- functional_group
Functional group for each substrate.
- life_history
Life history classification for each substrate.
- prop_cover
The proportion cover for each substrate.
Keep or remove rows and columns from data frame
Description
Using a character, or part of character select rows or columns of the data frame to either keep or remove. A more customizable way to subset your data as you can keep or remove based on partial matches, or cells containing select characters.
Usage
keep_rm(
data,
values,
select,
keep = TRUE,
drop_levels = TRUE,
exact = TRUE,
colname
)
Arguments
data |
A data frame. |
values |
A vector containing the characters or parts of characters to base selection off of. |
select |
If |
keep |
If |
drop_levels |
If |
exact |
If |
colname |
If |
Value
A data frame containing new selection of data.
Examples
# create data frame
Sites <- as.factor(c("One", "One", "One", "Two", "Two", "Three"))
Transect <- as.factor(c("1-Deep", "1-Shallow", "2-Shallow", "1-Shallow", "1-Deep", "1-Deep"))
Acropora.sp <- c(0.1, 0.6, 0.4, 0.9, 0.2, 0.5)
Gardineroseris.sp <- c(0.4, 0.9, 0.5, 0.23, 0.5, NA)
Psammocora.sp <- c(0.9, 0.6, 0.5, 0.8, 0.1, 0.4)
Leptastrea.sp <- c(0.5, 0.7, 0.4, 0.8, 0.2, NA)
Notes <- c(NA, NA, "saw octopus", NA, "white balance corrected", NA)
coral_cover <- data.frame(Sites, Transect, Acropora.sp, Gardineroseris.sp,
Psammocora.sp, Leptastrea.sp, Notes)
#Removing Notes column
keep_rm(data = coral_cover, values = c("Notes") , select = "col",
keep = FALSE, drop_levels = FALSE, exact = TRUE)
#Selecting site One and dropping extra levels
Site_One <- keep_rm(data = coral_cover, values = c("One") , select = "row",
keep = TRUE, drop_levels = TRUE, exact = TRUE, "Sites")
levels(Site_One$Sites)
#Removing Deep sites
Shallow_Sites <- keep_rm(data = coral_cover, values = c("-Shallow") , select ="row",
keep = FALSE, drop_levels = TRUE, exact = FALSE, "Transect")
#Selecting only species data
Species <- keep_rm(data = coral_cover, values = c(".sp") , select ="col",
keep = TRUE, drop_levels = TRUE, exact = FALSE)
Remove characters from data frame
Description
Parts of characters can be removed based on a vector of removal characters. When these characters are present in the data frame they will be removed. Selection area can include the full data frame or a subset of columns. When working with images, this can be helpful to remove extra characters from image IDs, or anywhere else where you want to remove specific characters from your data.
Usage
rm_chr(data, rm, full_selection = TRUE, cols)
Arguments
data |
A data frame. |
rm |
The parts of characters to be removed from the data frame. Can be a single element or a vector of elements. |
full_selection |
If |
cols |
If |
Value
A data frame containing the selected parts of characters removed.
Examples
# creating data set
Sites <- c("One.jpg", "Two.jpg", "Three.jpg", "Four.jpg", "Five.jpg")
Dominant_Coral <- c("Acropora.sp", "Leptastrea.spp", "Acropora.sp",
"Acropora.sp", "Acropora.sp")
Dominant_Cover <- c(0.1, 0.4, 0.9, 0.2, 0.5)
Largest_Coral <- c("Acropora.sp", "Acropora.sp", "Psammocora.sp",
"Acropora.sp","Gardineroseris.spp")
coral_cover <- data.frame(Sites, Dominant_Coral, Dominant_Cover, Largest_Coral)
# removing a character from select columns
coral_cover_nospp <- rm_chr(coral_cover, c(".spp"), full_selection = FALSE,
cols = c("Largest_Coral", "Dominant_Coral"))
# removing multiple characters from all columns
coral_cover_clean <- rm_chr(coral_cover, c(".jpg", ".spp", ".sp"))
Calculate sample sizes
Description
Specify which columns to use to produce a table with sample sizes. Helpful to visualize number of samples in your data.
Usage
sample_size(data, dim_1, dim_2, count)
Arguments
data |
The data frame you want to calculate sample sizes for. |
dim_1 |
The first dimension to calculate sample sizes for. This will be the
resulting row names. This must be the column name within |
dim_2 |
The second dimension to calculate sample sizes for. This will be the
resulting column names. This must be the column name within |
count |
The column name within |
Value
A data frame of sample sizes.
Examples
Year <- c("2000", "2000", "2000", "2000", "2000", "2001", "2001", "2001", "2001",
"2002", "2002", "2002", "2002", "2003", "2003", "2003", "2003", "2003", "2003")
Site <- c("site1", "site1", "site2", "site2", "site2","site1", "site1", "site2",
"site2", "site1", "site1", "site2", "site2","site1", "site1", "site2",
"site2", "site2", "site2")
Quadrat <- c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11",
"Q12", "Q13", "Q14", "Q15", "Q16", "Q17", "Q18", "Q19")
Cover <- sample(x = seq(from = 0, to = 1, by = 0.01), 19, replace = TRUE)
coral_cover <- data.frame(Year, Site, Quadrat, Cover)
sample_size(coral_cover, dim_1 = "Site", dim_2 = "Year", count = "Quadrat")
Sample Quadrat Data (1m by 1m)
Description
A data_frame
that can be used with the cleaning vignette
to show how quadrat data can be cleaned to produce easy to analyze data
frames. Data was collected by the Baum Lab
and Kiritimati Field Teams. Data is the uncleaned version of data found in
Maucieri and Baum 2021. Biological Conservation. doi:10.1016/j.biocon.2021.109328
The data are from photo quadrats (1m by 1m) which were randomly annotated
with 100 random points each. At each of these annotated points, the substrate
was identified. Photo quadrats were collected on Kiritimati Island in the
Republic of Kiribati and document coral cover over time and space. The
annotations and output of the data_frame
were produced using
CoralNet and all annotations were done manually,
by trained researchers.
Usage
softcoral_LQuads
Format
A data_frame
with 135 columns, which are:
- Image.ID
Photo quadrat image ID from CoralNet.
- Image.name
The photo quadrat image name.
- Annotation.status
If the quadrat has been completely annotated, or if there are more annotations to occur.
- Points
The total number of annotation points in the quadrat.
- AcCor
Percent of total annotated points annotated for Acropora (corymbose morphology).
- AcDig
Percent of total annotated points annotated for Acropora (digitate morphology).
- Acr_arb
Percent of total annotated points annotated for Acropora (arborescent morphology).
- Acrop
Percent of total annotated points annotated for Acropora.
- AcroTab
Percent of total annotated points annotated for Acropora (tabulate morphology).
- Astreo
Percent of total annotated points annotated for Astreopora.
- B_Acr_arb
Percent of total annotated points annotated for bleached Acropora (arborescent morphology)
- B_Acro
Percent of total annotated points annotated for bleached Acropora.
- B_Astre
Percent of total annotated points annotated for bleached Astreopora.
- BAT
Percent of total annotated points annotated for bleached Acropora (tabulate morphology).
- B_Cosc
Percent of total annotated points annotated for bleached Coscinarea.
- B_Echin
Percent of total annotated points annotated for bleached Echinophyllia.
- B_FavHal
Percent of total annotated points annotated for bleached Favites halicora.
- B_Favia
Percent of total annotated points annotated for bleached_Favia.
- B_FaviaM
Percent of total annotated points annotated for bleached Favia matthaii.
- B_FaviaS
Percent of total annotated points annotated for bleached Favia speciosa.
- B_FaviaSt
Percent of total annotated points annotated for bleached Goniastrea stelligera.
- B_Favites
Percent of total annotated points annotated for bleached Favites.
- B_FavPent
Percent of total annotated points annotated for bleached Favites pentagona.
- B_Fung
Percent of total annotated points annotated for bleached Fungia.
- BGard
Percent of total annotated points annotated for bleached Gardineroseris.
- B_GonEd
Percent of total annotated points annotated for bleached Goniastrea edwardsi.
- B_Herpo
Percent of total annotated points annotated for bleached Herpolitha.
- B_HYDNO
Percent of total annotated points annotated for bleached Hydnophora.
- B_HyExe
Percent of total annotated points annotated for bleached Hydnophora exesa.
- BlAcro-Cor
Percent of total annotated points annotated for bleached Acropora (corymbose morphology).
- B_Lepta
Percent of total annotated points annotated for bleached Leptastrea.
- B_Lepto
Percent of total annotated points annotated for bleached Leptoseris.
- Blisop
Percent of total annotated points annotated for bleached Isopora.
- B_Lobo
Percent of total annotated points annotated for bleached Lobophyllia.
- BlTurbFol
Percent of total annotated points annotated for bleached Turbinaria (foliose morphology).
- B_MOEN
Percent of total annotated points annotated for bleached Montipora (encrusting morphology).
- B_MOFO
Percent of total annotated points annotated for bleached Montipora (foliose morphology).
- B_Monta
Percent of total annotated points annotated for bleached Montastraea.
- B_Monti
Percent of total annotated points annotated for bleached Montipora.
- B_Oxyp
Percent of total annotated points annotated for bleached Oxypora.
- B_Paly
Percent of total annotated points annotated for bleached Palythoa.
- B_PaveDUER
Percent of total annotated points annotated for bleached Pavona duerdeni.
- B_Pavona
Percent of total annotated points annotated for bleached Pavona.
- B_PEYDO
Percent of total annotated points annotated for bleached Pocillopora eydouxi.
- B_Plat
Percent of total annotated points annotated for bleached Platygyra.
- B_PMEAN
Percent of total annotated points annotated for bleached Pocillopora meandrina.
- B_Pocillo
Percent of total annotated points annotated for bleached Pocillopora.
- B_Porit
Percent of total annotated points annotated for bleached Porites.
- B_Psam
Percent of total annotated points annotated for bleached Psammocora.
- B_PVAR
Percent of total annotated points annotated for bleached Pavona varians.
- B_Sando
Percent of total annotated points annotated for bleached Sandolitha.
- B_UnkCoral
Percent of total annotated points annotated for bleached unknown hard coral.
- Cirr
Percent of total annotated points annotated for Cirrhipathes.
- COSC
Percent of total annotated points annotated for Coscinaraea.
- ECHIN
Percent of total annotated points annotated for Echinophyllia.
- Fav
Percent of total annotated points annotated for Favites.
- FavHal
Percent of total annotated points annotated for Favites halicora.
- Favites halicora
Percent of total annotated points annotated for Favia.
- FaviaM
Percent of total annotated points annotated for Dipsastraea matthaii.
- FaviaS
Percent of total annotated points annotated for Favia speciosa.
- FaviaSt
Percent of total annotated points annotated for Favia stelligera.
- FavPent
Percent of total annotated points annotated for Favites pentagona.
- Fung
Percent of total annotated points annotated for Fungia.
- Gardin
Percent of total annotated points annotated for Gardineroseris.
- GonEd
Percent of total annotated points annotated for Goniastrea edwardsi.
- Herpo
Percent of total annotated points annotated for Herpolitha.
- HYDNO
Percent of total annotated points annotated for Hydnophora.
- HyExe
Percent of total annotated points annotated for Hydnophora exesa.
- Isopora
Percent of total annotated points annotated for Isopora.
- Lepta
Percent of total annotated points annotated for Leptastrea.
- Lepto
Percent of total annotated points annotated for Leptoseris.
- Lobo
Percent of total annotated points annotated for Lobophyllia.
- *MOEN
Percent of total annotated points annotated for Montipora (encrusting morphology).
- *MOFO
Percent of total annotated points annotated for Montipora (foliose morphology).
- Monta
Percent of total annotated points annotated for Montastraea.
- Monti
Percent of total annotated points annotated for Montipora.
- Oxyp
Percent of total annotated points annotated for Oxypora.
- Paly
Percent of total annotated points annotated for Palythoa.
- PaveDUER
Percent of total annotated points annotated for Pavona duerdeni.
- Pavon
Percent of total annotated points annotated for Pavona.
- PEYDO
Percent of total annotated points annotated for Pocillopora eydouxi.
- Plat
Percent of total annotated points annotated for Platygyra.
- Plero
Percent of total annotated points annotated for Plerogyra.
- PMEAN
Percent of total annotated points annotated for Pocillopora meandrina.
- Pocill
Percent of total annotated points annotated for Pocillopora.
- Porit
Percent of total annotated points annotated for Porites.
- Psam
Percent of total annotated points annotated for Psammocora.
- PVAR
Percent of total annotated points annotated for Pavona varians.
- Sando
Percent of total annotated points annotated for Sandolitha.
- Tuba
Percent of total annotated points annotated for Tubastrea.
- TURB
Percent of total annotated points annotated for Turbinaria.
- UnkCoral
Percent of total annotated points annotated for unknown hard coral.
- ANEM
Percent of total annotated points annotated for sea anemone.
- B_Clad
Percent of total annotated points annotated for bleached Cladiella.
- B_Sinu
Percent of total annotated points annotated for bleached Sinularia.
- Clad
Percent of total annotated points annotated for Cladiella.
- EncBry
Percent of total annotated points annotated for encrusting Bryozoan.
- EUR
Percent of total annotated points annotated for sea urchin.
- HYDCO
Percent of total annotated points annotated for Hydrocoral.
- Hydra
Percent of total annotated points annotated for Hydroid.
- Mille
Percent of total annotated points annotated for Millepora.
- MOBI
Percent of total annotated points annotated for bivalves.
- Sarco
Percent of total annotated points annotated for Sarcophyton.
- SECO
Percent of total annotated points annotated for sea cucumber.
- Sinu
Percent of total annotated points annotated for Sinularia.
- Sponge
Percent of total annotated points annotated for sponge.
- Stylas
Percent of total annotated points annotated for Stylaster.
- UnkTUN
Percent of total annotated points annotated for unknown Tunicate.
- XmasW
Percent of total annotated points annotated for Christmas Tree Worm.
- ZOAN
Percent of total annotated points annotated for Zoanthid.
- B_Sarco
Percent of total annotated points annotated for bleached Sarcophyton.
- Sand
Percent of total annotated points annotated for sand.
- Sediment
Percent of total annotated points annotated for sediment.
- SCRO
Percent of total annotated points annotated for consolidated rock.
- B_Loph
Percent of total annotated points annotated for bleached Lobophytum.
- CYAN
Percent of total annotated points annotated for Cyanobacteria films.
- Loph
Percent of total annotated points annotated for Lobophytum.
- Rubble
Percent of total annotated points annotated for broken coral rubble.
- SHAD
Percent of total annotated points annotated for shadow.
- Trans
Percent of total annotated points annotated for transect hardware.
- Unc
Percent of total annotated points annotated for unclear.
- AVRA
Percent of total annotated points annotated for Avrainvillea.
- Caul
Percent of total annotated points annotated for Caulerpa.
- CCA
Percent of total annotated points annotated for crustose coraline algae.
- Dict
Percent of total annotated points annotated for Dictyota.
- DICTY
Percent of total annotated points annotated for Dictyosphaeria.
- Hali
Percent of total annotated points annotated for Halimeda.
- Lobph
Percent of total annotated points annotated for Lobophora.
- Macro
Percent of total annotated points annotated for macroalgae.
- Mdict
Percent of total annotated points annotated for Microdictyon.
- Pad
Percent of total annotated points annotated for Padina.
- Peysson
Percent of total annotated points annotated for Peyssonnelia.
- Turf
Percent of total annotated points annotated for turf algae.
- TURFH
Percent of total annotated points annotated for turf algae on hard substrate.
- Unidentified
Percent of total annotated points annotated that were unidentified.
Sample Quadrat Data (0.6m by 0.9m)
Description
A data_frame
that can be used with the Simple Cleaning
Quadrat Data and the Cleaning and Cropping Quadrat Data vignettes
to show how quadrat data can be cleaned to produce easy to analyze data
frames. Data was collected by the Baum Lab
and Kiritimati Field Teams. Data is the uncleaned version of data found in
Maucieri and Baum 2021. Biological Conservation. doi:10.1016/j.biocon.2021.109328
The data are from photo quadrats (0.9m by 0.6m) which were randomly annotated
with 54 random points each. At each of these annotated points, the substrate
was identified. Photo quadrats were collected on Kiritimati Island in the
Republic of Kiribati and document coral cover over time and space. The
annotations and output of the data_frame
were produced using
CoralNet and all annotations were done manually,
by trained researchers.
Usage
softcoral_SQuads
Format
A data_frame
with 135 columns, which are:
- Image.ID
Photo quadrat image ID from CoralNet.
- Image.name
The photo quadrat image name.
- Annotation.status
If the quadrat has been completely annotated, or if there are more annotations to occur.
- Points
The total number of annotation points in the quadrat.
- AcCor
Percent of total annotated points annotated for Acropora (corymbose morphology).
- AcDig
Percent of total annotated points annotated for Acropora (digitate morphology).
- Acr_arb
Percent of total annotated points annotated for Acropora (arborescent morphology).
- Acrop
Percent of total annotated points annotated for Acropora.
- AcroTab
Percent of total annotated points annotated for Acropora (tabulate morphology).
- Astreo
Percent of total annotated points annotated for Astreopora.
- B_Acr_arb
Percent of total annotated points annotated for bleached Acropora (arborescent morphology).
- B_Acro
Percent of total annotated points annotated for bleached Acropora.
- B_Astre
Percent of total annotated points annotated for bleached Astreopora.
- BAT
Percent of total annotated points annotated for bleached Acropora (tabulate morphology).
- B_Cosc
Percent of total annotated points annotated for bleached Coscinarea.
- B_Echin
Percent of total annotated points annotated for bleached Echinophyllia.
- B_FavHal
Percent of total annotated points annotated for bleached Favites halicora.
- B_Favia
Percent of total annotated points annotated for bleached_Favia.
- B_FaviaM
Percent of total annotated points annotated for bleached Favia matthaii.
- B_FaviaS
Percent of total annotated points annotated for bleached Favia speciosa.
- B_FaviaSt
Percent of total annotated points annotated for bleached Goniastrea stelligera.
- B_Favites
Percent of total annotated points annotated for bleached Favites.
- B_FavPent
Percent of total annotated points annotated for bleached Favites pentagona.
- B_Fung
Percent of total annotated points annotated for bleached Fungia.
- BGard
Percent of total annotated points annotated for bleached Gardineroseris.
- B_GonEd
Percent of total annotated points annotated for bleached Goniastrea edwardsi.
- B_Herpo
Percent of total annotated points annotated for bleached Herpolitha.
- B_HYDNO
Percent of total annotated points annotated for bleached Hydnophora.
- B_HyExe
Percent of total annotated points annotated for bleached Hydnophora exesa.
- BlAcro-Cor
Percent of total annotated points annotated for bleached Acropora (corymbose morphology).
- B_Lepta
Percent of total annotated points annotated for bleached Leptastrea.
- B_Lepto
Percent of total annotated points annotated for bleached Leptoseris.
- Blisop
Percent of total annotated points annotated for bleached Isopora.
- B_Lobo
Percent of total annotated points annotated for bleached Lobophyllia.
- BlTurbFol
Percent of total annotated points annotated for bleached Turbinaria (foliose morphology).
- B_MOEN
Percent of total annotated points annotated for bleached Montipora (encrusting morphology).
- B_MOFO
Percent of total annotated points annotated for bleached Montipora (foliose morphology).
- B_Monta
Percent of total annotated points annotated for bleached Montastraea.
- B_Monti
Percent of total annotated points annotated for bleached Montipora.
- B_Oxyp
Percent of total annotated points annotated for bleached Oxypora.
- B_Paly
Percent of total annotated points annotated for bleached Palythoa.
- B_PaveDUER
Percent of total annotated points annotated for bleached Pavona duerdeni.
- B_Pavona
Percent of total annotated points annotated for bleached Pavona.
- B_PEYDO
Percent of total annotated points annotated for bleached Pocillopora eydouxi.
- B_Plat
Percent of total annotated points annotated for bleached Platygyra.
- B_PMEAN
Percent of total annotated points annotated for bleached Pocillopora meandrina.
- B_Pocillo
Percent of total annotated points annotated for bleached Pocillopora.
- B_Porit
Percent of total annotated points annotated for bleached Porites.
- B_Psam
Percent of total annotated points annotated for bleached Psammocora.
- B_PVAR
Percent of total annotated points annotated for bleached Pavona varians.
- B_Sando
Percent of total annotated points annotated for bleached Sandolitha.
- B_UnkCoral
Percent of total annotated points annotated for bleached unknown hard coral.
- Cirr
Percent of total annotated points annotated for Cirrhipathes.
- COSC
Percent of total annotated points annotated for Coscinaraea.
- ECHIN
Percent of total annotated points annotated for Echinophyllia.
- Fav
Percent of total annotated points annotated for Favites.
- FavHal
Percent of total annotated points annotated for Favites halicora.
- Favites halicora
Percent of total annotated points annotated for Favia.
- FaviaM
Percent of total annotated points annotated for Dipsastraea matthaii.
- FaviaS
Percent of total annotated points annotated for Favia speciosa.
- FaviaSt
Percent of total annotated points annotated for Favia stelligera.
- FavPent
Percent of total annotated points annotated for Favites pentagona.
- Fung
Percent of total annotated points annotated for Fungia.
- Gardin
Percent of total annotated points annotated for Gardineroseris.
- GonEd
Percent of total annotated points annotated for Goniastrea edwardsi.
- Herpo
Percent of total annotated points annotated for Herpolitha.
- HYDNO
Percent of total annotated points annotated for Hydnophora.
- HyExe
Percent of total annotated points annotated for Hydnophora exesa.
- Isopora
Percent of total annotated points annotated for Isopora.
- Lepta
Percent of total annotated points annotated for Leptastrea.
- Lepto
Percent of total annotated points annotated for Leptoseris.
- Lobo
Percent of total annotated points annotated for Lobophyllia.
- *MOEN
Percent of total annotated points annotated for Montipora (encrusting morphology).
- *MOFO
Percent of total annotated points annotated for Montipora (foliose morphology).
- Monta
Percent of total annotated points annotated for Montastraea.
- Monti
Percent of total annotated points annotated for Montipora.
- Oxyp
Percent of total annotated points annotated for Oxypora.
- Paly
Percent of total annotated points annotated for Palythoa.
- PaveDUER
Percent of total annotated points annotated for Pavona duerdeni.
- Pavon
Percent of total annotated points annotated for Pavona.
- PEYDO
Percent of total annotated points annotated for Pocillopora eydouxi.
- Plat
Percent of total annotated points annotated for Platygyra.
- Plero
Percent of total annotated points annotated for Plerogyra.
- PMEAN
Percent of total annotated points annotated for Pocillopora meandrina.
- Pocill
Percent of total annotated points annotated for Pocillopora.
- Porit
Percent of total annotated points annotated for Porites.
- Psam
Percent of total annotated points annotated for Psammocora.
- PVAR
Percent of total annotated points annotated for Pavona varians.
- Sando
Percent of total annotated points annotated for Sandolitha.
- Tuba
Percent of total annotated points annotated for Tubastrea.
- TURB
Percent of total annotated points annotated for Turbinaria.
- UnkCoral
Percent of total annotated points annotated for unknown hard coral.
- ANEM
Percent of total annotated points annotated for sea anemone.
- B_Clad
Percent of total annotated points annotated for bleached Cladiella.
- B_Sinu
Percent of total annotated points annotated for bleached Sinularia.
- Clad
Percent of total annotated points annotated for Cladiella.
- EncBry
Percent of total annotated points annotated for encrusting Bryozoan.
- EUR
Percent of total annotated points annotated for sea urchin.
- HYDCO
Percent of total annotated points annotated for Hydrocoral.
- Hydra
Percent of total annotated points annotated for Hydroid.
- Mille
Percent of total annotated points annotated for Millepora.
- MOBI
Percent of total annotated points annotated for bivalves.
- Sarco
Percent of total annotated points annotated for Sarcophyton.
- SECO
Percent of total annotated points annotated for sea cucumber.
- Sinu
Percent of total annotated points annotated for Sinularia.
- Sponge
Percent of total annotated points annotated for sponge.
- Stylas
Percent of total annotated points annotated for Stylaster.
- UnkTUN
Percent of total annotated points annotated for unknown Tunicate.
- XmasW
Percent of total annotated points annotated for Christmas Tree Worm.
- ZOAN
Percent of total annotated points annotated for Zoanthid.
- B_Sarco
Percent of total annotated points annotated for bleached Sarcophyton.
- Sand
Percent of total annotated points annotated for sand.
- Sediment
Percent of total annotated points annotated for sediment.
- SCRO
Percent of total annotated points annotated for consolidated rock.
- B_Loph
Percent of total annotated points annotated for bleached Lobophytum.
- CYAN
Percent of total annotated points annotated for Cyanobacteria films.
- Loph
Percent of total annotated points annotated for Lobophytum.
- Rubble
Percent of total annotated points annotated for broken coral rubble.
- SHAD
Percent of total annotated points annotated for shadow.
- Trans
Percent of total annotated points annotated for transect hardware.
- Unc
Percent of total annotated points annotated for unclear.
- AVRA
Percent of total annotated points annotated for Avrainvillea.
- Caul
Percent of total annotated points annotated for Caulerpa.
- CCA
Percent of total annotated points annotated for crustose coraline algae.
- Dict
Percent of total annotated points annotated for Dictyota.
- DICTY
Percent of total annotated points annotated for Dictyosphaeria.
- Hali
Percent of total annotated points annotated for Halimeda.
- Lobph
Percent of total annotated points annotated for Lobophora.
- Macro
Percent of total annotated points annotated for macroalgae.
- Mdict
Percent of total annotated points annotated for Microdictyon.
- Pad
Percent of total annotated points annotated for Padina.
- Peysson
Percent of total annotated points annotated for Peyssonnelia.
- Turf
Percent of total annotated points annotated for turf algae.
- TURFH
Percent of total annotated points annotated for turf algae on hard substrate.
- Unidentified
Percent of total annotated points annotated that were unidentified.
Sample Annotation Data for Cropping Vignette
Description
A data_frame
that can be used with the Why to Crop Quadrats
by Area vignette to show how quadrat data can be cropped while maintaining spatial
relationships between observations. Data was collected by the
Baum Lab and Kiritimati Field Teams. Data
is the uncleaned version of data found in
Maucieri and Baum 2021. Biological Conservation. doi:10.1016/j.biocon.2021.109328
The data are from photo quadrats (1m by 1m) which were randomly annotated
with 100 random points each. At each of these annotated points, the substrate
was identified. Photo quadrats were collected on Kiritimati Island in the
Republic of Kiribati and document coral cover over time and space. The
annotations and output of the data_frame
were produced using
CoralNet and all annotations were done manually,
by trained researchers.
Usage
softcoral_annotations
Format
A data_frame
with 4 columns, which are:
- Name
Unique identification code for each quadrat.
- Row
The pixel row where the annotation occurred in the photo of the quadrat.
- Column
The pixel column where the annotation occurred in the photo of the quadrat.
- Label
The identification for the substrate below the annotation location.
Sum columns based on matching names
Description
Select columns and attach a vector of their new names, then columns with matching names will have each row summed. This is helpful to simplify your data quickly, like simplifying at a higher taxonomic group.
Usage
sum_cols(data, from, to)
Arguments
data |
A data frame. |
from |
The column names in |
to |
A vector of new names, with matching names being the columns where each row will be summed. |
Value
A data frame with summed columns.
Examples
Sites <- as.factor(c("One", "One", "One", "Two", "Two", "Three"))
Transect <- as.factor(c("1-Deep", "1-Shallow", "2-Shallow", "1-Shallow", "1-Deep", "1-Deep"))
Acropora.tabulate <- c(0.1, 0.6, 0.4, 0.9, 0.2, 0)
Acropora.corymbose <- c(0.4, 0, 0.1, 0, 0.3, 0.5)
Gardineroseris.sp <- c(0.4, 0.9, 0.5, 0.23, 0.5, 0.6)
Psammocora.sp <- c(0.9, 0.6, 0.5, 0.8, 0.1, 0.4)
Leptastrea.sp <- c(0.5, 0.7, 0.4, 0.8, 0.2, 0.3)
coral_cover <- data.frame(Sites, Transect, Acropora.tabulate, Acropora.corymbose,
Gardineroseris.sp, Psammocora.sp, Leptastrea.sp)
new_names <- c("Acropora.spp", "Acropora.spp", "Gardineroseris.sp",
"Psammocora.sp", "Leptastrea.sp")
sum_cols(data = coral_cover, from = colnames(coral_cover[,3:7]),
to = new_names)
Extract usable observations
Description
Sum columns containing unusable observations and remove rows that contain more than the specified cutoff number of unusable points. Helpful if there are annotations that were unidentifiable and you want to remove them from the total usable observations, and you can remove quadrats with too many unusable observations.
Usage
usable_obs(
data,
unusable,
max = FALSE,
cutoff,
above_cutoff = FALSE,
rm_unusable = TRUE
)
Arguments
data |
A data frame with each row representing a sampling unit (ex. a quadrat or photo). |
unusable |
A vector of column names containing unusable observations. |
max |
If |
cutoff |
The threshold number where rows containing more unusable observations
than the |
above_cutoff |
If |
rm_unusable |
If |
Value
A data frame containing summed unusable points.
Examples
#create data set for example
Sites <- as.factor(c("One", "One", "Two", "Two", "Three", "Three"))
Transect <- as.factor(c("1-Shallow", "2-Shallow", "1-Shallow", "2-Shallow",
"1-Shallow", "2-Shallow"))
Acropora.sp <- c(1, 2, 3, 4, 5, 6)
Gardineroseris.sp <- c(6, 1, 2, 3, 4, 5)
Psammocora.sp <- c(5, 6, 1, 2, 3, 4)
Leptastrea.sp <- c(4, 5, 6, 1, 2, 3)
Blurry <- c(3, 4, 5, 6, 1, 2)
Unk <- c(2, 3, 4, 5, 6, 1)
coral_cover <- data.frame(Sites, Transect, Acropora.sp, Gardineroseris.sp,
Psammocora.sp, Leptastrea.sp, Blurry, Unk)
usable_obs(coral_cover, c("Blurry", "Unk"))
usable_obs(coral_cover, c("Blurry", "Unk"), above_cutoff = TRUE)
usable_obs(coral_cover, c("Blurry", "Unk"), rm_unusable = FALSE)
usable_obs(coral_cover, c("Blurry", "Unk"), max = TRUE, cutoff = 8)
usable_obs(coral_cover, c("Blurry", "Unk"), max = TRUE, cutoff = 8, above_cutoff = TRUE)
Visualize cleaned data
Description
Using an interactive shiny app, visualize and explore cleaned quadrat data.
Usage
visualize_app(data, xaxis, yaxis)
Arguments
data |
A data frame containing cleaned quadrat data. |
xaxis |
The xaxis variable column names found in |
yaxis |
The yaxis variable column names found in |
Value
A shiny app launched in your browser.
Examples
year <- sample(x = seq(from = 2000, to = 2020, by = 1), 1000, replace = TRUE)
site <- sample(x = c("site1", "site2", "site3", "site4", "site5"), 1000, replace = TRUE)
transect <- sample(x = c("transect1", "transect2", "transect3", "transect4"),
1000, replace = TRUE)
species <- sample(x = c("Acropora", "Gardineroseris", "Psammocora", "Leptastrea"),
1000, replace = TRUE)
cover <- sample(x = seq(from = 0, to = 1, by = 0.01), 1000, replace = TRUE)
coral <- data.frame(year, site, transect, species, cover)
if (interactive()) {
visualize_app(data = coral, xaxis = colnames(coral[,1:4]), yaxis = "cover")
}