
This function is a wrapper for sf::st_crs, unless
threating numeric character
strings as integers, and
accepting also UTM timezones, paths of spatial files and paths of
text files containing WKT like .prj (see details) .
st_crs2(x, ...)
numeric, character, or object of class sf or sfc, being:
EPSG code: numeric (e.g. 32632
) or character (in the form
"32632"
or "EPSG:32632"
);
UTM zone: numeric (e.g. 32
, interpreted as 32 North) or character
(e.g. "32"
or "32N"
for zone 32 North, "32S"
for 32 South);
WKT test: passed as character string or as path of a text file containing it (e.g. the path of a .prj file);
PROJ.4 string, passed as character (e.g.
"+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs"
(NOTE: this representation is deprecated with PROJ >= 6
-- see http://rgdal.r-forge.r-project.org/articles/PROJ6_GDAL3.html --
so a warning is returned using it, unless the string contains only
the epsg code -- e.g. "+init=epsg:32632"
, in which case the EPSG
code is taken);
path of a spatial file (managed by sf::st_read or stars::read_stars), passed as character string of length 1;
other parameters passed to sf::st_crs.
An object of class crs of length 2.
See sf::st_crs for details.
# NOT RUN {
## CRS from EPSG
st_crs2(32609)
st_crs2("EPSG:32609")
## CRS from UTM zone
st_crs2(9)
st_crs2("09")
st_crs2("9N")
st_crs2("09S")
## CRS from WKT (string or path)
(wkt_32n <- sf::st_as_text(sf::st_crs(32609)))
st_crs2(wkt_32n)
writeLines(wkt_32n, wkt_32n_path <- tempfile())
st_crs2(wkt_32n_path)
## CRS from spatial file path
raster_path <- system.file(
"extdata/out/S2A2A_20190723_022_Barbellino_BOA_10.tif",
package="sen2r"
)
vector_path <- system.file(
"extdata/vector/barbellino.geojson",
package="sen2r"
)
st_crs2(raster_path)
st_crs2(vector_path)
## CRS from spatial files
st_crs2(stars::read_stars(raster_path))
st_crs2(sf::read_sf(vector_path))
# }
# NOT RUN {
## CRS from PROJ.4 string
# (avoid using this with PROJ >= 6!)
st_crs2("+init=epsg:32609") # this makes use of the EPSG code
st_crs2("+proj=utm +zone=9 +datum=WGS84 +units=m +no_defs")
st_crs2(raster::raster(raster_path)) # st_crs(raster) uses the PROJ.4 as input
# }
Run the code above in your browser using DataLab