【问题标题】:Since update of sp package i get a warning by calling a sp::CRS definition由于更新了 sp 包,我通过调用 sp::CRS 定义收到警告
【发布时间】:2020-12-02 01:58:17
【问题描述】:

自从更新 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"
    )

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

最好的问候, 安德烈亚斯

【问题讨论】:

    标签: r tidyr r-raster sp rgdal


    【解决方案1】:

    在您的定义中,您有参数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
    

    【讨论】:

    • 您好罗伯特,感谢您的回复。我正在阅读 Radolan 数据:stackoverflow.com/questions/45612285/…。 to_meter=1000 是单元格的大小。 a 和 b 我认为定义了整体区域。如果我使用您的建议,我会得到以下警告:在 rgdal::rawTransform(projto_int, projfrom, nrow(xy), xy[, 1], : 3376620 投影点不是有限的
    • 可能是因为我省略了units=km。我把它加回来了
    • 是的,这似乎消除了警告。奇怪的是,我现在对我的情节得到了不同的结果。要么我以前做错了,要么现在出了什么问题。
    【解决方案2】:

    在最近的版本中,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 之间存在差异。也许事情被困在那里了。

    【讨论】:

    • 感谢您的回复蒂姆。我还发现有一个重大更新,我无法理解我现在遇到的问题。我想也许有人会马上看到这个问题。
    猜你喜欢
    • 2017-10-09
    • 2021-10-31
    • 1970-01-01
    • 2020-04-06
    • 2023-03-26
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多