Skip to content

Commit

Permalink
Merge pull request #144 from afsc-gap-products/dev2
Browse files Browse the repository at this point in the history
Fix demos
  • Loading branch information
sean-rohan-NOAA authored Jan 23, 2025
2 parents 26a9d4f + 8c351fa commit ed55212
Show file tree
Hide file tree
Showing 11 changed files with 166 additions and 11 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
22 changes: 11 additions & 11 deletions assets/demo/akgfmaps_SCRUG_20250122/ex2_get_layers.R
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ library(akgfmaps)

# Get layers for one survey region
ebs_layers <- akgfmaps::get_base_layers(
select.region = "sebs", # EBS shelf bottom traw survey regions
select.region = "sebs", # EBS shelf bottom trawl survey regions
set.crs = "EPSG:3338", # Coordinate reference system, in this case Alaska Albers Equal Area
high.resolution.coast = FALSE, # Set to TRUE when coast is used for analyses, e.g. raster masking
design.year = NULL # Return the most recent/current survey design
Expand Down Expand Up @@ -92,17 +92,17 @@ goa_1984_2025_strata <- rbind(

# Plot 1984 and 2025 survey strata for the WGOA
ggplot() +
geom_sf(data = goa_1984$akland) +
geom_sf(data = goa_1984_layers$akland) +
geom_sf(data = goa_1984_2025_strata,
mapping = aes(color = factor(DESIGN_YEAR)),
fill = NA,
alpha = 0.5) +
scale_color_manual(name = "Design year",
values = c("red", "black")) +
scale_x_continuous(limits = goa_1984$plot.boundary$x,
breaks = goa_1984$lon.breaks) +
scale_y_continuous(limits = goa_1984$plot.boundary$y,
breaks = goa_1984$lat.breaks) +
scale_x_continuous(limits = goa_1984_layers$plot.boundary$x,
breaks = goa_1984_layers$lon.breaks) +
scale_y_continuous(limits = goa_1984_layers$plot.boundary$y,
breaks = goa_1984_layers$lat.breaks) +
theme_bw()

goa_1984_2025_grid <- rbind(
Expand All @@ -112,17 +112,17 @@ goa_1984_2025_grid <- rbind(

# Plot 1984 and 2025 survey grid for the WGOA
ggplot() +
geom_sf(data = goa_1984$akland) +
geom_sf(data = goa_1984_layers$akland) +
geom_sf(data = goa_1984_2025_grid,
mapping = aes(color = factor(DESIGN_YEAR)),
fill = NA,
alpha = 0.5) +
scale_color_manual(name = "Design year",
values = c("red", "black")) +
scale_x_continuous(limits = goa_1984$plot.boundary$x,
breaks = goa_1984$lon.breaks) +
scale_y_continuous(limits = goa_1984$plot.boundary$y,
breaks = goa_1984$lat.breaks) +
scale_x_continuous(limits = goa_1984_layers$plot.boundary$x,
breaks = goa_1984_layers$lon.breaks) +
scale_y_continuous(limits = goa_1984_layers$plot.boundary$y,
breaks = goa_1984_layers$lat.breaks) +
theme_bw()

# EBS shelf survey with corner stations for the 2023 survey
Expand Down
2 changes: 2 additions & 0 deletions assets/demo/akgfmaps_SCRUG_20250122/ex3_make_idw_map.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ noodles_sf <- akgfmaps::NOODLES |>
dplyr::rename(STATION = STATIONID) |>
dplyr::mutate(Present = CPUE_KGHA > 0) # Plot presence/absence

nbs_layers <- get_base_layers(select.region = "nbs", set.crs = "EPSG:3338")

# spatially join survey grid polygons to noodle CPUE points data
noodles_grid <- sf::st_join(nbs_layers$survey.grid,
noodles_sf)
Expand Down
78 changes: 78 additions & 0 deletions assets/demo/akgfmaps_SCRUG_20250122/ex4_geopackages.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Example: Access data directly from a geopackage
# SCRUG, akgfmaps, January 22, 2025
# Created by Sean Rohan (GitHub: sean-rohan-noaa)

# akgfmaps installs layer files locally
# Layers used to include a variety of formats; starting with akgfmaps v4, layers will be included in
# geopackage (.gpkg) files.
list.files(system.file("extdata", package = "akgfmaps"),
full.names = TRUE)

# Loading layers directly from built-in Geopackage
# Geopackages are an open, standards-based, platform-independent format for storing geospatial data.
# They are based on SQLite, can store multiple layers and data types in one file.

library(akgfmaps)
library(dplyr)

# Filepath to geopackage with AFSC bottom trawl survey layers
gpkg_fpath <- system.file("extdata", "afsc_bottom_trawl_surveys.gpkg", package = "akgfmaps")

# Inpsect the layers at the dsn (data source name).
# There are four layers in individual tables (called 'layers' in sf)
sf::st_layers(dsn = gpkg_fpath)

# Load all of of the features from the survey_area layer
survey_areas <- sf::st_read(dsn = gpkg_fpath,
layer = "survey_area")

survey_areas

# Plot the survey areas
ggplot() +
geom_sf(data = survey_areas,
mapping = aes(color = SURVEY_NAME),
fill = NA) +
facet_wrap(~DESIGN_YEAR) +
theme(legend.position = "bottom")

# Filter to retreive the NBS survey area
nbs_area <- dplyr::filter(survey_areas, SURVEY_DEFINITION_ID == 143)

ggplot() +
geom_sf(data = nbs_area,
mapping = aes(color = SURVEY_NAME)) +
facet_wrap(~DESIGN_YEAR) +
theme(legend.position = "bottom")

# Alternatively, we can retrieve features from the geopackage using a SQLite query.
# In this case, retrieve GOA stratum polygons for the 1984 and 2025 design years.
goa_strata <- sf::st_read(dsn = gpkg_fpath,
query =
"SELECT
AREA_TYPE,
SURVEY_DEFINITION_ID,
DESIGN_YEAR,
AREA_ID AS STRATUM,
AREA_M2,
GEOM
FROM SURVEY_STRATA
WHERE SURVEY_DEFINITION_ID = 47"
)

head(goa_strata)
table(goa_strata$DESIGN_YEAR)

# Plotting the 1984 and 2025 GOA survey strata
ggplot() +
geom_sf(data = goa_strata,
mapping = aes(fill = factor(STRATUM)),
color = NA) +
scale_fill_viridis_d(option = "H") +
facet_wrap(~DESIGN_YEAR, nrow = 2) +
theme(legend.position = "none",
axis.title = element_blank())


# Land layers
sf::st_layers(dsn = system.file("extdata", "land_layers.gpkg", package = "akgfmaps"))
75 changes: 75 additions & 0 deletions assets/demo/akgfmaps_SCRUG_20250122/ex5_get_layers_old_version.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Example: Using the old get_base_layers() function
# SCRUG, akgfmaps, January 22, 2025
# Created by Sean Rohan (GitHub: sean-rohan-noaa)

# Through the end of 2025, an option will be provided to use the old interface and layers using
# get_base_layers_v3(). The function is limited to the functionality and layers that were avaialble
# in akgfmaps v 3.6.2
#
# The old version has the following limitations:
# - No access to design years (e.g., the most recent GOA BT survey stratum shapefile will be 1984)
# - Cannot select multiple regions at the same time
# - Field names differ among shapefiles
# - No correspondence with GAP_PRODUCTS
# - Access to longline

# Recommendation: Don't use this version unless you can't replace with the new version due to time
# and reliance on fields in specific shapefiles.

library(akgfmaps)

# Arguments differ between function versions
?get_base_layers
?get_base_layers_v3

# Retrieve and plot GOA and EBS/NBS strata
goa_1984_v3 <- akgfmaps::get_base_layers_v3(
select.region = "goa",
set.crs = "EPSG:3338",
high.resolution.coast = FALSE
)

ebs_nbs_2024_v3 <- akgfmaps::get_base_layers_v3(
select.region = "ebs",
set.crs = "EPSG:3338",
high.resolution.coast = FALSE
)

ggplot() +
geom_sf(data = goa_1984_v3$akland) +
geom_sf(data = goa_1984_v3$survey.strata,
mapping = aes(
fill = factor(STRATUM)
)
) +
scale_x_continuous(limits = goa_1984_v3$plot.boundary$x,
breaks = goa_1984_v3$lon.breaks) +
scale_y_continuous(limits = goa_1984_v3$plot.boundary$y,
breaks = goa_1984_v3$lat.breaks) +
theme_bw() +
scale_fill_viridis_d(option = "H") +
theme(legend.position = "none")

ggplot() +
geom_sf(data = ebs_nbs_2024_v3$akland) +
geom_sf(data = ebs_nbs_2024_v3$survey.strata,
mapping = aes(
fill = factor(Stratum)
)
) +
scale_x_continuous(limits = ebs_nbs_2024_v3$plot.boundary$x,
breaks = ebs_nbs_2024_v3$lon.breaks) +
scale_y_continuous(limits = ebs_nbs_2024_v3$plot.boundary$y,
breaks = ebs_nbs_2024_v3$lat.breaks) +
scale_fill_viridis_d(option = "H") +
theme_bw() +
theme(legend.position = "none")

# Note that the field names do not match within or between regions.
head(goa_1984_v3$survey.area)
head(goa_1984_v3$survey.strata)
head(goa_1984_v3$survey.grid)

head(ebs_nbs_2024_v3$survey.area)
head(ebs_nbs_2024_v3$survey.strata)
head(ebs_nbs_2024_v3$survey.grid)
Binary file not shown.

0 comments on commit ed55212

Please sign in to comment.