【问题标题】:Error in .pointsToMatrix(p1) : latitude > 90.pointsToMatrix(p1) 中的错误:纬度 > 90
【发布时间】:2014-02-01 09:59:23
【问题描述】:

按照Calculate total miles traveled from vectors of lat / lon 中给出的示例,我正在尝试使用 R 中 geosphere 包中的 distVincentyEllipsoid 函数来计算我的数据框中不同点之间的距离。但是,我不断收到错误“.pointsToMatrix(p1) 中的错误:纬度 > 90”,即使我所有的纬度都远小于 90。可能是什么问题?请帮忙

【问题讨论】:

  • 证明您的经纬度输入确实在该范围内具有纬度。我的猜测是你的顺序错了。顺便说一句,pointsToMatrix 源并不复杂
  • 如果我们将您使用的任何内容作为distVincentyEllipsoid(...) p1 的第一个参数调用,然后输入range(p1[2])。如果任何一个数字输出 >90,那就是你的问题。

标签: r


【解决方案1】:

我只是遇到了同样的问题。检查您是否将数据输入为 c(LONG, LAT)。我错误地使用了更常见的 c(LAT, LONG) 格式。

【讨论】:

    【解决方案2】:

    我还要补充一点,您应该检查 NA。我将一组邮政编码地理编码为坐标,但由于一些邮政编码已过期(至少我认为是这样),它们无法生成坐标。

    如果你运行:

    range(p1[2])
    

    得到

    NA NA
    

    那么这是一个很好的迹象。

    【讨论】:

      【解决方案3】:

      遇到同样的问题,用 as.numeric 解决了:

      args <- commandArgs(trailingOnly=TRUE)
      Lieu1 <- c(args[1],args[2]) 
      Lieu2 <- c(args[3],args[4]) 
      
      Lieu1 <- as.numeric(Lieu1)
      Lieu2 <- as.numeric(Lieu2)
      
      library(geosphere)
      distVincentyEllipsoid(Lieu1,Lieu2)/1000
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-08
        • 2014-12-08
        • 1970-01-01
        • 2021-07-19
        • 1970-01-01
        相关资源
        最近更新 更多