将NAD83状态平面坐标转换为WS84标准lon / lat,度

时间:2016-09-14 21:36:15

标签: r gis rgdal

我尝试使用this instruction将NAD83状态平面坐标中的一组x-y坐标转换为以度为单位的常规Lan / Lat坐标。我可以复制这篇文章中给出的例子,但是它无法给出我的集合的正确答案!以下是我所尝试的以及我获得的[错误答案]。

library(rgdal)
nad83_coords <- data.frame(x=c(577430), y=c(2323270)) # My coordinates in NAD83
coordinates(nad83_coords) <- c('x', 'y')
proj4string(nad83_coords)=CRS("+init=esri:102272") # West Illinois
coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:3436")) # West Illinois

> x             y
1 1894451.52045 7622263.00755

正确的解决方案必须是:

lat= 38.2525     deg
lon=-90.07364722 deg

我有一个代码在MATLAB中完成这项工作,但我真的很想知道“rgdal”或R中的任何其他库是否可以做到这一点。这样,我的世界会更美丽!谢谢你的阅读。

1 个答案:

答案 0 :(得分:1)

为了获得纬度和经度坐标,您需要从投影坐标系(NAD 83)到地理坐标系(WGS 84)。对于您的数据,您使用的是英尺投影,因此您的West Illinois投影是正确的。但是,你在orignal帖子中的错误以及下面突出显示的是你从NAD83到NAD83的<select name="Action" id="ActionDD" required onchange="showHide()"> <option value="">Action:</option> <option value="complete">Complete</option> <option value="abandon">Abandon</option> <option value="transfer">Transfer</option> </select> <div id="result"> </div>给你错误的数据。有关投影和地理坐标系之间差异的更多信息,请参见here。相反,您需要在转换中使用WGS84投影,如下所示:**如Jim所述,现在合并了从英尺到米的转换。

spTransform

如果您不想转换,我们可以使用以下投影EPSG: 3531

library(rgdal)
   nad83_coords <- data.frame(x=c(577430), y=c(2323270)) # My coordinates in NAD83
nad83_coords <- nad83_coords *.3048 ## Feet to meters
    coordinates(nad83_coords) <- c('x', 'y')
    proj4string(nad83_coords)=CRS("+init=esri:102272") # West Illinois
    ## Erroneous code, NAD83 to NAD83
    ## coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:3436"))
    ## Corrected with WGS84 to yield Lat/Long
    coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:4326"))
    coordinates_deg
    SpatialPoints:
                x        y
    [1,] -96.57822 42.86484
    Coordinate Reference System (CRS) arguments: +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 

我看到你所说的关于坐标应该在哪里,看着空间参考站点,你的坐标在那个投影的窗口内,但它们并没有按预期出现。还在挖掘。