-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
151 vignette for making spatial grids (#154)
* add vignette for making a spatial grid file * update spatial grid vignette * update information on zone ID information in making spatial grid vignette * updated spatial grid vignette * update final line in description file
- Loading branch information
1 parent
4da880c
commit 532596a
Showing
2 changed files
with
91 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
--- | ||
title: "Making a spatial grid file" | ||
author: "Paul Carvalho" | ||
date: "`r Sys.Date()`" | ||
output: | ||
rmarkdown::html_vignette: | ||
fig_width: 6 | ||
fig_height: 4 | ||
vignette: > | ||
%\VignetteIndexEntry{Making a spatial grid} | ||
%\VignetteEngine{knitr::rmarkdown} | ||
%\VignetteEncoding{UTF-8} | ||
editor_options: | ||
markdown: | ||
wrap: 72 | ||
--- | ||
|
||
|
||
```{r setup, include=FALSE} | ||
knitr::opts_chunk$set(echo = TRUE) | ||
``` | ||
|
||
## Load packages | ||
```{r packages} | ||
library(sf) | ||
library(ggplot2) | ||
``` | ||
|
||
## Create a spatial grid | ||
|
||
```{r grid, echo=TRUE} | ||
# Define the bounding box of the grid | ||
# latitude: 10 to 40 degrees N | ||
# longitude: -170 to -130 degrees W | ||
bbox <- c(xmin = -170, xmax = -130, ymin = 10, ymax = 40) | ||
# Define the size of each grid cell | ||
# 5 degree x 5 degree grid | ||
cell_size <- c(x = 5, y = 5) | ||
# Create the grid | ||
grid_sf <- st_make_grid( | ||
st_as_sfc(st_bbox(bbox)), # Bounding box for the grid | ||
cellsize = cell_size, # Size of each cell | ||
what = "polygons" # Grid cells as polygons | ||
) | ||
# Convert to an sf object | ||
grid_sf <- st_sf(geometry = grid_sf, crs = 4326) | ||
``` | ||
If you have a spatial data table loaded as a dataframe, use the [st_as_sf()](https://www.rdocumentation.org/packages/sf/versions/1.0-16/topics/st_as_sf) function from the [sf](https://www.rdocumentation.org/packages/sf/versions/1.0-16) package to convert the dataframe to an sf object. | ||
|
||
### Add zone ID variable to the spatial object | ||
|
||
The zone ID variable in the primary data table can be reassigned to match the zone IDs in the spatial grid object based on the lat/lon of fishing location in the primary data table. | ||
|
||
```{r zoneID, echo=TRUE} | ||
# Assign zone ID variable | ||
# Here the ID is just a sequence from 1 to the number of grids in the spatial object | ||
grid_sf$zoneID <- seq(1:length(grid_sf$geometry)) | ||
``` | ||
|
||
### Plot | ||
```{r plot_grid, echo=TRUE} | ||
# Plot just the spatial grid object using the ggplot2 package | ||
ggplot() + | ||
geom_sf(data = grid_sf) | ||
# Add a world map layer to the plot | ||
base_map <- ggplot2::map_data("world", | ||
xlim = c(bbox["xmin"], bbox["xmax"]), | ||
ylim = c(bbox["ymin"], bbox["ymax"])) | ||
base_map <- FishSET::dat_to_sf(base_map, lon = "long", lat = "lat", id = "group", | ||
cast = "POLYGON", multi = TRUE, crs = 4326) | ||
ggplot() + | ||
geom_sf(data = base_map) + | ||
geom_sf(data = grid_sf, fill=NA) + | ||
theme_minimal() + | ||
labs(title = "5x5 Degree Spatial Grid") | ||
``` | ||
|
||
### Save spatial grid | ||
```{r save_grid, echo=TRUE} | ||
# Uncomment the code below to save the spatial grid as an RDS file to be used in FishSET | ||
# Note: the second input should include the filepath and filename to be saved. See help documentation for saveRDS(). | ||
# saveRDS(grid_sf, "fiveByFiveGrid.rds") | ||
``` |