Please note that anything I am going to write concerns current sf (on
CRAN), and that things will change pretty strongly in a month or so,
driven by GDAL 3.x and PROJ 6.2.x releases.

st_crs() takes a proj4string or an EPSG number, and tries to resolve
this using GDAL. Although it uses PROJ, GDAL is more strict than PROJ in
accepting proj4strings, and as you noted +wintri is not accepted.

sf_project() was written exactly for the reason that it communicates to
PROJ without going through GDAL, and hence is more flexible; all
proj4strings PROJ accepts are fine as input, but those that are not
accepted by GDAL can only be passed as character strings for the reason
mentioned above.

Hth,

On 1/21/20 3:45 PM, Daniel Kelley wrote:
> I am pondering the use of `sf::sf_project()` for map-projection calculations 
> within the `oce` package. My impression is that `sf::st_crs()` ought to be 
> used to process projection strings, instead of handing strings directly to 
> `sf::sf_project()`.  (I think the idea is that this will lead to the addition 
> of extra information about the ellipse model, etc., and perhaps do some 
> checks for errors in the string.)
> 
> However, my tests show that `sf::st_crs()` balks at some projections, such as 
> `wintri`, as shown in the code snippets given near the end of this email.  
> (Those snippets also show that `sf::sf_project()` handles the wintri 
> projection, as does `rgdal::project()`, so the warning does not mean that 
> `sf` will refuse to do the projection.)
> 
> This leads me to three questions, that I'm hoping others can shed light on.
> 
> 1. Am I right in thinking that I ought to use `sf::sf_crs()` to "clean up" my 
> projection specifications?
> 
> 2. Is there a way to find the list of projections that `sf::sf_crs()` accepts 
> without producing `NA` results and warnings?
> 
> 3. Should I avoid using projections that `sf::sf_crs()` warns about?
> 
> I apologize if I ought to have gathered the results from my reading.  I could 
> be looking in the wrong places.
> 
> Thanks in advance for any advice!  -- Dan.
> 
> ```R
>> library(sf)
> Linking to GEOS 3.8.0, GDAL 2.4.2, PROJ 6.2.1
> 
>> sf::sf_project("+proj=lonlat", "+proj=wintri", cbind(0,0))
>      [,1] [,2]
> [1,]    0    0
> 
>> sf::st_crs("+proj=wintri")
> Coordinate Reference System: NA
> Warning message:
> In CPL_crs_from_proj4string(x) :
>   GDAL cannot import PROJ.4 string `+proj=wintri': returning missing CRS
> ```
> 
> Dan E. Kelley [he/him/his 314ppm]
> Dalhousie University
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 

-- 
Edzer Pebesma
Institute for Geoinformatics
Heisenbergstrasse 2, 48151 Muenster, Germany
Phone: +49 251 8333081

Attachment: pEpkey.asc
Description: application/pgp-keys

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to