[R-sig-Geo] WKT coordinate system string (PRJ) to PROJ.4

Michael Sumner mdsumner at gmail.com
Tue Jan 5 12:09:58 CET 2016


>
>
> 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]]



More information about the R-sig-Geo mailing list