Her regner vi ut gjennomsnittlig avstand fra en fjellpiksel til menneskelig infrastruktur eller til grensen av fjelmasken (ofte skog). Denne verdien regnes ut for hver region og sammenlignes dette med den samme avstanden gitt at det ikke er noen mennekslig infrastruktur. Analysene er gjort av Stefan Blumentrath.

Shell

Skriptet under beregner univariat statistikk for avstand til boreal (f.eks. skog) og menneskelig innflytelse

# Forutsetter at IBECA/R er arbeidsmappen setwd("~/IBECA/R")
# GRASS GIS >= 7.8 må være installert på maskina og utførbart (på PATH)
# Skriptet forutsetter videre tilgang til "gisdata" databasen med N50 data
# Tilgang til denne databasen er satt opp for brukeren "postgjest"
tmp_mappe <- "/data/scratch"
system(paste0("grass -c EPSG:25833 ", tmp_mappe, "/tmplocation --exec bash ../data/fragmentering.sh ", tmp_mappe, "\nrm -rf ", tmp_mappe, "/tmplocation"))

Import CSV

Importerer og formater resulterende data

library(readr)
ind <- read_csv("../data/fragmentering.csv", 
    col_types = cols(zone = col_integer(), 
        non_null_cells = col_integer(), null_cells = col_integer()))
ref <- read_csv("../data/fragmentering_referanse.csv", 
    col_types = cols(zone = col_integer(), 
        non_null_cells = col_integer(), null_cells = col_integer()))
dat <- select(ind, zone, mean, stddev)
dat$ref <- ref$mean[match(dat$zone, ref$zone)]

Fikser regionnavn

dat$zone <- as.factor(dat$zone)
dat$zone <- plyr::revalue(dat$zone,
                        c("1" = "N",
                          "2" = "C",
                          "3" = "E",
                          "4" = "W",
                          "5" = "S"))

Skalerer til ref- verdi

dat$val <- dat$mean/dat$ref

Finner nasjonal verdi basert på et arealvektet gjennomsnitt

Fjellareal per region:

wgt <- readRDS("../data/fjellareal.rds")
wgt$Fjellareal2 <- wgt$Fjellareal/max(wgt$Fjellareal)
wgt$reg <- c("N", "C", "E", "W", "S")
dat$wgt <- wgt$Fjellareal2[match(dat$zone, wgt$reg)]
dat[nrow(dat)+1, "val"] <- weighted.mean(dat$val, dat$wgt)
dat$reg <- as.character(dat$zone)
dat[nrow(dat), "reg"]  <- "Norge"
dat$label <- dat$reg
dat$label <- plyr::revalue(dat$reg,
                        c("N" = "Nord-Norge",
                          "C" = "Midt-Norge",
                          "E" = "Østlandet",
                          "W" = "Vestlandet",
                          "S" = "Sørlandet"))
regOrder = c(
  "Nord-Norge",
  "Midt-Norge",
  "Østlandet",
  "Vestlandet",
   "Sørlandet",
  "Norge"
             )

Plot

ggFrag <- ggplot(data = dat, aes(x = factor(label, levels = regOrder), y = val))+
  geom_bar(stat="identity", alpha=.8)+
  ylim(0,1)+
  ylab("Gj. avstand til infrastruktur\neller fjellgrensen\n(skalert mot referansetilstand)")+
  xlab("")+
  geom_hline(yintercept = 0.6, linetype = "dashed")+
  theme_bw(base_size = 20)+
  theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
png("../output/indicatorPlots/skalert/fragmentering barplot skalert.png", 
    units="in", width=5, height=8, res=300)
ggFrag
dev.off()

Her er hvordan det ser ut uskalert der y-aksen er i meter

dat[nrow(dat), "mean"] <- weighted.mean(dat$mean, dat$wgt, na.rm=T)
dat[nrow(dat), "ref"] <- weighted.mean(dat$ref, dat$wgt, na.rm=T)
gg <- ggplot()+
  geom_bar(data = dat, aes(x = factor(label, levels = regOrder), y = ref),
           stat = "identity", alpha = .7, width=.8)+
  geom_bar(data = dat, aes(x = factor(label, levels = regOrder), y = mean),
           stat = "identity", alpha = 1, colour="black",
           position = position_nudge(x=-0.1),
           width=.8)+
  theme_bw(base_size = 20)+
  ylab("Gj. avstand til infrastruktur\neller fjellgrensen (m)")+
  xlab("")+
  theme(
      axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
png("../output/indicatorPlots/supporting figures/fragmentering barplot.png", 
    units="in", width=7, height=8, res=300)
gg
dev.off()

Eksporter csv

datExp <- select(dat, reg, val)
datExp$X <- "fragmentering"
datExp$year <- 2021
datExp
## # A tibble: 6 × 4
##   reg     val X              year
##   <chr> <dbl> <chr>         <dbl>
## 1 N     0.671 fragmentering  2021
## 2 C     0.716 fragmentering  2021
## 3 E     0.478 fragmentering  2021
## 4 W     0.438 fragmentering  2021
## 5 S     0.513 fragmentering  2021
## 6 Norge 0.601 fragmentering  2021
write.csv(datExp, "../output/indicator_values/fragmentering.csv", row.names = F)