https://doi.org/10.5281/zenodo.14318846
predictions_results.Rmd
---
title: "Predictions - Results"
author: ""
date: ""
output:
html_document:
toc: true
toc_float: true
theme: cerulean
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = F,message=F)
#main packages #delete/add as needed
library(dplyr)
library(ggplot2)
library(knitr)
library(ggpubr)
library(plotly)
library(pracma) #for standard error
library(reactable)
library(sf)
library(rgdal)
library(sp)
library(tidyterra)
library(terra)
library(wesanderson)
theme_set(theme_bw())
```
## About
File for results from predictions, specifically:
* maps of predicted spatial usage
* how many tracks come within 10 m of fish pass
For the simulations that began in the lower 100 m of the river.
## Barbel
### Maps
```{r all barbel maps}
dat1 <- read.csv("PREDICTIONS - downstream start/all_barbel_up_to_agent_100_disch20.csv")
dat2 <- read.csv("PREDICTIONS - downstream start/all_barbel_up_to_agent_100_disch50.csv")
dat3 <- read.csv("PREDICTIONS - downstream start/all_barbel_up_to_agent_100_disch80.csv")
barb_dat1 <- bind_rows(dat1,dat2,dat3)
barb_dat <- barb_dat1
barb_dat <- barb_dat %>% filter(y!=0) #to catch a handful of errors
#remove points in lower 150m
shp <- st_read("lower150m/lower150m.shp")
start_loc_pol <- st_read("start_sections/start_sections.shp")
barb_dat2 <- st_as_sf(barb_dat,coords = c("x","y"),crs=st_crs(32632)) %>% st_transform(crs=25832)
barb_dat2$in_lower_zone <- st_intersects(barb_dat2$geometry,shp) %>% as.integer()
barb_dat <- barb_dat[is.na(barb_dat2$in_lower_zone),]
barb_dat3 <- barb_dat1 %>% group_by(fish_id,approach,discharge) %>% summarise(x=first(x),y=first(y))
barb_dat4 <- st_as_sf(barb_dat3,coords = c("x","y"),crs=st_crs(32632)) %>% st_transform(crs=25832)
barb_dat4$start_loc <- st_intersects(barb_dat4$geometry,start_loc_pol) %>% as.integer()
barb_dat4 <- barb_dat4 %>% st_drop_geometry()
barb_dat4$start_loc[barb_dat4$start_loc==3] <- "centre"
barb_dat4$start_loc[barb_dat4$start_loc==2] <- "right"
barb_dat4$start_loc[barb_dat4$start_loc==1] <- "left"
barb_dat4$start_loc[is.na(barb_dat4$start_loc)] <- "left"
barb_dat5 <- barb_dat4 %>% select(c(fish_id,approach,start_loc,discharge))
barb_dat <- merge(barb_dat,barb_dat5,by=c("fish_id","approach","discharge"))
#
barb_plts <- ggplot(barb_dat,aes(x=x,y=y))+
geom_bin2d()+
facet_wrap(~discharge)+
geom_point(x=591683.2,y=5296867.5,col="red")+
scale_fill_gradientn(colours = terrain.colors(7))
barb_plts
ggplot(barb_dat,aes(x=x,y=y))+
geom_bin2d()+
facet_grid(state~discharge)+
geom_point(x=591683.2,y=5296867.5,col="red")+
scale_fill_gradientn(colours = terrain.colors(7))
```
## Grayling
### Maps
```{r all grayling maps}
dat1 <- read.csv("PREDICTIONS - downstream start/all_grayling_up_to_agent_100_disch20.csv")
dat2 <- read.csv("PREDICTIONS - downstream start/all_grayling_up_to_agent_100_disch50.csv")
dat3 <- read.csv("PREDICTIONS - downstream start/all_grayling_up_to_agent_100_disch80.csv")
#dat3 <- read.csv("PREDICTIONS - downstream start/all_grayling_up_to_agent_78.csv")
#gray_dat <- dat1
#gray_dat <- bind_rows(dat1,dat2)
gray_dat1 <- bind_rows(dat1,dat2,dat3)
gray_dat <- gray_dat1 %>% filter(y!=0)# & y<5296950)
#remove points
shp <- st_read("lower150m/lower150m.shp")
start_loc_pol <- st_read("start_sections/start_sections.shp")
gray_dat2 <- st_as_sf(gray_dat,coords = c("x","y"),crs=st_crs(32632)) %>% st_transform(crs=25832)
gray_dat2$in_lower_zone <- st_intersects(gray_dat2$geometry,shp) %>% as.integer()
gray_dat2$in_lower_zone[is.na(gray_dat2$in_lower_zone)] <- 2
gray_dat2 <- st_drop_geometry(gray_dat2)
gray_dat2 %>% group_by(discharge,in_lower_zone) %>% summarise(n=n())
#gray_dat <- gray_dat[is.na(gray_dat2$in_lower_zone),]
gray_dat <- gray_dat[gray_dat2$in_lower_zone==2,]
gray_dat3 <- gray_dat1 %>% group_by(fish_id,approach,discharge) %>% summarise(x=first(x),y=first(y))
gray_dat4 <- st_as_sf(gray_dat3,coords = c("x","y"),crs=st_crs(32632)) %>% st_transform(crs=25832)
gray_dat4$start_loc <- st_intersects(gray_dat4$geometry,start_loc_pol) %>% as.integer()
gray_dat4 <- gray_dat4 %>% st_drop_geometry()
gray_dat4$start_loc[gray_dat4$start_loc==3] <- "center"
gray_dat4$start_loc[gray_dat4$start_loc==2] <- "right"
gray_dat4$start_loc[gray_dat4$start_loc==1] <- "left"
gray_dat4$start_loc[is.na(gray_dat4$start_loc)] <- "left"
#gray_dat4$start_loc[gray_dat4$start_loc==3] <- "right"
#gray_dat4$start_loc[gray_dat4$start_loc==2] <- "center"
#gray_dat4$start_loc[gray_dat4$start_loc==1] <- "left"
gray_dat <- merge(gray_dat,gray_dat4,by=c("fish_id","approach","discharge"))
shp2 <- vect("lower150m/lower150m.shp")
#ggplot(data=shp2)+
# geom_point(data=gray_dat,aes(x=x,y=y))+
# facet_wrap(~discharge)+
# geom_point(x=591683.2,y=5296867.5,col="red")+
# geom_spatvector(fill=NA)
gray_plts <- ggplot(gray_dat,aes(x=x,y=y))+
geom_bin2d()+
facet_wrap(~discharge)+
geom_point(x=591683.2,y=5296867.5,col="red")+
scale_fill_gradientn(colours = terrain.colors(7))+
labs(title="Grayling predicted usage where tracks began downstream")
#ggsave(filename="figures/gray_plts_dwnstrm.png",height=3,width=8,plot=gray_plts)
gray_plts
#select some agents to plot tracks for
p <- ggplot(filter(gray_dat,fish_id<=7 &discharge==20),aes(x=x,y=y,col=as.factor(approach)))+
geom_point()+
geom_path()+
#facet_grid(fish_id~discharge)+
facet_wrap(~fish_id,ncol=2)+
scale_color_manual(values=wes_palette("Darjeeling1",n=5,type="discrete"),name="Approach ID")+
geom_point(x=591683.2,y=5296867.5,col="black",pch=17)+
scale_x_continuous(breaks=c(591650,591850))
#ggsave(filename = "figures/grayling_sim_tracks_FINAL.png",plot=p,width=5,height=5)
#fish id 1, 76, look particularly nice for discharge 20
pp <- gray_dat %>% filter(fish_id==76)
#ggplot(pp,aes(x=x,y=y,col=as.factor(approach)))+
# geom_point()+
#geom_path()+
#facet_wrap(~discharge)+
#geom_point(x=591683.2,y=5296867.5,col="red")+
#scale_fill_gradientn(colours = terrain.colors(7))
#facet_wrap(~fish_id)
```
## Looking at % of tracks and fish that did not enter the array
Can check if consistent among start locations too
```{r barbel tracks per discharge}
barb1 <- barb_dat1 %>% group_by(discharge,fish_id) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge) %>% summarise(n_tracks_all=sum(n_tracks))
barb2 <- barb_dat %>% group_by(discharge,fish_id) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge) %>% summarise(n_tracks_up=sum(n_tracks))
barb3 <- merge(barb1,barb2,by="discharge")
barb3$perc <- barb3$n_tracks_up/barb3$n_tracks_all*100
reactable(barb3)
```
```{r barbel tracks per discharge ands tart loc}
barb1 <- barb_dat4 %>% group_by(discharge,fish_id,start_loc) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge,start_loc) %>% summarise(n_tracks_all=sum(n_tracks))
barb2 <- barb_dat %>% group_by(discharge,fish_id,start_loc) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge,start_loc) %>% summarise(n_tracks_up=sum(n_tracks))
barb3 <- merge(barb1,barb2,by=c("discharge","start_loc"))
barb3$perc <- barb3$n_tracks_up/barb3$n_tracks_all*100
reactable(barb3)
```
```{r barbel fish per discharge}
barb2 <- barb_dat %>% group_by(discharge) %>%
summarise(n_fish=length(unique(fish_id)))
barb2$perc <- barb2$n_tracks_up
reactable(barb2)
```
```{r barbel tracks per discharge}
barb1 <- barb_dat1 %>% group_by(discharge,fish_id) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge) %>% summarise(n_tracks_all=sum(n_tracks))
barb2 <- barb_dat %>% group_by(discharge,fish_id) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge) %>% summarise(n_tracks_up=sum(n_tracks))
barb3 <- merge(barb1,barb2,by="discharge")
barb3$perc <- barb3$n_tracks_up/barb3$n_tracks_all*100
reactable(barb3)
```
```{r barbel fish per discharge}
barb2 <- barb_dat %>% group_by(discharge) %>%
summarise(n_fish=length(unique(fish_id)))
barb2$perc <- barb2$n_tracks_up
reactable(barb2)
#per start location
#this needs to be dones as a comparison to total number fish per start loc
barb2 <- barb_dat %>% group_by(discharge,start_loc) %>%
summarise(n_fish=length(unique(fish_id)))
barb3 <- barb_dat4 %>% group_by(discharge,start_loc) %>% #get all that started
summarise(n_fish_tot=length(unique(fish_id)))
barb4 <- merge(barb2,barb3,by=c("discharge","start_loc"))
barb4$perc <- barb4$n_fish/barb4$n_fish_tot*100
reactable(barb4)
```
```{r graylng tracks per discharge}
gray1 <- gray_dat1 %>% group_by(discharge,fish_id) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge) %>% summarise(n_tracks_all=sum(n_tracks))
gray2 <- gray_dat %>% group_by(discharge,fish_id) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge) %>% summarise(n_tracks_up=sum(n_tracks))
gray3 <- merge(gray1,gray2,by="discharge")
gray3$perc <- gray3$n_tracks_up/gray3$n_tracks_all*100
reactable(gray3)
```
```{r grayling tracks per discharge ands tart loc}
gray1 <- gray_dat4 %>% group_by(discharge,fish_id,start_loc) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge,start_loc) %>% summarise(n_tracks_all=sum(n_tracks))
gray2 <- gray_dat %>% group_by(discharge,fish_id,start_loc) %>%
summarise(n_tracks=length(unique(approach))) %>% ungroup() %>%
group_by(discharge,start_loc) %>% summarise(n_tracks_up=sum(n_tracks))
gray3 <- merge(gray1,gray2,by=c("discharge","start_loc"))
gray3$perc <- gray3$n_tracks_up/gray3$n_tracks_all*100
reactable(gray3)
```
```{r grayling fish per discharge}
gray2 <- gray_dat %>% group_by(discharge) %>%
summarise(n_fish=length(unique(fish_id)))
gray2$perc <- gray2$n_tracks_up
reactable(gray2)
#per start location
#this needs to be dones as a comparison to total number fish per start loc
gray2 <- gray_dat %>% group_by(discharge,start_loc) %>%
summarise(n_fish=length(unique(fish_id)))
gray3 <- gray_dat4 %>% group_by(discharge,start_loc) %>% #get all that started
summarise(n_fish_tot=length(unique(fish_id)))
gray4 <- merge(gray2,gray3,by=c("discharge","start_loc"))
gray4$perc <- gray4$n_fish/gray4$n_fish_tot*100
reactable(gray4)
```