Химический состав почв достаточно разнообразен, причем различается он у разных типов почв как качественно, так и количественно. Однако важнейшие ее элементы - гумусовые вещества - присущи любому типу. Поэтому изучение наличия таких органогенных элементов, как азот и углерод, в почве очень важно.
Преобладающая часть почвенного азота (95-98%) и углерода находятся в составе органического вещества почвы - гумуса. А он, как известно, является важнейшим фактором плодородия.
Кроме того, важной фунцией почвы является аккумулирование в своих горизонтах углерода в качестве элемента, входящего в состав CO2 - парникового газа, которому сейчас уделяется пристальное внимание в рамках карбоновых полигонов.
Карбоновые полигоны – один или несколько участков земной поверхности с репрезентативными для данной территории рельефом, структурой растительного и почвенного покрова, созданные для реализации мероприятий, направленных на развитие научного, кадрового и инфраструктурного потенциалов в области разработки и испытаний технологий контроля баланса климатических активных газов природных экосистем.
Визуально представить распределение элементов по почвенному профилю, а также оценить запасы углерода в рассматриваемых почвах.
Данные получены в собственноручно в процессе летней практики 2023 года в стенах лабораторий кафедры экологии.
library(readxl)
library(tidyverse)
library(formattable)
df <- read_excel("проект.xlsx") %>%
mutate_at(c("Cорг", "Nобщ"), \(x)round(x, 2))
formattable(df)
| № обр. | Горизонт | Глубина, см | Cорг | Nобщ |
|---|---|---|---|---|
| К32 | A0 | 0–1 | 35.68 | 1.24 |
| К31 | A1 | 1–10 | 5.09 | 0.39 |
| К30 | A2 | 10–25 | 0.60 | 0.11 |
| К29 | B | 25–55 | 0.48 | 0.07 |
| К28 | BC | 55–70 | 0.41 | 0.07 |
| К16 | A0 | 0–2 | 34.26 | 1.47 |
| К15 | A | 2–17 | 4.52 | 0.40 |
| К14 | AB | 17–30 | 0.57 | 0.09 |
| К13 | B | 30–70 | 0.52 | 0.06 |
| К4 | A0 | 0–2 | 34.50 | 1.19 |
| К3 | A1 | 2–12 | 12.40 | 0.26 |
| К2 | A2 | 12–32 | 0.42 | 0.05 |
| К1 | B | 32–60 | 0.31 | 0.05 |
| S4 | A0 | 0–5 | 36.69 | 1.23 |
| S3 | A1 | 5–7(10) | 8.17 | 0.31 |
| S2 | B | 7(10)–30 | 0.34 | 0.03 |
| S1 | BC | 30–50 | 0.14 | 0.01 |
| S19 | A0 | 0–7 | 38.12 | 1.54 |
| S18 | A1 | 7–13 | 7.22 | 0.46 |
| S17 | A2B1 | 13–20 | 1.00 | 0.04 |
| S16 | B1 | 20–30 | 0.48 | 0.03 |
| S15 | B2 | 30–40 | 0.12 | 0.01 |
| S14 | BC | 40–55 | 0.11 | 0.01 |
| S13 | BC | 55–70 | 0.11 | 0.01 |
| S36 | A0 | 0–4 | 35.20 | 1.21 |
| S35 | A1 | 4–11 | 10.89 | 0.36 |
| S34 | A2 | 11–25 | 0.74 | 0.05 |
| S33 | A2 | 25–37 | 0.32 | 0.02 |
| S32 | B | 37–58 | 0.14 | 0.02 |
| S31 | BC | 58–80 | 0.12 | 0.02 |
| S30 | BC | 80–90 | 0.14 | 0.02 |
| S56 | A0 | 0–5 | 43.00 | 1.09 |
| S55 | A1 | 5–7 | 11.23 | 0.52 |
| S54 | A2 | 7–17 | 0.64 | 0.05 |
| S53 | A2 | 17–28 | 0.24 | 0.01 |
| S52 | B | 28–38 | 0.15 | 0.01 |
| S51 | B | 38–49 | 0.10 | 0.01 |
| S50 | BC | 49–60 | 0.05 | 0.01 |
| S49 | BC | 60–70 | 0.05 | 0.01 |
dictionary <- tibble(
Горизонт = c("A0", "A", "A1", "A2", "AB", "A2B1", "B", "B1", "B2", "BC"),
deep = c(5,4,4, 3,3,3, 2, 2, 2, 1))
df$id <- c(1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7)
df$terr <- ifelse (df$id == 1 | df$id == 2 | df$id == 3, "Коуровка",
"Северка")
df2 <-
df %>%
left_join(dictionary, by = "Горизонт") %>%
group_by(deep, terr) %>%
summarise(mean_C = mean(Cорг), sd_C = sd(Cорг), .groups = "drop") %>%
mutate_at(c("mean_C", "sd_C"), \(x)round(x, 2))
df3 <-
df %>%
left_join(dictionary, by = "Горизонт") %>%
group_by(deep, terr) %>%
summarise(mean_N = mean(Nобщ), sd_N = sd(Nобщ), .groups = "drop") %>%
mutate_at(c("mean_N", "sd_N"), \(x)round(x, 2))
На первом графике отображен общий профиль содержания углерода для Коуровки и Северки. Визуально профили практически идентичны, что говорит о схожести процессов поступления и аккумулирования элемента в почве на территориально разных участках.
Основные особенности профиля:
df2 %>%
ggplot(aes(x = deep, y = `mean_C`)) +
coord_flip() +
geom_point(size = 2) +
geom_line(size = 0.8) +
geom_errorbar(aes(ymin = `mean_C`- `sd_C`, ymax = `mean_C`+ `sd_C`), width=0.1, size = 0.8) +
geom_text(aes(label = paste0(mean_C, "±", sd_C)), vjust = 1.5, hjust = -0.1, size = 3) +
scale_x_continuous(breaks = 1:5, labels = c("BC", "B", "A2", "A1", "A0"), name = "Горизонт") +
scale_y_continuous(name = "Углерод органический, %", position = "right", limits = c(0, 47)) +
facet_wrap(~terr) +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
strip.text.x = element_text(size = 12))
На втором графике можно увидеть количественное сравнение содержания углерода на двух участках. При наложении графиков друг на друга профили идентичны.
df2 %>%
ggplot(aes(x = deep, y = `mean_C`, group = terr, color = terr)) +
geom_line(size = 1) +
geom_point(size = 2) +
geom_errorbar(aes(ymin = `mean_C`- `sd_C`, ymax = `mean_C`+ `sd_C`), width=0.1, size = 0.8) +
coord_flip() +
scale_x_continuous(breaks = 1:5, labels = c("BC", "B", "A2", "A1", "A0"), name = "Горизонт") +
scale_y_continuous(position = "right", name = "Углерод органический, %") +
labs(color = "Территория") +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
legend.title = element_text(size = 12))
Таким образом, углерод поступают в почву “сверху”, при этом практически не проникая глубже гумусового горизонта. Регрессивно-аккумулятивный тип является характерным для дерново-подзолистых почв.
Одной из важнейших характеристик в целях исследований Карбонового полигона является расчет запасов углерода в почвах. Они высчитываются на основании мощностей и плотностей соответствующих горизонтов. В таблице представлены получившиеся значения запасов углерода по Северке. Данные по Коуровке на данный момент отсутствуют.
z <-read_excel("reserves.xlsx")
z1 <- z %>%
mutate("Запасы, т/га" = `мощность, см` * `Cорг %` * `Плотность`) %>%
group_by (`разрез`) %>%
mutate ("Запасы, %" = (`Запасы, т/га`/sum(`Запасы, т/га`))*100) %>%
mutate_at(c("Cорг %", "Запасы, т/га", "Запасы, %"), \(x)round(x, 2))
formattable(z1)
| разрез | горизонт | глубина, см | мощность, см | Cорг % | Плотность | Запасы, т/га | Запасы, % |
|---|---|---|---|---|---|---|---|
| S1-22 | A0 | 0–5 | 5 | 36.69 | 0.1831 | 33.59 | 45.57 |
| S1-22 | A1 | 5–7(10) | 5 | 8.17 | 0.6662 | 27.20 | 36.91 |
| S1-22 | B | 7(10)–30 | 20 | 0.34 | 1.3597 | 9.25 | 12.54 |
| S1-22 | BC | 30–50 | 20 | 0.14 | 1.3097 | 3.67 | 4.98 |
| S2-22 | A0 | 0–7 | 7 | 38.12 | 0.1831 | 48.86 | 49.81 |
| S2-22 | A1 | 7–13 | 6 | 7.22 | 0.6662 | 28.84 | 29.40 |
| S2-22 | A2B1 | 13–20 | 7 | 1.00 | 1.1393 | 8.00 | 8.16 |
| S2-22 | B1 | 20–30 | 10 | 0.48 | 1.3597 | 6.46 | 6.58 |
| S2-22 | B2 | 30–40 | 10 | 0.12 | 1.3597 | 1.70 | 1.73 |
| S2-22 | BC | 40–55 | 15 | 0.11 | 1.3097 | 2.16 | 2.20 |
| S2-22 | BC | 55–70 | 15 | 0.11 | 1.3097 | 2.06 | 2.10 |
| S3-22 | A0 | 0–4 | 4 | 35.20 | 0.1831 | 25.78 | 25.26 |
| S3-22 | A1 | 4–11 | 7 | 10.89 | 0.6662 | 50.78 | 49.75 |
| S3-22 | A2 | 11–25 | 14 | 0.74 | 1.1393 | 11.72 | 11.49 |
| S3-22 | A2 | 25–37 | 12 | 0.32 | 1.1393 | 4.44 | 4.35 |
| S3-22 | B | 37–58 | 21 | 0.14 | 1.3597 | 4.09 | 4.01 |
| S3-22 | BC | 58–80 | 22 | 0.12 | 1.3097 | 3.46 | 3.39 |
| S3-22 | BC | 80–90 | 10 | 0.14 | 1.3097 | 1.79 | 1.75 |
| S4-22 | A0 | 0–5 | 5 | 43.00 | 0.1831 | 39.36 | 56.67 |
| S4-22 | A1 | 5–7 | 2 | 11.23 | 0.6662 | 14.96 | 21.54 |
| S4-22 | A2 | 7–17 | 10 | 0.64 | 1.1393 | 7.35 | 10.58 |
| S4-22 | A2 | 17–28 | 11 | 0.24 | 1.1393 | 2.95 | 4.24 |
| S4-22 | B | 28–38 | 10 | 0.15 | 1.3597 | 2.04 | 2.94 |
| S4-22 | B | 38–49 | 11 | 0.10 | 1.3597 | 1.42 | 2.05 |
| S4-22 | BC | 49–60 | 11 | 0.05 | 1.3097 | 0.72 | 1.04 |
| S4-22 | BC | 60–70 | 10 | 0.05 | 1.3097 | 0.65 | 0.94 |
На диаграммах представлены процентные распределения запасов органического углерода по почвенным горизонтам. Наибольшие запасы приходятся на горизонты подстилки и гумусовый, несмотря на их малую мощность (не более 15 см на оба горизонта).
z1 %>%
group_by(разрез, горизонт) %>%
summarise_if(is.numeric, sum) %>%
ungroup() %>%
ggplot( aes(x = "", y = `Запасы, %`, fill = горизонт)) +
geom_col(color = "black") +
geom_text(aes(label = горизонт, x = 1.6),
position = position_stack(vjust = 0.5)) +
coord_polar(theta = "y") +
facet_wrap(~разрез) +
theme_void(base_size = 16) +
theme (legend.position = "none")
Были найдены литературные данные, в которых представлены запасы в целом по лесным экосистемам европейской части России [Рыжова и др., 2022] и по Зауральской холмисто-предгорной провинции [Дергачева, Фирсова, 1972], в пределах которой находятся участки “Урал-Карбона”.
z2 <- tibble(
"Данные" = c("S1-22", "S2-22", "S3-22", "S4-22"),
"0-30 см" = c(sum(z1$`Запасы, т/га`[1:3]),
sum(z1$`Запасы, т/га`[5:8]),
sum(z1$`Запасы, т/га`[12:14], z1$`Запасы, т/га`[15]*(5/12)),
sum(z1$`Запасы, т/га`[19:22], z1$`Запасы, т/га`[23]*(2/10))),
"0-50 см" = c(sum(z1$`Запасы, т/га`[1:4]),
sum(z1$`Запасы, т/га`[5:9], z1$`Запасы, т/га`[10]*(10/15)),
sum(z1$`Запасы, т/га`[12:15], z1$`Запасы, т/га`[16]*(13/21)),
sum(z1$`Запасы, т/га`[19:24], z1$`Запасы, т/га`[25]*(1/11))),
"весь разрез" = c(sum(z1$`Запасы, т/га`[1:4]),
sum(z1$`Запасы, т/га`[5:11]),
sum(z1$`Запасы, т/га`[12:18]),
sum(z1$`Запасы, т/га`[19:26])))
z3 <- tibble(
"Данные" = c("Лес", "Урал"),
"0-30 см" = c(33.9, 62.92),
"0-50 см" = c(41.9, NA),
"весь разрез" = c(55, 80.71))
z4 <- data_frame(rbind(z2, z3)) %>%
mutate (across(2:4, round, 2)) %>%
pivot_longer(cols = 2:4,
names_to = "Глубина", values_to = "Запасы") %>%
mutate("sd" = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18.1, 21.9, 24.9, 18.9, 0, 24.7)) %>%
group_by(Глубина) %>%
ungroup()
z4 %>%
ggplot(aes(Данные, Запасы)) +
geom_col(fill="green", color = "black", size = 0.8) +
geom_errorbar(aes(ymin = Запасы- sd, ymax = Запасы+ sd), width = 0.4, size = 0.8)+
labs(x = " ", y = "Запасы, т/га") +
facet_wrap(~`Глубина`) +
theme_classic() +
theme(
axis.text.x = element_text(angle = 90, vjust = 0.4, size = 12),
axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
legend.title = element_text(size = 12),
strip.text.x = element_text(size = 12))
Запасы углерода были пересчитаны на толщи 30 и 50 см, а также на весь разрез.
Полученные значения общих запасов органического углерода в почвах участка Северка при сравнении с литературными данными соответствуют указанным пределам варьирования данного показателя для Зауральской холмисто-предгорной провинции, однако значительно выше таковых для лесных экосистем европейской части России.
Такие запасы углерода соответствуют среднему уровню для 0–20 см и низкому уровню обеспеченности для всего разреза [Орлов, 1990]. Относительно низкий уровень запасов гумуса объясняется особенностями почвообразования в пределах горной территории, а именно: сравнительно малой мощностью почвенных разрезов, а в особенности гумусового горизонта.
z2 %>%
pivot_longer(cols = 2:4,
names_to = "deep", values_to = "reserves") %>%
group_by(deep) %>%
summarise(среднее = mean(reserves), стандоткл = sd(reserves), .groups = "drop") %>%
mutate_at(c("среднее", "стандоткл"), \(x)round(x, 2)) %>%
ungroup() %>%
ggplot(aes(x = reorder(deep, -среднее), y = среднее)) +
geom_col(fill = "red", color = "black", width = 0.5) +
geom_errorbar(aes(ymin = среднее-стандоткл, ymax = среднее+стандоткл), width = 0.1, size = 0.9) +
geom_text(aes(label = paste0(среднее, "±", стандоткл)), vjust = -1.5, hjust = -0.1) +
geom_text(label = c("Средний уровень", " ", "Низкий уровень"), vjust = 1.5, hjust = -0.05 ) +
coord_flip() +
scale_x_discrete(name = "") +
scale_y_continuous(name = "Запасы гумуса, т/га", limits = c(0, 105)) +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8))
Наблюдается регрессивно-аккумулятивный тип накопления элемента в почвенном профиле, что также типично для дерново-подзолистых почв.
df3 %>%
ggplot(aes(x = deep, y = `mean_N`)) +
coord_flip() +
geom_point(size = 2) +
geom_line(size = 0.8) +
geom_errorbar(aes(ymin = `mean_N`- `sd_N`, ymax = `mean_N`+ `sd_N`), width=0.1, size = 0.8) +
geom_text(aes(label = paste0(mean_N, "±", sd_N)), vjust = 1.5, hjust = -0.1, size = 3.5) +
scale_x_continuous(breaks = 1:5, labels = c("BC", "B", "A2", "A1", "A0"), name = "Горизонт") +
scale_y_continuous(position = "right", name = "Азот общий, %", limits = c(0, 1.6)) +
facet_wrap(~terr) +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
strip.text.x = element_text(size = 12))
df3 %>%
ggplot(aes(x = deep, y = `mean_N`, group = terr, color = terr)) +
coord_flip() +
geom_point(size = 2) +
geom_line(size = 1) +
geom_errorbar(aes(ymin = `mean_N`- `sd_N`, ymax = `mean_N`+ `sd_N`), width=0.1, size = 0.8) +
scale_x_continuous(breaks = 1:5, labels = c("BC", "B", "A2", "A1", "A0"), name = "Горизонт") +
scale_y_continuous(position = "right", name = "Азот общий, %", limits = c(0, 1.5)) +
labs(color = "Территория:") +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
legend.title = element_text(size = 12))
В исследуемых образцах pH как водной, так и солевой вытяжки не превышает 5 единиц рН.
Дерново-подзолистые почвы характеризуются кислой или сильнокислой реакцией среды, чечу соответствуют полученные результаты.
pH <- read_excel("pHH.xlsx")
pH1 <- pH[-c(26),] %>%
subset(select = -5) %>%
left_join(dictionary, by = "Горизонт") %>%
subset(select = -2:-3) %>%
group_by(Разрез, deep) %>%
summarise_if(is.numeric, mean) %>%
ungroup()
pH1 %>%
ggplot(aes(x = deep, y = `рН(вода)`)) +
coord_flip() +
geom_point(size = 2) +
geom_line(size = 0.8) +
scale_x_continuous(breaks = 1:5, labels = c("BC", "B", "A2", "A1", "A0"), name = "Горизонт") +
scale_y_continuous(name = "pH водной вытяжки", position = "right", limits = c(4, 6)) +
facet_wrap(~Разрез) +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
legend.title = element_text(size = 12),
strip.text.x = element_text(size = 12))
pH2 <- pH[-c(26),] %>%
subset(select = -4) %>%
left_join(dictionary, by = "Горизонт") %>%
subset(select = -2:-3) %>%
group_by(Разрез, deep) %>%
summarise_if(is.numeric, mean) %>%
ungroup()
pH2 %>%
ggplot(aes(x = deep, y = `рН(соль)`)) +
coord_flip() +
geom_point(size = 2) +
geom_line(size = 0.8) +
scale_x_continuous(breaks = 1:5, labels = c("BC", "B", "A2", "A1", "A0"), name = "Горизонт") +
scale_y_continuous(name = "pH солевой вытяжки (1н KCl)", position = "right", , limits = c(3.5, 5.5)) +
facet_wrap(~Разрез) +
theme_classic() +
theme(axis.title.x = element_text(size= 13),
axis.title.y = element_text(size = 13),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.line.x = element_line(size = 0.8),
axis.line.y = element_line(size = 0.8),
legend.text = element_text(size = 12),
legend.title = element_text(size = 12),
strip.text.x = element_text(size = 12))
Таким образом, все поставленные задачи были выполнены. Рассмотренные характеристики, за исключением запасов углерода, типичны для дерново-подзолистых почв, следовательно, участки для “Урал-Карбона” выбраны верно.
Более подробный анализ и на большем количестве исходных данных при написании магистерской диссертации.