自从sp包更新以来,我通过调用sp :: CRS定义得到警告

问题描述

由于更新了sp程序包,我得到了一条以前从未收到的警告:

menu[i]

这是我用来定义CRS的代码

 1: In showSRID(uprojargs,format = "PROJ",multiline = "NO") :
  discarded ellps unkNown in CRS deFinition: +proj=stere +lat_0=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +R=6370040 +units=km +no_defs
2: In showSRID(uprojargs,multiline = "NO") :
  discarded datum unkNown in CRS deFinition

我尝试创建一个投影,并且之前已经在工作:) 但自更新以来,我收到此警告。 我究竟做错了什么? 预先谢谢你,

最好的问候, 安德烈亚斯(Andreas)

解决方法

在最近的发行版中,sp和其他空间包发生了一些重大变化。参见,例如:

https://www.r-spatial.org/r/2020/03/17/wkt.html

https://www.r-spatial.org/r/2020/06/17/s2.html

与您的问题相关的是crs和CRS之间存在差异。也许事情在那里卡住了。

,

在您的定义中,您有参数ab ---这些是指地球的ellipsoid表示形式的半径。由于它们相同,因此您正在使用球体。新版本的PROJ库要求,如果使用proj4表示法,则必须使用WGS84(或紧密相关)数据。否则,您需要提供EPSG代码或WKT表示法。像这样:

p4 <- "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=10 +k=0.93301270189 +units=km +datum=WGS84"
sp::CRS(p4)
#CRS arguments:
# +proj=stere +lat_0=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +units=km  +datum=WGS84 +units=m +no_defs 

由于此CRS似乎没有EPSG代码,因此您需要提供WKT描述。我found这个

wkt <- 'PROJCS["unknown",GEOGCS["unknown",DATUM["unknown",SPHEROID["unknown",6370040,0]],PRIMEM["Greenwich",AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,"9122"]]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",10],PARAMETER["scale_factor",0.93301270189],PARAMETER["false_easting",0],PARAMETER["false_northing",UNIT["kilometre",1000,"9036"]],AXIS["Easting",SOUTH],AXIS["Northing",SOUTH]]'

But that still does not work because of the datum being unknown 

CRS(SRS_string=wkt)

#CRS arguments:
# +proj=stere +lat_0=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +R=6370040 +units=km +no_defs 
#Warning messages:
#1: In showSRID(SRS_string,format = "PROJ",multiline = "NO") :
#  Discarded ellps unknown in CRS definition: +proj=stere +lat_0=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +R=6370040 +units=km +no_defs
#2: In showSRID(SRS_string,multiline = "NO") :
#  Discarded datum unknown in CRS definition