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