## ---- include = FALSE--------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", warning = FALSE, message = FALSE ) library(arcpullr) library(sf) sf::sf_use_s2(FALSE) ## ---- echo = FALSE------------------------------------------------------------ #<img src='../man/figures/logo.png' width="160" height="180" style="border: none; float: right"/> ## ----url_setup, eval = FALSE-------------------------------------------------- # # #WDNR Server # server <- "https://dnrmaps.wi.gov/arcgis/rest/services/" # server2 <- "https://dnrmaps.wi.gov/arcgis2/rest/services/" # # #River URL # layer <- "TS_AGOL_STAGING_SERVICES/EN_AGOL_STAGING_SurfaceWater_WTM/MapServer/2" # river_url <- paste0(server2,layer) # # #Country URL # layer <- "DW_Map_Dynamic/EN_Basic_Basemap_WTM_Ext_Dynamic_L16/MapServer/3" # county_url <- paste0(server,layer) # # #Trout URL # layer <- "FM_Trout/FM_TROUT_HAB_SITES_WTM_Ext/MapServer/0" # trout_url <- paste0(server,layer) # # #Watershed URL # layer <- "WT_SWDV/WT_Federal_Hydrologic_Units_WTM_Ext/MapServer/0" # watershed_url <- paste0(server,layer) # # #get layers for queries # mke_river <- get_spatial_layer( # river_url, # where = "RIVER_SYS_NAME = 'Milwaukee River'" # ) # # trout_hab_project_pts <- get_spatial_layer( # trout_url, # where = "WATERBODYNAMECOMBINED = 'Sugar Creek' and FISCALYEAR = 2017" # ) # # trout_hab_project_pt <- trout_hab_project_pts[1, ] # # # get watershed layer for Cook Creek # cook_creek_ws <- get_spatial_layer( # watershed_url, # where = "HUC12_NAME = 'Cook Creek'" # ) ## ----pull_by_line, eval = FALSE, echo = FALSE--------------------------------- # mke_river_counties <- get_layer_by_line(url = county_url, geometry = mke_river) ## ---- echo = FALSE------------------------------------------------------------ mke_river_counties <- sf::st_filter( wis_counties, mke_river, .pred = sf::st_intersects ) ## ----show_by_line, ref.label=c("pull_by_line", "plot_by_line"), eval = FALSE---- # mke_river_counties <- get_layer_by_line(url = county_url, geometry = mke_river) # plot_layer(mke_river, outline_poly = mke_river_counties) ## ----plot_by_line, echo = FALSE----------------------------------------------- plot_layer(mke_river, outline_poly = mke_river_counties) ## ----pull_by_point, eval = FALSE, echo = FALSE-------------------------------- # trout_stream <- get_layer_by_point(url = river_url, geometry = trout_hab_project_pt) ## ---- echo = FALSE, mesage = FALSE-------------------------------------------- trout_stream <- sf::st_filter( sugar_creek, sf::st_buffer(trout_hab_project_pt, 0.0001), .pred = sf::st_intersects ) ## ----show_by_point, ref.label=c("pull_by_point", "plot_by_point"), eval = FALSE---- # trout_stream <- get_layer_by_point(url = river_url, geometry = trout_hab_project_pt) # plot_layer(trout_stream) + # ggplot2::geom_sf(data = trout_hab_project_pt, color = "red", size = 2) ## ----plot_by_point, echo = FALSE---------------------------------------------- plot_layer(trout_stream) + ggplot2::geom_sf(data = trout_hab_project_pt, color = "red", size = 2) ## ----pull_by_multipoint, eval = FALSE, echo = FALSE--------------------------- # restored_streams <- get_layer_by_point(url = river_url, geometry = trout_hab_project_pts) ## ----show_by_multipoint, ref.label=c("pull_by_multipoint", "plot_by_multipoint"), eval = FALSE---- # restored_streams <- get_layer_by_point(url = river_url, geometry = trout_hab_project_pts) # plot_layer(restored_streams) + # ggplot2::geom_sf(data = trout_hab_project_pts, color = "blue") ## ---- echo = FALSE------------------------------------------------------------ restored_streams <- sugar_creek ## ----plot_by_multipoint, fig.height = 7, fig.width = 7, echo = FALSE---------- plot_layer(restored_streams) + ggplot2::geom_sf(data = trout_hab_project_pts, color = "blue") ## ---- pull_by_poly, eval = FALSE, echo = FALSE-------------------------------- # cook_creek_streams <- `get_layer_by_poly(river_url, cook_creek_ws) ## ----show_by_poly, ref.label=c("pull_by_poly", "plot_by_poly"), eval = FALSE---- # cook_creek_streams <- `get_layer_by_poly(river_url, cook_creek_ws) # plot_layer(cook_creek_streams, cook_creek_ws) ## ----plot_by_poly, echo = FALSE----------------------------------------------- plot_layer(cook_creek_streams, cook_creek_ws) ## ---- pull_by_env, eval = FALSE, echo = FALSE--------------------------------- # cook_creek_env <- get_layer_by_envelope(river_url, cook_creek_ws) # ## ----show_by_env, ref.label=c("pull_by_env", "plot_by_env"), eval = FALSE----- # cook_creek_env <- get_layer_by_envelope(river_url, cook_creek_ws) # # # example of the envelope to visualize how it spatially queries # example_env <- sf::st_as_sfc(sf::st_bbox(cook_creek_ws)) # # plot_layer(cook_creek_env, cook_creek_ws) + # ggplot2::geom_sf(data = example_env, fill = NA) ## ----plot_by_env, echo = FALSE------------------------------------------------ # example of the envelope to visualize how it spatially queries example_env <- sf::st_as_sfc(sf::st_bbox(cook_creek_ws)) plot_layer(cook_creek_env, cook_creek_ws) + ggplot2::geom_sf(data = example_env, fill = NA) ## ----pull_sp_rel_contains, eval = FALSE, echo = FALSE------------------------- # example_poly <- sf_polygon( # c(-90.62, 43.76), # c(-90.62, 43.77), # c(-90.61, 43.77), # c(-90.61, 43.76), # c(-90.62, 43.76) # ) # poly_streams_contains <- get_layer_by_poly(river_url, example_poly) ## ----show_sp_rel_contains, ref.label=c("pull_sp_rel_contains", "plot_sp_rel_contains"), eval = FALSE---- # example_poly <- sf_polygon( # c(-90.62, 43.76), # c(-90.62, 43.77), # c(-90.61, 43.77), # c(-90.61, 43.76), # c(-90.62, 43.76) # ) # poly_streams_contains <- get_layer_by_poly(river_url, example_poly) # plot_layer(poly_streams_contains, outline_poly = example_poly) ## ----plot_sp_rel_contains, echo = FALSE--------------------------------------- plot_layer(poly_streams_contains, outline_poly = example_poly) ## ----pull_sp_rel_crosses, eval = FALSE, echo = FALSE-------------------------- # poly_streams_crosses <- get_layer_by_poly(river_url, example_poly, sp_rel = "crosses") ## ----show_sp_rel_crosses, ref.label=c("pull_sp_rel_crosses", "plot_sp_rel_crosses"), eval = FALSE---- # poly_streams_crosses <- get_layer_by_poly(river_url, example_poly, sp_rel = "crosses") # plot_layer(poly_streams_crosses, outline_poly = example_poly) ## ----plot_sp_rel_crosses, echo = FALSE---------------------------------------- plot_layer(poly_streams_crosses, outline_poly = example_poly) ## ---- echo = FALSE------------------------------------------------------------ sp_rel_lookup %>% DT::datatable() ## ---- echo = FALSE------------------------------------------------------------ sp_rel_valid %>% DT::datatable() ## ---- echo = TRUE------------------------------------------------------------- valid_sp_rel("line","line")