代码之家  ›  专栏  ›  技术社区  ›  fmark

项目4使用R的再投影

  •  4
  • fmark  · 技术社区  · 14 年前

    我正在尝试将坐标从WGS84重新投影到MGA 53区,这是一个基于GDA94基准面的UTM投影。我得到无穷大的结果,这是绝对错误的。我正在使用R proj4 包装方式:

    > library(proj4)
    > df <- data.frame("x" = c(131.1, 131.102, 131.1106, 133.34), "y" = c(-13.23, -13.243, -13.22, -22.66))
    > df
             x       y
    1 131.1000 -13.230
    2 131.1020 -13.243
    3 131.1106 -13.220
    4 133.3400 -22.660
    > ptransform(data = df, src.proj = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs", dst.proj = "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")
    $x
    [1] Inf Inf Inf Inf
    
    $y
    [1] Inf Inf Inf Inf
    
    $z
    [1] 0 0 0 0
    
    > 
    

    这里出什么事了?

    2 回复  |  直到 14 年前
        1
  •  4
  •   mdsumner    14 年前

    问题是ptransform需要的是弧度,而不是度数。函数proj4:::project默认为度数。如果转换为弧度,ptransform的结果是相同的。

        2
  •  3
  •   mdsumner    14 年前

    从哪里获得ProJ4包?

    如果可以安装,请尝试rgdal:

    df<-data.frame(“x”=c(131.1,131.102,131.1106,133.34),“y”=c(-13.23,-13.243,-13.22,-22.66))

    图书馆(RGDAL)

    ##项目需要一个矩阵,假设来源是longlat/wgs84

    项目(如矩阵(df),“+proj=utm+zone=53+south+ellps=grs80+towgs84=0,0,0,0,0,0+units=m+no-defs”)

         [,1]    [,2]
    

    [1,]77177.18 8534132号

    [2,]77416.79 8532695

    [3,]78310.75 8535258

    [4,]329440.68 7493165