Transform or convert coordinates of simple feature
Transform or convert coordinates of simple feature
st_transform(x, crs, ...) ## S3 method for class 'sfc' st_transform( x, crs = st_crs(x), ..., aoi = numeric(0), pipeline = character(0), reverse = FALSE, desired_accuracy = -1, allow_ballpark = TRUE, partial = TRUE, check = FALSE ) ## S3 method for class 'sf' st_transform(x, crs = st_crs(x), ...) ## S3 method for class 'sfg' st_transform(x, crs = st_crs(x), ...) st_wrap_dateline(x, options, quiet) ## S3 method for class 'sfc' st_wrap_dateline(x, options = "WRAPDATELINE=YES", quiet = TRUE) ## S3 method for class 'sf' st_wrap_dateline(x, options = "WRAPDATELINE=YES", quiet = TRUE) ## S3 method for class 'sfg' st_wrap_dateline(x, options = "WRAPDATELINE=YES", quiet = TRUE) sf_proj_info(type = "proj", path)
x |
object of class sf, sfc or sfg |
crs |
target coordinate reference system: object of class 'crs', or input string for st_crs |
... |
ignored |
aoi |
area of interest, in degrees: WestLongitude, SouthLatitude, EastLongitude, NorthLatitude |
pipeline |
character; coordinate operation pipeline, for overriding the default operation |
reverse |
boolean; has only an effect when |
desired_accuracy |
numeric; Only coordinate operations that offer an accuracy of at least the one specified will be considered; a negative value disables this feature (requires GDAL >= 3.3) |
allow_ballpark |
logical; are ballpark (low accuracy) transformations allowed? (requires GDAL >= 3.3) |
partial |
logical; allow for partial projection, if not all points of a geometry can be projected (corresponds to setting environment variable |
check |
logical; if |
options |
character; should have "WRAPDATELINE=YES" to function; another parameter that is used is "DATELINEOFFSET=10" (where 10 is the default value) |
quiet |
logical; print options after they have been parsed? |
type |
character; one of |
path |
character; PROJ search path to be set |
Transforms coordinates of object to new projection. Features that cannot be transformed are returned as empty geometries.
The st_transform
method for sfg
objects assumes that the CRS of the object is available as an attribute of that name.
For a discussion of using options
, see https://github.com/r-spatial/sf/issues/280 and https://github.com/r-spatial/sf/issues/541
sf_proj_info
lists the available projections, ellipses, datums, units, or data search path of the PROJ library when type
is equal to proj, ellps, datum, units or path; when type
equals have_datum_files
a boolean is returned indicating whether datum files are installed and accessible (checking for conus
).
for PROJ >= 6, sf_proj_info
does not provide option type = "datums"
.
PROJ < 6 does not provide the option type = "prime_meridians"
.
for PROJ >= 7.1.0, the "units" query of sf_proj_info
returns the to_meter
variable as numeric, previous versions return a character vector containing a numeric expression.
Projecting simple feature geometries to projections not supported by GDAL may be done by st_transform_proj, part of package lwgeom.
sf_project projects a matrix of coordinates, bypassing GDAL altogether
p1 = st_point(c(7,52)) p2 = st_point(c(-30,20)) sfc = st_sfc(p1, p2, crs = 4326) sfc st_transform(sfc, 3857) st_transform(st_sf(a=2:1, geom=sfc), "+init=epsg:3857") try(st_transform(sfc, 3857, aoi = c(-280,-90,180,90))) if (sf_extSoftVersion()["GDAL"] >= "3.0.0") { st_transform(sfc, pipeline = "+proj=pipeline +step +proj=axisswap +order=2,1") # reverse axes st_transform(sfc, pipeline = "+proj=pipeline +step +proj=axisswap +order=2,1", reverse = TRUE) # also reverse axes } nc = st_read(system.file("shape/nc.shp", package="sf")) st_area(nc[1,]) # area from long/lat st_area(st_transform(nc[1,], 32119)) # NC state plane, m st_area(st_transform(nc[1,], 2264)) # NC state plane, US foot library(units) set_units(st_area(st_transform(nc[1,], 2264)), m^2) st_transform(structure(p1, proj4string = "+init=epsg:4326"), "+init=epsg:3857") st_wrap_dateline(st_sfc(st_linestring(rbind(c(-179,0),c(179,0))), crs = 4326)) library(maps) wrld <- st_as_sf(maps::map("world", fill = TRUE, plot = FALSE)) wrld_wrap <- st_wrap_dateline(wrld, options = c("WRAPDATELINE=YES", "DATELINEOFFSET=180"), quiet = TRUE) wrld_moll <- st_transform(wrld_wrap, "+proj=moll") plot(st_geometry(wrld_moll), col = "transparent") sf_proj_info("datum")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.