Transform or convert coordinates of simple feature
st_transform(x, crs, ...) # S3 method for 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 sf st_transform(x, crs = st_crs(x), ...) # S3 method for sfg st_transform(x, crs = st_crs(x), ...) st_wrap_dateline(x, options, quiet) # S3 method for sfc st_wrap_dateline(x, options = "WRAPDATELINE=YES", quiet = TRUE) # S3 method for sf st_wrap_dateline(x, options = "WRAPDATELINE=YES", quiet = TRUE) # S3 method for 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
#> Geometry set for 2 features #> Geometry type: POINT #> Dimension: XY #> Bounding box: xmin: -30 ymin: 20 xmax: 7 ymax: 52 #> Geodetic CRS: WGS 84#>#>st_transform(sfc, 3857)#> Geometry set for 2 features #> Geometry type: POINT #> Dimension: XY #> Bounding box: xmin: -3339585 ymin: 2273031 xmax: 779236.4 ymax: 6800125 #> Projected CRS: WGS 84 / Pseudo-Mercator#>#>#> Simple feature collection with 2 features and 1 field #> Geometry type: POINT #> Dimension: XY #> Bounding box: xmin: -3339585 ymin: 2273031 xmax: 779236.4 ymax: 6800125 #> Projected CRS: WGS 84 / Pseudo-Mercator #> a geom #> 1 2 POINT (779236.4 6800125) #> 2 1 POINT (-3339585 2273031)#> Warning: GDAL Error 1: Invalid dfWestLongitudeDeg#> Error in CPL_transform(x, crs, aoi, pipeline, reverse, desired_accuracy, : #> values for area of interest not acceptedif (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 }#> Geometry set for 2 features #> Geometry type: POINT #> Dimension: XY #> Bounding box: xmin: -30 ymin: 20 xmax: 7 ymax: 52 #> CRS: NA#>#>#> Reading layer `nc' from data source #> `/tmp/RtmpzvxjeZ/temp_libpath450f50cd768a/sf/shape/nc.shp' #> using driver `ESRI Shapefile' #> Simple feature collection with 100 features and 14 fields #> Geometry type: MULTIPOLYGON #> Dimension: XY #> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965 #> Geodetic CRS: NAD27#> 1137388604 [m^2]#> 1137598162 [m^2]#> 12244955726 [US_survey_foot^2]#>#> 1137598162 [m^2]#>#> Geometry set for 1 feature #> Geometry type: MULTILINESTRING #> Dimension: XY #> Bounding box: xmin: -180 ymin: 0 xmax: 180 ymax: 0 #> Geodetic CRS: WGS 84#>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)#> Warning: GDAL Error 1: IllegalArgumentException: Points of LinearRing do not form a closed linestring#> Warning: GDAL Error 1: IllegalArgumentException: Points of LinearRing do not form a closed linestringwrld_moll <- st_transform(wrld_wrap, "+proj=moll") plot(st_geometry(wrld_moll), col = "transparent")sf_proj_info("datum")#> data frame with 0 columns and 0 rows