library(sf)
library(dplyr)
library(tidyverse)
library(fasterize)
library(kableExtra)
= c("WHITE", "BLACK", "ASIAN", "HISPANIC", "AM", "OTHER") list_race
Celem ćwiczenia jest opisanie rasowo-etnicznej struktury ludności wybranego hrabstwa wykorzystując metryki krajobrazowe. W ćwiczeniu zostaną wykorzystane dane zagregowane do obszarów spisowych (ang. census tract) dla District of Columbia dla roku 1990 oraz 2020 przygotowane w poprzednim ćwiczeniu (a zawierające typy zróżnicowania rasowo-etnicznej struktury ludności).
Proszę wykorzystać wybrane metryki krajobrazowe do opisania zmian typów zróżnicowania rasowo-etniczego w wybranym hrabstwie. Wynikowy raport powinien zawierać:
Plik klasyfikacja_1990_2020.shp zawiera wyniki klasyfikacji
obszarów spisowych na 9 typów zróżnicowania rasowo-etnicznego.
Zastosowanie metod analizy krajobrazu wymaga przekształcenia danych
wektorowych w dane rastrowe. W tym celu wykorzystana zostanie funkcja
fasterize()
z pakietu fasterize
. W pliku
klasyfikacja_1990_2020.shp typy zróżnicowania rasowo-etnicznego
zostały zakodowane skrótami literowymi (np. WM, HD). Przed wykonaniem
rasteryzacji należy zamienić kody literowe na kody liczbowe, np. WL = 1,
itd.
<- st_read("results/dc_klasyfikacja9typow.gpkg", layer = "cls1990_2020") cls_df
## Reading layer `cls1990_2020' from data source
## `/home/anna/DYDAKTYKA/Analiza_geoinformacyjna/cwiczenia2022_23/na_www/results/dc_klasyfikacja9typow.gpkg'
## using driver `GPKG'
## Simple feature collection with 206 features and 3 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 1610830 ymin: 1915291 xmax: 1629412 ymax: 1936182
## CRS: 5070
recode()
z pakietu dplyr
$cls90 = recode(cls_df$cls90, "WL"= 1, "WM" = 2, "BL" = 3, "BM" = 4, "AL" = 5, "AM" = 6, "HL" = 7, "HM" = 8, "HD" = 9) cls_df
Funkcja fasterize()
wymaga zdefiniowania kilku
argumentów:
Zostanie utworzony raster o rozdzielczości 100 m o zasięgu pobranym z warstwy cls_df.
library(fasterize)
<- raster(cls_df, res = 100)
rast rast
## class : RasterLayer
## dimensions : 209, 186, 38874 (nrow, ncol, ncell)
## resolution : 100, 100 (x, y)
## extent : 1610830, 1629430, 1915282, 1936182 (xmin, xmax, ymin, ymax)
## crs : +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
= fasterize(cls_df, rast, field = "cls90", fun="sum") cls
#kolory przypisane do poszczególnych typów zróżnicowania rasowo-etncznego w kolejności WL, WM, BL, BM, AL, AM, HL, HM, HD.
<- c("#FF8C00", "#FFD700", "#006400", "#32CD32", "#CD5555", "#FF6A6A", "#5D478B", "#9370DB", "#8F8F8F") cls_color
plot(cls, col = cls_color)
Komórki rastra, którym przypisano poszczególne typy zróżnicowania
rasowo-etnicznego tworzą określoną mozaikę rasowo-etniczną. Taką mozaikę
można opisać za pomocą metryk krajobrazowych. W R metryki krajobrazowe
można obliczyć używając pakietu landscapemetrics
. Metryki
krajobrazowe mogą być obliczone na poziomie pojedyńczych płatów (ang.
patch), dla danej klasy (ang. class), dla całego
krajobrazu (ang. landscape). Poniżej zostaną wyliczone wybrane
metryki dla poszczególnych klas.
library(landscapemetrics)
Wyświetlenie metryk krajobrazowych, które można wyliczyć na poziomie klasy. Tabela zawiera skróconą nazwę wskaźnika (metric), pełną nazwę wskaźnika (name), rodzaj metryki (type, np. aggregation metric, shape_metric), nazwę funkcji obliczającej dany wskaźnik w pakiecie landscapemetrics (function_name).
= list_lsm(level = "class") class_metr
head(class_metr)
## # A tibble: 6 x 5
## metric name type level function_name
## <chr> <chr> <chr> <chr> <chr>
## 1 ai aggregation index aggregation metric class lsm_c_ai
## 2 area_cv patch area area and edge metric class lsm_c_area_cv
## 3 area_mn patch area area and edge metric class lsm_c_area_mn
## 4 area_sd patch area area and edge metric class lsm_c_area_sd
## 5 ca total (class) area area and edge metric class lsm_c_ca
## 6 cai_cv core area index core area metric class lsm_c_cai_cv
Poniżej zostaną obliczone 4 metryki krajobrazowe:
= calculate_lsm(cls, level = ("class"), what = c("lsm_c_np", "lsm_c_lpi", "lsm_c_pland", "lsm_c_ai")) lm
## Warning: Only using 'what' argument.
Zmiana formatu wyświetlania tabeli z “długiego” na “szeroki”.
library(tidyverse)
= pivot_wider(lm[, c("class", "metric", "value")], names_from = metric, values_from = value) lm_df
Wartości metryk krajobrazowych w 1990 roku.
lm_df
## # A tibble: 6 x 5
## class ai lpi np pland
## <int> <dbl> <dbl> <dbl> <dbl>
## 1 1 96.7 21.4 3 22.3
## 2 2 89.7 5.92 9 13.9
## 3 3 96.8 49.8 5 49.9
## 4 4 91.1 2.95 9 10.6
## 5 6 95.9 0.433 1 0.433
## 6 9 89.7 1.22 4 2.81
Tabela zawierająca kod liczbowy oraz tekstowy typu zróżnicowania rasowo-etnicznego
= data.frame(cls = c("WL", "WM", "BL", "BM", "AL", "AM", "HL", "HM", "HD"), class = 1:9)
cls_code = merge(cls_code, lm_df, by = "class", all.x = TRUE) results
Zapisanie metryk obliczonych dla poszczególnych klas do pliku.
write.csv(results, "results/landscape_metrics.csv", row.names = FALSE)
Obliczenie liczby płatów
= lsm_l_np(cls)
np np
## # A tibble: 1 x 6
## layer level class id metric value
## <int> <chr> <int> <int> <chr> <dbl>
## 1 1 landscape NA NA np 31
= lsm_l_lpi(cls)
lpi lpi
## # A tibble: 1 x 6
## layer level class id metric value
## <int> <chr> <int> <int> <chr> <dbl>
## 1 1 landscape NA NA lpi 49.8
plot(cls, col = cls_color, main = "1990")
%>%
results kbl() %>%
kable_classic_2(full_width = F) %>%
column_spec(1, background = cls_color)
class | cls | ai | lpi | np | pland |
---|---|---|---|---|---|
1 | WL | 96.66001 | 21.4187155 | 3 | 22.3469644 |
2 | WM | 89.74005 | 5.9207225 | 9 | 13.9300050 |
3 | BL | 96.82631 | 49.7742097 | 5 | 49.8682890 |
4 | BM | 91.09361 | 2.9540893 | 9 | 10.6121425 |
5 | AL | NA | NA | NA | NA |
6 | AM | 95.86777 | 0.4327647 | 1 | 0.4327647 |
7 | HL | NA | NA | NA | NA |
8 | HM | NA | NA | NA | NA |
9 | HD | 89.68347 | 1.2167587 | 4 | 2.8098344 |
Metryki krajobrazowe zastosowane do opisania krajobrazu zróżnicowania rasowo-etnicznego dostarczają dodatkowych informacji na temat przestrzennego rozkładu struktury rasowo-etnicznej na analizowanym obszarze. Typy o małym zróżnicowaniu rasowo-etnicznym to obszary zdominowane przez jedną grupę rasowo-etniczną, w których nie zachodzi integracja między grupami rasowo-etnicznymi. Typy o średnim i dużym zróżnicowaniu rasowym reprezentują obszary zamieszkałe przez kilka grup rasowo-etnicznych. Z punktu widzenia indywidualnego człowieka, obszar objęty jednym dużym płatem zdominowanym przez daną grupę rasowo-etniczną jest postrzegany jako obszar o większej segregacji niż obszar z większą liczbą małych płatów. Natomiast, duże płaty obszarów o dużym zróżnicowaniu rasowym wskazują, że integracja między poszczególnymi grupami rasowo-etnicznymi zachodzi na większą skalę przestrzenną.
W 1990 roku District of Columbia podzielony był na 31 enklaw rasowo-etnicznych (płatów) należących do 6 typów zróżnicowania rasowo-etnicznego (WL, WM, BL, BM, AM, HD):
Największą powierzchnię (49.9%) zajmował typ “BL” - mało zróżnicowany zdominowany przez czarnych. Największa enklawa rasowo-etniczna zajmowała 49,8% powierzchni i należała do typu BL.