Некоторые физико-химические характеристики почв Коуровки и Северки - участков “Урал-Карбона”

Введение

Химический состав почв достаточно разнообразен, причем различается он у разных типов почв как качественно, так и количественно. Однако важнейшие ее элементы - гумусовые вещества - присущи любому типу. Поэтому изучение наличия таких органогенных элементов, как азот и углерод, в почве очень важно.

Преобладающая часть почвенного азота (95-98%) и углерода находятся в составе органического вещества почвы - гумуса. А он, как известно, является важнейшим фактором плодородия.

Кроме того, важной фунцией почвы является аккумулирование в своих горизонтах углерода в качестве элемента, входящего в состав CO2 - парникового газа, которому сейчас уделяется пристальное внимание в рамках карбоновых полигонов.

Карбоновые полигоны – один или несколько участков земной поверхности с репрезентативными для данной территории рельефом, структурой растительного и почвенного покрова, созданные для реализации мероприятий, направленных на развитие научного, кадрового и инфраструктурного потенциалов в области разработки и испытаний технологий контроля баланса климатических активных газов природных экосистем.

Цель

Визуально представить распределение элементов по почвенному профилю, а также оценить запасы углерода в рассматриваемых почвах.

Задачи

  1. Перевести “сырые” данные в формат, удобный для анализа.
  2. Написать код, по которому будут создаваться графические предствления.
  3. Внести необходимые правки в графики прошлого года.
  4. Сделать выводы по представленным характеристикам.

Данные

Данные получены в собственноручно в процессе летней практики 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))

Углерод

На первом графике отображен общий профиль содержания углерода для Коуровки и Северки. Визуально профили практически идентичны, что говорит о схожести процессов поступления и аккумулирования элемента в почве на территориально разных участках.

Основные особенности профиля:

  1. Максимальное содержание - в верхних горизонтах: подстилке и гумусовом.
  2. Минимальное содержание - в нижнем горизонте - переходном к материнской породе.
  3. Стабильное снижение углерода с глубиной, что соответствует регрессивно-аккумулятивному типу распределения элементов в почвенном профиле.
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))

Вывод

Таким образом, все поставленные задачи были выполнены. Рассмотренные характеристики, за исключением запасов углерода, типичны для дерново-подзолистых почв, следовательно, участки для “Урал-Карбона” выбраны верно.

Более подробный анализ и на большем количестве исходных данных при написании магистерской диссертации.

Источники

  1. Рыжова И. М., Подвезенная М. А., Кириллова Н. П. Вариабельность запасов углерода в автоморфных и полугидроморфных почвах лесных экосистем европейской тер-ритории России: сравнительный статистический анализ // Вестн. Моск. Ун-та. – Сер. : 17. Почвоведение. – 2022. – № 2. – С. 20–27.
  2. Дергачева М. И., Фирсова В. П. Состав органического вещества почв южно-таежных лесов Урала и Зауралья // Лесные почвы южной тайги Урала и Зауралья. – Сверд-ловск, 1972. – С. 130–145.
  3. Орлов Д. С. Гумусовые кислоты почв и общая теория гумификации. – М. : Изд-во МГУ, 1990. – 325 с.