[R-sig-Geo] Migrating from proj strings to WKT/EPSG

Ben Tupper btupper @end|ng |rom b|ge|ow@org
Mon Nov 22 22:51:12 CET 2021


Doh!  Forehead slap!  How the heck did I overlook that simple
solution.  Thank you!

On Mon, Nov 22, 2021 at 2:51 PM Diego Hernangómez Herrero
<diego.hernangomezherrero using gmail.com> wrote:
>
> Hi Ben:
>
> I don't know if this is relevant for your question, but you can use proj4strings with sf::st_crs() without using rgdal:
>
> ``` r
> proj <- "+proj=tmerc +datum=NAD83 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 x_0=900000 y_0=0"
> sf::st_crs(proj)
>
> #> Coordinate Reference System:
> #>   User input: +proj=tmerc +datum=NAD83 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 x_0=900000 y_0=0
> #>   wkt:
> #> PROJCRS["unknown",
> #>     BASEGEOGCRS["unknown",
> #>         DATUM["North American Datum 1983",
> #>             ELLIPSOID["GRS 1980",6378137,298.257222101,
> #>                 LENGTHUNIT["metre",1]],
> #>             ID["EPSG",6269]],
> #>         PRIMEM["Greenwich",0,
> #>             ANGLEUNIT["degree",0.0174532925199433],
> #>             ID["EPSG",8901]]],
> #>     CONVERSION["unknown",
> #>         METHOD["Transverse Mercator",
> #>             ID["EPSG",9807]],
> #>         PARAMETER["Latitude of natural origin",42.8333333333333,
> #>             ANGLEUNIT["degree",0.0174532925199433],
> #>             ID["EPSG",8801]],
> #>         PARAMETER["Longitude of natural origin",-70.1666666666667,
> #>             ANGLEUNIT["degree",0.0174532925199433],
> #>             ID["EPSG",8802]],
> #>         PARAMETER["Scale factor at natural origin",0.999966666666667,
> #>             SCALEUNIT["unity",1],
> #>             ID["EPSG",8805]],
> #>         PARAMETER["False easting",900000,
> #>             LENGTHUNIT["metre",1],
> #>             ID["EPSG",8806]],
> #>         PARAMETER["False northing",0,
> #>             LENGTHUNIT["metre",1],
> #>             ID["EPSG",8807]]],
> #>     CS[Cartesian,2],
> #>         AXIS["(E)",east,
> #>             ORDER[1],
> #>             LENGTHUNIT["metre",1,
> #>                 ID["EPSG",9001]]],
> #>         AXIS["(N)",north,
> #>             ORDER[2],
> #>             LENGTHUNIT["metre",1,
> #>                 ID["EPSG",9001]]]]
> ```
>
>
> El lun, 22 nov 2021 a las 20:11, Ben Tupper (<btupper using bigelow.org>) escribió:
>>
>> Hello,
>>
>> I have a spatial mesh that provides the following CRS.
>>
>> proj <- "proj=tmerc +datum=NAD83 +lon_0=-70d10 lat_0=42d50
>> k=.9999666666666667 x_0=900000 y_0=0"
>>
>> To use this with the sf package it must be formed as Well Known Text
>> or a EPSG code. In this particular case there is no EPSG code in the
>> registry.
>>
>> My current workflow so I can use this data in sf is to leverage
>> showWKT() from the rgdal package to cast the proj string to WKT. The
>> following message is printed when the packages is loaded.
>>
>> > Please note that rgdal will be retired by the end of 2023, plan transition to sf/stars/terra functions using GDAL and PROJ at your earliest convenience.
>>
>>
>> rgdal::showWKT(proj) |> sf::st_crs(wkt)
>>
>> #> Coordinate Reference System:
>> #>   User input:
>> PROJCS["unknown",GEOGCS["unknown",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"]]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.8333333333333],PARAMETER["central_meridian",-70.1666666666667],PARAMETER["scale_factor",0.999966666666667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]
>> #>   wkt:
>> #> PROJCRS["unknown",
>> #>     BASEGEOGCRS["unknown",
>> #>         DATUM["North American Datum 1983",
>> #>             ELLIPSOID["GRS 1980",6378137,298.257222101,
>> #>                 LENGTHUNIT["metre",1]],
>> #>             ID["EPSG",6269]],
>> #>         PRIMEM["Greenwich",0,
>> #>             ANGLEUNIT["degree",0.0174532925199433],
>> #>             ID["EPSG",8901]]],
>> #>     CONVERSION["unnamed",
>> #>         METHOD["Transverse Mercator",
>> #>             ID["EPSG",9807]],
>> #>         PARAMETER["Latitude of natural origin",42.8333333333333,
>> #>             ANGLEUNIT["degree",0.0174532925199433],
>> #>             ID["EPSG",8801]],
>> #>         PARAMETER["Longitude of natural origin",-70.1666666666667,
>> #>             ANGLEUNIT["degree",0.0174532925199433],
>> #>             ID["EPSG",8802]],
>> #>         PARAMETER["Scale factor at natural origin",0.999966666666667,
>> #>             SCALEUNIT["unity",1],
>> #>             ID["EPSG",8805]],
>> #>         PARAMETER["False easting",900000,
>> #>             LENGTHUNIT["metre",1],
>> #>             ID["EPSG",8806]],
>> #>         PARAMETER["False northing",0,
>> #>             LENGTHUNIT["metre",1],
>> #>             ID["EPSG",8807]]],
>> #>     CS[Cartesian,2],
>> #>         AXIS["easting",east,
>> #>             ORDER[1],
>> #>             LENGTHUNIT["metre",1,
>> #>                 ID["EPSG",9001]]],
>> #>         AXIS["northing",north,
>> #>             ORDER[2],
>> #>             LENGTHUNIT["metre",1,
>> #>                 ID["EPSG",9001]]]]
>>
>> In the spirit of not leaving things to the last minute (that's never
>> happened before!), what are the current options for converting proj
>> strings to WKT that don’t use rgdal?
>>
>> Cheers and thanks,
>> Ben
>>
>> --
>> Ben Tupper (he/him)
>> Bigelow Laboratory for Ocean Science
>> East Boothbay, Maine
>> http://www.bigelow.org/
>> https://eco.bigelow.org
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>
>
> --
>
>
>
> Have a nice day!



-- 
Ben Tupper (he/him)
Bigelow Laboratory for Ocean Science
East Boothbay, Maine
http://www.bigelow.org/
https://eco.bigelow.org



More information about the R-sig-Geo mailing list