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

Since update of sp package i get a warning by calling a sp::CRS definition

自从更新了 sp 包后,我收到了以前没有收到的警告:

 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, format = "PROJ", multiline = "NO") :
  Discarded datum unknown in CRS definition

这是我用来定义 CRS 的代码

 sp::CRS(
      "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +a=6370040 +b=6370040 +to_meter=1000 +no_defs"
    )

我尝试创建一个投影,它之前是有效的:) 但是自更新以来我收到了这个警告。 我究竟做错了什么? 提前谢谢你,

此致, 安德烈亚斯

在最近的版本中,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",0,
        AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.0174532925199433,
        AUTHORITY["EPSG","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",0],
UNIT["kilometre",1000,
    AUTHORITY["EPSG","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, format = "PROJ", multiline = "NO") :
#  Discarded datum unknown in CRS definition