[R-sig-Geo] WKT coordinate system string (PRJ) to PROJ.4
Ahmadou Dicko
dicko.ahmadou at gmail.com
Tue Jan 5 12:24:24 CET 2016
You can also use gdalsrsinfo through gdalUtils.
prj_1 <- 'PROJCS["Transverse_Mercator",
GEOGCS["GCS_OSGB 1936",
DATUM["D_OSGB_1936",
SPHEROID["Airy_1830",6377563.396,299.3249646]],
PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",49],
PARAMETER["central_meridian",-2],
PARAMETER["scale_factor",0.9996012717],
PARAMETER["false_easting",400000],
PARAMETER["false_northing",-100000],
UNIT["Meter",1]]'
prj_to_epsg <- function(prj) {
file <- tempfile()
writeLines(prj, file)
crs <- gdalsrsinfo(file, as.CRS = TRUE)
unlink(file)
crs
}
prj_to_epsg(prj_1)
## CRS arguments:
## +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717
## +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs
On Tue, Jan 5, 2016 at 11:09 AM, Michael Sumner <mdsumner at gmail.com> wrote:
> >
> >
> > On Tue, 5 Jan 2016 at 21:58 boB Rudis <bob at rudis.net> wrote:
> > This may not be optimal as it uses an external service:
>
>
> That is excellent, thanks for the example!
>
> I assume you won't mind if I package it up? I'll attribute you, and let
> you know when it's working.
>
> Cheers, Mike.
>
>
> > prj_to_epsg <- function(prj) {
> >
> > require(sp)
> > require(httr)
> > require(jsonlite)
> >
> > res <- GET("http://prj2epsg.org/search.json",
> > query=list(exact=TRUE,
> > error=TRUE,
> > mode="wkt",
> > terms=prj))
> >
> > # one shld prbly do more error checking than this
> > stop_for_status(res)
> >
> > dat <- fromJSON(content(res, as="text", flatten=TRUE))
> >
> > # NOTE: there could be more in dat$codes if prj was ambiguous
> > CRS(paste0("+init=epsg:", dat$codes[1, "code"]))
> >
> > }
> >
> > prj <- paste0(readLines("110m_admin_1_states_provinces_shp.prj"))
> > prj_to_epsg(prj)
> > ## CRS arguments:
> > ## +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84
> > ## +towgs84=0,0,0
> >
> > prj_1 <- 'PROJCS["Transverse_Mercator",
> > GEOGCS["GCS_OSGB 1936",
> > DATUM["D_OSGB_1936",
> > SPHEROID["Airy_1830",6377563.396,299.3249646]],
> > PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],
> > PROJECTION["Transverse_Mercator"],
> > PARAMETER["latitude_of_origin",49],
> > PARAMETER["central_meridian",-2],
> > PARAMETER["scale_factor",0.9996012717],
> > PARAMETER["false_easting",400000],
> > PARAMETER["false_northing",-100000],
> > UNIT["Meter",1]]'
> > prj_to_epsg(prj_1)
> > ## CRS arguments:
> > ## +init=epsg:27700 +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717
> > ## +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +no_defs +ellps=airy
> > ## +towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894
> >
> > On Tue, Jan 5, 2016 at 5:09 AM, Michael Sumner <mdsumner at gmail.com>
> wrote:
> > > Hello, is there any R-level way to convert a WKT/PRJ *coordinate
> system*
> > > string to PROJ.4 used by sp/rgdal?
> > >
> > > (Previously I've written out to SHP/PRJ, and read back in with rgdal,
> but
> > > that's obviously a bit naff.)
> > >
> > > (I know you can rgeos::readWKT and wkb::readWKB for *geometry*).
> > >
> > > Cheers, Mike.
> > >
> > >
> > >
> > >
> > > --
> > > Dr. Michael Sumner
> > > Software and Database Engineer
> > > Australian Antarctic Division
> > > 203 Channel Highway
> > > Kingston Tasmania 7050 Australia
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > _______________________________________________
> > > R-sig-Geo mailing list
> > > R-sig-Geo at r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> --
> Dr. Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> 203 Channel Highway
> Kingston Tasmania 7050 Australia
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
--
Ahmadou H. DICKO
statistician economist (Ingénieur Statisticien Économiste)
PhD candidate in Climate change economics
Faculty of economics and managment - Cheikh Anta Diop University
West African Science Service Center on Climate Change and Adaptated Land
Use (WASCAL)
Center for Development Research (ZEF) - University of Bonn
email : ahmadou.dicko at ucad.edu.sn
twitter : @dickoah
github : github/dickoa <https://github.com/dickoa>
tel : +221 33 827 55 16
portable: +221 77 123 81 69
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list