Skip to contents

srs_to_wkt() converts a spatial reference system (SRS) definition in various text formats to WKT. The function will examine the input SRS, try to deduce the format, and then export it to WKT.


srs_to_wkt(srs, pretty = FALSE)



Character string containing an SRS definition in various formats (see Details).


Logical. TRUE to return a nicely formatted WKT string for display to a person. FALSE for a regular WKT string (the default).


Character string containing OGC WKT.


This is a wrapper for OSRSetFromUserInput() in the GDAL Spatial Reference System C API with output to WKT. The input SRS may take the following forms:

  • WKT - to convert WKT versions (see below)

  • EPSG:n - EPSG code n

  • AUTO:proj_id,unit_id,lon0,lat0 - WMS auto projections

  • urn:ogc:def:crs:EPSG::n - OGC URNs

  • PROJ.4 definitions

  • filename - file to read for WKT, XML or PROJ.4 definition

  • well known name such as NAD27, NAD83, WGS84 or WGS72

  • IGNF:xxxx, ESRI:xxxx - definitions from the PROJ database

  • PROJJSON (PROJ >= 6.2)

This function is intended to be flexible, but by its nature it is imprecise as it must guess information about the format intended. epsg_to_wkt() could be used instead for EPSG codes.

As of GDAL 3.0, the default format for WKT export is OGC WKT 1. The WKT version can be overridden by using the OSR_WKT_FORMAT configuration option (see set_config_option()). Valid values are one of: SFSQL, WKT1_SIMPLE, WKT1, WKT1_GDAL, WKT1_ESRI, WKT2_2015, WKT2_2018, WKT2, DEFAULT. If SFSQL, a WKT1 string without AXIS, TOWGS84, AUTHORITY or EXTENSION node is returned. If WKT1_SIMPLE, a WKT1 string without AXIS, AUTHORITY or EXTENSION node is returned. WKT1 is an alias of WKT1_GDAL. WKT2 will default to the latest revision implemented (currently WKT2_2018). WKT2_2019 can be used as an alias of WKT2_2018 since GDAL 3.2

See also


#> [1] "GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]]"
writeLines(srs_to_wkt("NAD83", pretty=TRUE))
#> GEOGCS["NAD83",
#>     DATUM["North_American_Datum_1983",
#>         SPHEROID["GRS 1980",6378137,298.257222101,
#>             AUTHORITY["EPSG","7019"]],
#>         AUTHORITY["EPSG","6269"]],
#>     PRIMEM["Greenwich",0,
#>         AUTHORITY["EPSG","8901"]],
#>     UNIT["degree",0.0174532925199433,
#>         AUTHORITY["EPSG","9122"]],
#>     AXIS["Latitude",NORTH],
#>     AXIS["Longitude",EAST],
#>     AUTHORITY["EPSG","4269"]]
set_config_option("OSR_WKT_FORMAT", "WKT2")
writeLines(srs_to_wkt("NAD83", pretty=TRUE))
#>     DATUM["North American Datum 1983",
#>         ELLIPSOID["GRS 1980",6378137,298.257222101,
#>             LENGTHUNIT["metre",1]]],
#>     PRIMEM["Greenwich",0,
#>         ANGLEUNIT["degree",0.0174532925199433]],
#>     CS[ellipsoidal,2],
#>         AXIS["geodetic latitude (Lat)",north,
#>             ORDER[1],
#>             ANGLEUNIT["degree",0.0174532925199433]],
#>         AXIS["geodetic longitude (Lon)",east,
#>             ORDER[2],
#>             ANGLEUNIT["degree",0.0174532925199433]],
#>     ID["EPSG",4269]]
set_config_option("OSR_WKT_FORMAT", "")