Marcus W. Beck, beck.marcus@epa.gov
This is the development repository for the CoralBCG package. Functions within this package can be used to estimate quantitative rules for the coral biological condition gradient.
The development version of this package can be installed as follows:
install.packages('devtools')
library(devtools)
install_github('USEPA/CoralBCG')
library(CoralBCG)
Data should have the following format:
head(crl_dem)
## station_code species_name ColonyID MaxDiam PerpDiam Height
## 1 2 Siderastrea radians 1 4 4 1
## 2 2 Eusmilia fastigiata 1 5 4 3
## 3 2 Agaricia humilis 6 6 4 2
## 4 2 Madracis pharensis 1 6 5 2
## 5 2 Porites astreoides 2 6 4 2
## 6 2 Madracis decactis 1 7 4 5
## MortOld MortNew Bleached Diseased
## 1 0 0 P A
## 2 0 0 N A
## 3 0 0 N A
## 4 0 0 N A
## 5 0 0 N A
## 6 0 10 N A
Estimate all quantitative rules with get_stony_mets
:
crl_met <- get_stony_mets(crl_dem)
This is estimated at each station as the average live cover of all colonies at a site. The live cover of a colony was the sum of the estimated surface area of all colonies that was reported as percent live (reciprocal of the sum of new and old percent mortality). Surface area of each colony is estimated as follows:
Percent live cover at a station is then estimated as:
mythm <- theme_minimal() +
theme(
legend.position = 'top',
legend.title = element_blank(),
panel.border = element_rect(colour = "black", fill = NA, size = 0.5),
axis.ticks.x = element_line(),
axis.ticks.y = element_line(),
axis.ticks.length = unit(.1, "cm"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank()
)
# barplot of lcsa
toplo <- arrange(crl_met, lcsa) %>%
mutate(station_code = factor(station_code, levels = as.character(station_code)))
ggplot(toplo, aes(x = station_code, y = lcsa)) +
geom_bar(stat = 'identity') +
mythm +
scale_x_discrete('Station')
Mortality of large reef-building genera (Acropora, Colpophyllia, Dendrogrya, Orbicella, Pseudodiploria) was estimated as the average recent mortality at the site for all colonies/individuals within the genera. This value is reported as the average percent live surface area and was estimated similarly as above.
totab <- select(crl_met, station_code, lrg_mort, lrg_abu) %>%
filter(lrg_mort > 0) %>%
arrange(lrg_mort) %>%
rename(
Station = station_code,
`Large species abundance` = lrg_abu,
`Average recent mortality` = lrg_mort
)
pander::pander(totab)
Station Average recent mortality Large species abundance
3 0.003273 55
5 0.004545 11
2 0.018 10
1 0.01818 11
This describes the variation in colony sizes at a site, where sites with higher BCG levels have a more even distribution of small to large colonies. Presence of recruits is also taken into consideration for BCG quality (not shown in plots). The plot below shows the stations with bars for smallest to largest colony at a station.
crl_dem$csa <- with(crl_dem, est_3d(species_name, Height, MaxDiam, PerpDiam))
toplo <- get_col_sz(crl_dem, raw_out = T) %>%
arrange(station_code, csa) %>%
mutate(
species_name = factor(species_name),
species_name = as.numeric(species_name)
) %>%
unite('statcol', station_code:ColonyID, remove = F) %>%
mutate(statcol = factor(statcol, levels = as.character(statcol)))
ggplot(toplo, aes(x = station_code, y = csa, group = statcol)) +
geom_bar(stat = 'identity', colour = 'grey', position = 'dodge') +
mythm +
theme(legend.position = 'top') +
xlab('Station') +
scale_y_continuous('CSA')
# Size distribution spread
get_col_sz(crl_dem)
## station_code var val
## 1 1 sz_dist 2.891851
## 2 2 sz_dist 2.845603
## 3 3 sz_dist 3.721674
## 4 4 sz_dist 2.159184
## 5 5 sz_dist 2.101650
## 6 1 recruits 1.000000
## 7 2 recruits 0.000000
## 8 3 recruits 0.000000
## 9 4 recruits 0.000000
## 10 5 recruits 1.000000
This metric assesses the species composition and diversity of sensitive, rare species present (Eusmilia, Isophyllastrea, Isophyllia, Mycetophyllia, Scolymia) in the appropriate habitat type. The metric could be evaluated at each site as a richness estimate for the sensitive species, sum of the relative abundances, or as a diversity measure that accounts for both richness and abundance. Relative abundance was estimated as the number of observations for a species divided by the total number of observations. Diversity of sensitive species was estimated as Shannon diversity:
$$D = -\sum_{i = 1}^{n} p_i \cdot log\left(p_i\right)$$ where i of n species are observed and p_i is the proportional abundance of each. Only sixteen stations had sensitive species.
# summary table for those with sens species
totab <- select(crl_met, station_code, sr_rich, sr_rel_abu, sr_div) %>%
filter(sr_rich > 0) %>%
rename(
Station = station_code,
Richness = sr_rich,
`Relative abundance` = sr_rel_abu,
Diversity = sr_div
)
pander::pander(totab)
Station Richness Relative abundance Diversity
2 1 0.03226 0
3 1 0.0119 0
Disease was recorded for individual corals as present/absence bleaching was recorded as absent, partial, and total. Both were summarized at each site as percent of individuals with disease or bleaching, i.e., sum of presence divided by total individuals. Indidividuals with partial bleaching were assigned a value of 0.5.
toplo <- filter(crl_met, diseased != 0 | bleached != 0) %>%
arrange(bleached) %>%
mutate(station_code = factor(station_code, levels = as.character(station_code))) %>%
gather('var', 'val', bleached:diseased)
ggplot(toplo, aes(x = station_code, y = val)) +
geom_bar(stat = 'identity') +
facet_wrap(~var, ncol = 1) +
scale_y_continuous('Proportion') +
scale_x_discrete('Station') +
mythm
Dominance of Orbicella and Acropora genera was assessed as the sum of relative abundances of species at each site. This metric also refers to structural dominance of the species so it was also assessed as the sum of the surface area of all species in the genera divided by the total.
toplo <- filter(crl_met, acrorb_rel_abu != 0 & acrorb_csa != 0) %>%
arrange(acrorb_csa) %>%
mutate(station_code = factor(station_code, levels = as.character(station_code))) %>%
rename(
`Relative abundance` = acrorb_rel_abu,
`Proportion CSA` = acrorb_csa
) %>%
gather('var', 'val', `Relative abundance`:`Proportion CSA`)
ggplot(toplo, aes(x = station_code, y = val)) +
geom_bar(stat = 'identity') +
facet_wrap(~var, ncol = 1) +
scale_y_continuous('Proportion') +
scale_x_discrete('Station') +
mythm
The United States Environmental Protection Agency (EPA) GitHub project code is provided on an "as is" basis and the user assumes responsibility for its use. EPA has relinquished control of the information and no longer has responsibility to protect the integrity , confidentiality, or availability of the information. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by EPA. The EPA seal and logo shall not be used in any manner to imply endorsement of any commercial product or activity by EPA or the United States Government. RCS
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.