diff --git a/DESCRIPTION b/DESCRIPTION index 9faa893..87fd428 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -24,7 +24,10 @@ Imports: quarto, readxl, rmarkdown, - utils + utils, + leaflet, + leaflegend, + tidyr Suggests: curl, knitr, diff --git a/NAMESPACE b/NAMESPACE index fbde09b..6cf5e79 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,6 +1,7 @@ # Generated by roxygen2: do not edit by hand export(deployment_gantt) +export(leaflet_graph) export(make_receiver_push_summary) export(make_tag_push_summary) export(match_map) diff --git a/R/leaflet_graph.R b/R/leaflet_graph.R new file mode 100644 index 0000000..0b8a73d --- /dev/null +++ b/R/leaflet_graph.R @@ -0,0 +1,44 @@ +#' Plot the leaflet graphs for detection and individual +#' @param station_spatial is created by prep_station_spatial,which is a spatial object with the geometry +#' @export + +leaflet_graph <- function(station_spatial) { + geometry <- NULL + df <- station_spatial |> tidyr::extract(geometry, c("lon", "lat"), "\\((.*), (.*)\\)", convert = TRUE) + numPal <- leaflet::colorNumeric("viridis", df$Detections) + leaflet::leaflet(data = df) |> + leaflet::addTiles() |> + leaflet::addCircleMarkers( + lat = ~lat, lng = ~lon, + color = ~ numPal(Detections), fillColor = ~ numPal(Detections), fillOpacity = 0.7, + popup = paste( + "Station ", df$station, "
", + "PI:", df$PI, "
", + "Detections:", df$Detections, "
", + "detectedby:", df$detectedby, "
", + "Individuals:", df$Individuals + ), + radius = ~Individuals + ) |> + leaflegend::addLegendSize( + values = df$Individuals, + baseSize = 1, + color = "black", + title = "Individual", + shape = "circle", + orientation = "horizontal", + opacity = .5, + fillOpacity = 0, + breaks = 5, + position = "bottomright" + ) |> + leaflegend::addLegendNumeric( + pal = numPal, + title = "Matched Detection", + shape = "stadium", + values = df$Detections, + fillOpacity = .5, + decreasing = TRUE, + position = "bottomright" + ) +} diff --git a/inst/qmd_template/make_tag_push_summary.qmd b/inst/qmd_template/make_tag_push_summary.qmd index 83bc5a4..7857ae8 100644 --- a/inst/qmd_template/make_tag_push_summary.qmd +++ b/inst/qmd_template/make_tag_push_summary.qmd @@ -23,10 +23,8 @@ knitr::opts_chunk$set( ```{r} #| label: packages #| message: false - -library(otndo) library(data.table) -library(mapview) +library(otndo) library(reactable) ``` @@ -226,18 +224,15 @@ reactable(new_station_summary) ```{r} #| label: new-detection-map-leaflet -#| fig-cap: Figure 7. Number of newly-added detections per receiver. Points represent receiver locations, while size and color reflect the number of detections at that location. +#| fig-cap: Figure 7. Number of newly-added detections per receiver. Points represent receiver locations, where color reflects the number of detections and size reflects the number of fish at that location. #| eval: !expr "nrow(new_matches) > 0" -new_station_spatial <- prep_station_spatial(new_matches, type = "tag") - -mapview::mapview(new_station_spatial, - zcol = "Detections", - cex = "Individuals", - layer.name = "Matched detections" -) +leaflet_graph(station_spatial) ``` + + + ```{r results='asis', echo=FALSE} if (is.null(params$since)) { cat("-->") diff --git a/man/leaflet_graph.Rd b/man/leaflet_graph.Rd new file mode 100644 index 0000000..d679ce7 --- /dev/null +++ b/man/leaflet_graph.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/leaflet_graph.R +\name{leaflet_graph} +\alias{leaflet_graph} +\title{Plot the leaflet graphs for detection and individual} +\usage{ +leaflet_graph(station_spatial) +} +\arguments{ +\item{station_spatial}{is created by prep_station_spatial,which is a spatial object with the geometry} +} +\description{ +Plot the leaflet graphs for detection and individual +}