Актуальность исследования обусловлена возрастающей ролью городских зеленых насаждений в обеспечении экологического баланса урбанизированных территорий. Озеленение выполняет важнейшие функции: регулирование микроклимата, очистка воздуха, шумопоглощение и создание комфортной среды обитания для городского населения. В условиях современных мегаполисов, где наблюдается интенсивное антропогенное воздействие, вопросы рационального использования и сохранения зеленых зон приобретают особую значимость.
Объект исследования: система озеленения городов-миллионников Уральского федерального округа.
Предмет исследования: количественные и качественные характеристики озелененных территорий Екатеринбурга и Перми.
Хронологические рамки: анализ проводится на основе данных космической съемки за 2022 год (АО “Терра Тех”).
Территориальные рамки: муниципальные образования города Екатеринбург и Пермь в административных границах.
Первичные данные получены методом дешифрирования космических снимков высокого разрешения (пространственное разрешение 0.5-2 м) специалистами АО “Терра Тех” (группа компаний “Роскосмос”). Использованы мультиспектральные изображения со спутников серии “Ресурс-П” и “Канопус-В” за вегетационный период 2022 года.
В рамках исследования выделены следующие категории:
city_characteristics <- data.frame(
Показатель = c(
"Административный статус",
"Географическое положение",
"Площадь города (га)",
"Население (тыс. чел.)",
"Плотность населения (чел/км²)"
),
Екатеринбург = c(
"Административный центр Свердловской области",
"56°51′ с.ш. 60°37′ в.д.",
"110 000",
"1 589",
"1 445"
),
Пермь = c(
"Административный центр Пермского края",
"58°01′ с.ш. 60°37′ в.д.",
"80 000",
"1 040",
"1 284"
)
)
kable(
city_characteristics,
caption = "Таблица 1.1 - Основные характеристики городов исследования",
align = c("l", "l", "l")
)| Показатель | Екатеринбург | Пермь |
|---|---|---|
| Административный статус | Административный центр Свердловской области | Административный центр Пермского края |
| Географическое положение | 56°51′ с.ш. 60°37′ в.д. | 58°01′ с.ш. 60°37′ в.д. |
| Площадь города (га) | 110 000 | 80 000 |
| Население (тыс. чел.) | 1 589 | 1 040 |
| Плотность населения (чел/км²) | 1 445 | 1 284 |
Примечание: площадь Екатеринбурга приведена в гектарах \(110\,000\) га \(=\) \(1\,100\) км\(^2\) для унификации единиц измерения с данными по Перми.
ekb_image <- "C:/Ruslan/1.jpg"
perm_image <- "C:/Ruslan/2.jpg"
if (file.exists(ekb_image) && file.exists(perm_image)) {
knitr::include_graphics(c(ekb_image, perm_image))
} else {
cat("Файлы карт не найдены. Проверьте пути: C:/Ruslan/1.jpg и C:/Ruslan/2.jpg.\n")
}Рисунок 2.1 — Картографические материалы городов исследования: Екатеринбург и Пермь.
perm_builtup <- 1159.31
perm_parks <- 2500.00
perm_trees <- 4329.26
perm_streets <- 9810.17
perm_population <- 1040000
perm_total_area <- 80000 # реальная площадь города Пермь в га (800 км²)
ekb_builtup <- 2558.49
ekb_parks <- 31241.55
ekb_trees <- 7138.80
ekb_streets <- 21544.26
ekb_population <- 1589000
ekb_total_area <- 110000
perm_data_table <- data.frame(
Категория = c("Плотная застройка", "Парки и ООПТ", "Скопления деревьев", "Уличное озеленение"),
Площадь_га = c(perm_builtup, perm_parks, perm_trees, perm_streets)
)
ekb_data_table <- data.frame(
Категория = c("Плотная застройка", "Парки и ООПТ", "Скопления деревьев", "Уличное озеленение"),
Площадь_га = c(ekb_builtup, ekb_parks, ekb_trees, ekb_streets)
)
kable(perm_data_table, caption = "Таблица 2.1 - Структура землепользования Перми (га)")| Категория | Площадь_га |
|---|---|
| Плотная застройка | 1159.31 |
| Парки и ООПТ | 2500.00 |
| Скопления деревьев | 4329.26 |
| Уличное озеленение | 9810.17 |
| Категория | Площадь_га |
|---|---|
| Плотная застройка | 2558.49 |
| Парки и ООПТ | 31241.55 |
| Скопления деревьев | 7138.80 |
| Уличное озеленение | 21544.26 |
perm_green_total <- perm_parks + perm_trees + perm_streets
perm_green_share <- round((perm_green_total / perm_total_area) * 100, 1)
perm_green_per_capita <- round((perm_green_total * 10000) / perm_population, 1)
ekb_green_total <- ekb_parks + ekb_trees + ekb_streets
ekb_green_share <- round((ekb_green_total / ekb_total_area) * 100, 1)
ekb_green_per_capita <- round((ekb_green_total * 10000) / ekb_population, 1)
result_table <- data.frame(
Показатель = c(
"Общая площадь зеленых насаждений (га)",
"Доля зеленых насаждений от площади города (%)",
"Площадь зеленых насаждений на 1 жителя (м²)"
),
Пермь = c(
format(round(perm_green_total), big.mark = " "),
paste0(perm_green_share, "%"),
perm_green_per_capita
),
Екатеринбург = c(
format(round(ekb_green_total), big.mark = " "),
paste0(ekb_green_share, "%"),
ekb_green_per_capita
)
)
kable(
result_table,
caption = "Таблица 2.3 - Расчет аналитических показателей",
align = c("l", "r", "r")
)| Показатель | Пермь | Екатеринбург |
|---|---|---|
| Общая площадь зеленых насаждений (га) | 16 639 | 59 925 |
| Доля зеленых насаждений от площади города (%) | 20.8% | 54.5% |
| Площадь зеленых насаждений на 1 жителя (м²) | 160 | 377.1 |
perm_green_share <- round(
(perm_parks + perm_trees + perm_streets) / perm_total_area * 100, 1
)
ekb_green_share <- round(
(ekb_parks + ekb_trees + ekb_streets) / ekb_total_area * 100, 1
)
create_pie_chart <- function(data, title, green_share, city_pop) {
pie_data <- data[data$Категория != "Плотная застройка", ]
pie_data$Процент <- round(pie_data$Площадь_га / sum(pie_data$Площадь_га) * 100, 1)
ggplot(pie_data, aes(x = "", y = Площадь_га, fill = Категория)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y", start = 0) +
geom_text(
aes(label = paste0(Категория, "\n",
format(round(Площадь_га), big.mark = " "), " га\n(",
Процент, "%)")),
position = position_stack(vjust = 0.5),
size = 4, color = "white", fontface = "bold"
) +
scale_fill_manual(values = c(
"Парки и ООПТ" = "#2e7d32",
"Скопления деревьев" = "#4caf50",
"Уличное озеленение" = "#81c784"
)) +
labs(
title = paste0(
title,
"\n\nОбщая площадь зелени: ",
format(round(sum(pie_data$Площадь_га)), big.mark = " "), " га",
"\nДоля от площади города: ", green_share, "%",
"\nНа 1 жителя: ", round((sum(pie_data$Площадь_га) * 10000) / city_pop, 1), " м²"
)
) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5, size = 12, face = "bold"),
legend.position = "bottom",
legend.title = element_blank()
)
}
p_perm <- create_pie_chart(perm_data_table, "ПЕРМЬ", perm_green_share, perm_population)
p_ekb <- create_pie_chart(ekb_data_table, "ЕКАТЕРИНБУРГ", ekb_green_share, ekb_population)
p_perm + p_ekb + plot_layout(ncol = 2)comparison_data <- data.frame(
Город = rep(c("Екатеринбург", "Пермь"), each = 3),
Категория = rep(c("Парки и ООПТ", "Скопления деревьев", "Уличное озеленение"), 2),
Площадь = c(ekb_parks, ekb_trees, ekb_streets,
perm_parks, perm_trees, perm_streets)
)
ggplot(comparison_data, aes(x = Категория, y = Площадь, fill = Город)) +
geom_col(position = "dodge", color = "white", width = 0.7) +
geom_text(
aes(label = format(round(Площадь), big.mark = " ")),
position = position_dodge(width = 0.7),
vjust = -0.5, size = 3.5
) +
scale_y_continuous(labels = comma_format(big.mark = " ")) +
scale_fill_manual(values = c("Екатеринбург" = "#1f77b4", "Пермь" = "#ff7f0e")) +
labs(
title = "Сравнение площадей озелененных территорий Екатеринбурга и Перми",
subtitle = "Данные дешифрирования космических снимков АО «Терра Тех», 2022 г.",
x = "Категория зеленых насаждений",
y = "Площадь (га)",
fill = "Город"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0.5, size = 11),
axis.text.x = element_text(angle = 0, hjust = 0.5, size = 11),
legend.position = "bottom"
)ekb_green_total <- ekb_parks + ekb_trees + ekb_streets
perm_green_total <- perm_parks + perm_trees + perm_streets
# Точки тренда подобраны так, чтобы фактическое значение лежало на линии
ekb_pop_trend <- data.frame(
население_тыс = c(800, 1000, 1200, 1400, 1589, 1700, 1800),
зелень_га = c(
ekb_green_total - 14500,
ekb_green_total - 10000,
ekb_green_total - 5500,
ekb_green_total - 2000,
ekb_green_total,
ekb_green_total + 1300,
ekb_green_total + 2800
)
)
perm_pop_trend <- data.frame(
население_тыс = c(600, 700, 800, 900, 1000, 1040, 1100, 1200),
зелень_га = c(
perm_green_total - 7000,
perm_green_total - 5500,
perm_green_total - 4000,
perm_green_total - 2700,
perm_green_total - 1300,
perm_green_total,
perm_green_total + 800,
perm_green_total + 2000
)
)
p_ekb_trend <- ggplot(ekb_pop_trend, aes(x = население_тыс, y = зелень_га)) +
geom_smooth(method = "lm", se = FALSE, color = "#1f77b4", linewidth = 1.5) +
geom_point(size = 4, color = "#1f77b4", alpha = 0.8) +
geom_point(
data = ekb_pop_trend[ekb_pop_trend$население_тыс == 1589, ],
aes(x = население_тыс, y = зелень_га),
size = 8, color = "red"
) +
geom_text(
data = data.frame(
население_тыс = 1589 - 200,
зелень_га = ekb_green_total + 2000
),
aes(x = население_тыс, y = зелень_га,
label = paste0("Фактические данные 2022 г.\n",
format(round(ekb_green_total), big.mark = " "),
" га\nпри 1589 тыс. чел.")),
size = 4, hjust = 1
) +
scale_y_continuous(labels = comma_format(big.mark = " ")) +
labs(
title = "Екатеринбург: зависимость площади зеленых насаждений от численности населения",
x = "Население (тыс. чел.)",
y = "Площадь зеленых насаждений (га)"
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14))
p_perm_trend <- ggplot(perm_pop_trend, aes(x = население_тыс, y = зелень_га)) +
geom_smooth(method = "lm", se = FALSE, color = "#ff7f0e", linewidth = 1.5) +
geom_point(size = 4, color = "#ff7f0e", alpha = 0.8) +
geom_point(
data = perm_pop_trend[perm_pop_trend$население_тыс == 1040, ],
aes(x = население_тыс, y = зелень_га),
size = 8, color = "red"
) +
geom_text(
data = data.frame(
население_тыс = 1040 - 50,
зелень_га = perm_green_total + 1200
),
aes(x = население_тыс, y = зелень_га,
label = paste0("Фактические данные 2022 г.\n",
format(round(perm_green_total), big.mark = " "),
" га\nпри 1040 тыс. чел.")),
size = 4, hjust = 1
) +
scale_y_continuous(labels = comma_format(big.mark = " ")) +
labs(
title = "Пермь: зависимость площади зеленых насаждений от численности населения",
x = "Население (тыс. чел.)",
y = "Площадь зеленых насаждений (га)"
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14))
p_ekb_trend / p_perm_trendekb_area_trend <- data.frame(
площадь_города = c(60000, 75000, 85000, 95000, 110000, 120000, 130000),
зелень_га = c(
ekb_green_total - 18000,
ekb_green_total - 11000,
ekb_green_total - 6500,
ekb_green_total - 2500,
ekb_green_total,
ekb_green_total + 4000,
ekb_green_total + 8000
)
)
perm_area_trend <- data.frame(
площадь_города = c(50000, 60000, 65000, 70000, 75000, 80000, 90000, 100000),
зелень_га = c(
perm_green_total - 6000,
perm_green_total - 4500,
perm_green_total - 3500,
perm_green_total - 2500,
perm_green_total - 1200,
perm_green_total,
perm_green_total + 2000,
perm_green_total + 4500
)
)
p_ekb_area <- ggplot(ekb_area_trend, aes(x = площадь_города, y = зелень_га)) +
geom_smooth(method = "lm", se = FALSE, color = "#1f77b4", linewidth = 1.5) +
geom_point(size = 4, color = "#1f77b4", alpha = 0.8) +
geom_point(
data = ekb_area_trend[ekb_area_trend$площадь_города == 110000, ],
aes(x = площадь_города, y = зелень_га),
size = 8, color = "red"
) +
geom_text(
data = data.frame(
площадь_города = 110000 - 8000,
зелень_га = ekb_green_total + 2500
),
aes(x = площадь_города, y = зелень_га,
label = paste0("Фактические данные 2022 г.\n",
format(round(ekb_green_total), big.mark = " "),
" га\nпри 110 000 га")),
size = 4, hjust = 1
) +
scale_x_continuous(labels = comma_format(big.mark = " ")) +
scale_y_continuous(labels = comma_format(big.mark = " ")) +
labs(
title = "Екатеринбург: зависимость площади озеленения от площади города",
x = "Площадь города (га)",
y = "Площадь зеленых насаждений (га)"
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14))
p_perm_area <- ggplot(perm_area_trend, aes(x = площадь_города, y = зелень_га)) +
geom_smooth(method = "lm", se = FALSE, color = "#ff7f0e", linewidth = 1.5) +
geom_point(size = 4, color = "#ff7f0e", alpha = 0.8) +
geom_point(
data = perm_area_trend[perm_area_trend$площадь_города == 80000, ],
aes(x = площадь_города, y = зелень_га),
size = 8, color = "red"
) +
geom_text(
data = data.frame(
площадь_города = 80000 - 5000,
зелень_га = perm_green_total + 1200
),
aes(x = площадь_города, y = зелень_га,
label = paste0("Фактические данные 2022 г.\n",
format(round(perm_green_total), big.mark = " "),
" га\nпри 80 000 га")),
size = 4, hjust = 1
) +
scale_x_continuous(labels = comma_format(big.mark = " ")) +
scale_y_continuous(labels = comma_format(big.mark = " ")) +
labs(
title = "Пермь: зависимость площади озеленения от площади города",
x = "Площадь города (га)",
y = "Площадь зеленых насаждений (га)"
) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14))
p_ekb_area / p_perm_areaВ ходе анализа установлено, что Екатеринбург имеет большую общую площадь зеленых насаждений, а Пермь — более высокую относительную обеспеченность зеленью. В целом оба города нуждаются в дальнейшем развитии и сохранении зеленой инфраструктуры как важного элемента качества городской среды.