library(sf)
library(dplyr)
library(tidyverse)
library(fasterize)
library(kableExtra)
list_race = c("WHITE", "BLACK", "ASIAN", "HISPANIC", "AM", "OTHER")

1 Cel ćwiczenia

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).

2 Zadanie do wykonania

Proszę wykorzystać wybrane metryki krajobrazowe do opisania zmian typów zróżnicowania rasowo-etniczego w wybranym hrabstwie. Wynikowy raport powinien zawierać:

  • mapę typów zróżnicowania rasowo-etniczego w formie rastrowej
  • tabelę zawierającą wartości wybranych wskaźników
  • krótką interpretację uzyskanych wyników.

3 Przygotowanie danych do analizy

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.

Wczytanie danych zawierających typy zróżnicowania rasowo-etnicznego

cls_df <- st_read("results/dc_klasyfikacja9typow.gpkg", layer = "cls1990_2020")
## 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

Przekodowanie wartości używając funkcji recode() z pakietu dplyr

cls_df$cls90 = recode(cls_df$cls90, "WL"= 1, "WM" = 2, "BL" = 3, "BM" = 4, "AL" = 5, "AM" = 6, "HL" = 7, "HM" = 8, "HD" = 9)

Rasteryzacja

Funkcja fasterize() wymaga zdefiniowania kilku argumentów:

  • sf - obiekt sf, który ma być zrasteryzowany
  • raster - “pusta” warstwa rastrowa zawierająca parametry rastra - zasięg oraz rozdzielczość
  • field - pole, wg którego ma być wykonana rasteryzacja
  • fun - funkcja określająca operację wykonywaną w przypadku nakładających się poligonów.
Stworzenie “pustego” rastra

Zostanie utworzony raster o rozdzielczości 100 m o zasięgu pobranym z warstwy cls_df.

library(fasterize)
rast <- raster(cls_df, res = 100)
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
Stworzenie rastra zawierającego typy zróżnicowania rasowo-etnicznego w 1990 roku
cls = fasterize(cls_df, rast, field = "cls90", fun="sum")
#kolory przypisane do poszczególnych typów zróżnicowania rasowo-etncznego w kolejności WL, WM, BL, BM, AL, AM, HL, HM, HD.
cls_color <- c("#FF8C00", "#FFD700", "#006400", "#32CD32", "#CD5555", "#FF6A6A", "#5D478B", "#9370DB", "#8F8F8F")
Wyświetlenie rastra zawierającego typy zróżnicowania rasowo-etnicznego w 1990 roku
plot(cls, col = cls_color)

4 Obliczanie metryk krajobrazowych

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).

class_metr = list_lsm(level = "class")
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

4.1 Obliczanie metryk krajobrazowych dla typów zróżnicowania rasowo-etniczego w 1990 roku.

Poniżej zostaną obliczone 4 metryki krajobrazowe:

  • np - liczba płatów,
  • lpi - stosunek powierzchni największego płata danego typu do powierzchni całego obszaru
  • PLAND - procent obszaru zajęty przez dany typ zróżnicowania
  • AI - poziom agregacji (0 – pełne rozproszenie, komórki tego samego typu nie graniczą ze sobą; 100 – jeden płat danego typu).
lm = calculate_lsm(cls, level = ("class"), what = c("lsm_c_np", "lsm_c_lpi",  "lsm_c_pland", "lsm_c_ai"))
## Warning: Only using 'what' argument.

Zmiana formatu wyświetlania tabeli z “długiego” na “szeroki”.

library(tidyverse)
lm_df = pivot_wider(lm[, c("class", "metric", "value")], names_from = metric, values_from = value)

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

cls_code = data.frame(cls = c("WL", "WM", "BL", "BM", "AL", "AM", "HL", "HM", "HD"), class = 1:9)
results = merge(cls_code, lm_df, by = "class", all.x = TRUE)

Zapisanie metryk obliczonych dla poszczególnych klas do pliku.

write.csv(results, "results/landscape_metrics.csv", row.names = FALSE)

4.2 Obliczenie metryk krajobrazowych na poziomie całego obszaru

Obliczenie liczby płatów

np = lsm_l_np(cls)
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
lpi = lsm_l_lpi(cls)
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

5 Prezentacja wyników

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

5.1 Interpretacja wyników

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):

  • 8 enklaw, zajmujących 72,2% powierzchni należało do typów mało zróżnicowanych
  • 19 enkkaw, zajmujących 24,9% powierzchni należało do typów średnio zróżnicowanych
  • 4 enklawy, zajmujące 2,8% powierzchni należały do typu o dużym zróżnicowaniu rasowo-etnicznym.

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.