Re: [R-sig-Geo] how to find projections supported by sf::st_crs()?

2020-01-21 Thread Edzer Pebesma
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,]00
> 
>> 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


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


[R-sig-Geo] how to find projections supported by sf::st_crs()?

2020-01-21 Thread Daniel Kelley
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,]00

> 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