arc_read()
combines the functionality of arc_open()
with arc_select()
or arc_raster()
to read an ArcGIS FeatureLayer
, Table
, or ImageServer
to an sf
or SpatRaster
object. Optionally, set, check, or modify names
for the returned data frame or sf object using the col_names
and
name_repair
parameters. For ease of use and convenience, arc_read()
allows users to access and query a FeatureLayer, Table, or ImageServer with a
single function call instead of combining arc_open()
and arc_select()
.
The conventions of col_select
are based on functions for reading tabular
data in the {readr}
package.
Usage
arc_read(
url,
col_names = TRUE,
col_select = NULL,
n_max = Inf,
name_repair = "unique",
crs = NULL,
...,
fields = NULL,
alias = c("drop", "label", "replace"),
token = arc_token()
)
Arguments
- url
The url of the remote resource. Must be of length one.
- col_names
Default
TRUE
. Column names or name handling rule.col_names
can beTRUE
,FALSE
,NULL
, or a character vector:If
TRUE
, use existing default column names for the layer or table. IfFALSE
orNULL
, column names will be generated automatically: X1, X2, X3 etc.If
col_names
is a character vector, values replace the existing column names.col_names
can't be length 0 or longer than the number of fields in the returned layer.
- col_select
Default
NULL
. A character vector of the field names to be returned. By default, all fields are returned.- n_max
Defaults to
Inf
or an option set withoptions("arcgislayers.n_max" = <max records>)
. Maximum number of records to return.- name_repair
Default
"unique"
. Seevctrs::vec_as_names()
for details. Ifname_repair = NULL
, names are set directly.- crs
the spatial reference to be returned. If the CRS is different than the CRS for the input
FeatureLayer
, a transformation will occur server-side. Ignored if x is aTable
.- ...
Additional arguments passed to
arc_select()
if URL is aFeatureLayer
orTable
orarc_raster()
if URL is anImageLayer
.- fields
Default
NULL
. a character vector of the field names to returned. By default all fields are returned. Ignored ifcol_names
is supplied.- alias
Use of field alias values. Default
c("drop", "label", "replace"),
. There are three options:"drop"
, field alias values are ignored."label"
: field alias values are assigned as a label attribute for each field."replace"
: field alias values replace existing column names.col_names
mustTRUE
for this option to be applied.
- token
your authorization token.
Examples
if (FALSE) { # \dontrun{
furl <- "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3"
# read entire service
arc_read(furl)
# apply tolower() to column names
arc_read(url, name_repair = tolower)
# use paste0 to prevent CRAN check NOTE
furl <- paste0(
"https://sampleserver6.arcgisonline.com/arcgis/rest/services/",
"EmergencyFacilities/FeatureServer/0"
)
# use field aliases as column names
arc_read(furl, col_names = "alias")
# read an ImageServer directly
img_url <- "https://landsat2.arcgis.com/arcgis/rest/services/Landsat/MS/ImageServer"
arc_read(
img_url,
width = 100, height = 100,
xmin = -71, ymin = 43,
xmax = -67, ymax = 47.5,
bbox_crs = 4326
)
} # }