我尝试使用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中的任何其他库是否可以做到这一点。这样,我的世界会更美丽!谢谢你的阅读。
答案 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
我看到你所说的关于坐标应该在哪里,看着空间参考站点,你的坐标在那个投影的窗口内,但它们并没有按预期出现。还在挖掘。