如何使用R将WGS84转换为Lat/Long

如何使用R将WGS84转换为Lat/Long,r,geolocation,coordinates,coordinate-systems,gis,R,Geolocation,Coordinates,Coordinate Systems,Gis,我有一个包含WGS84坐标的大型数据集,我想将其转换为Long/Lat坐标。WGS84坐标目前分为自己的列(即“北”“东”),另外还有带相应区域的“区域”。总共有几个区域 关于如何将这些列转换为Lat/Long并保存为新列,您有什么建议吗 数据集示例: Longitude Latitude zone 233243 6571770 33 262706 6653520 33 195348 6573696 33 256880 6645020 3

我有一个包含WGS84坐标的大型数据集,我想将其转换为Long/Lat坐标。WGS84坐标目前分为自己的列(即“北”“东”),另外还有带相应区域的“区域”。总共有几个区域

关于如何将这些列转换为Lat/Long并保存为新列,您有什么建议吗

数据集示例:

Longitude Latitude zone  
233243    6571770   33  
262706    6653520   33  
195348    6573696   33   
256880    6645020   33  
260610    6654042   32  
13799     6505840   33  

您可能需要阅读
sp
包、坐标和
spTransform
函数。除其他外

对于作为数据帧的
d

> d
  Longitude Latitude zone
1    233243  6571770   33
2    262706  6653520   33
3    195348  6573696   33
4    256880  6645020   33
5    260610  6654042   32
6     13799  6505840   33
该计划是:通过
区域
id将列表拆分为一个列表,然后为每个列表元素创建一个空间点数据框,使用坐标参考系“+init=epsg:326”+“区域”(例如区域33的“+init=epsg:32633”),然后转换为epsg:4326 lat long,然后将地块合并到一个空间点数据框:

需要这些:

> library(sp) ; library(raster)
按区域ID创建列表:

> byzone = split(d,d$zone)
在所有零件上,设置坐标、CRS和变换:

> zdll = lapply(byzone, 
    function(zd){
      coordinates(zd)=~Longitude+Latitude
      proj4string(zd)=paste0("+init=epsg:326",zd$zone[1])
      spTransform(zd, CRS("+init=epsg:4326"))
     })
现在加入他们:

> dll = do.call(rbind.SpatialPointsDataFrame, zdll)
如果现在绘制
dll
,您将看到lat long上的点。如果需要坐标并与原始坐标进行比较,请执行以下操作:

> cbind(d, coordinates(dll))
  Longitude Latitude zone Longitude Latitude
5    233243  6571770   33  4.712098 59.95395
1    262706  6653520   33 10.327202 59.20086
2    195348  6573696   33 10.750120 59.95049
3    256880  6645020   33  9.663825 59.19259
4    260610  6654042   32 10.656096 59.87099
6     13799  6505840   33  6.663177 58.42136

它们在预期的位置吗?

嗯,WGS84是lat-long(嗯,有点像,但是当人们说“WGS84”时,通常是指EPSG:4326 lat-long)。有没有可能偷看一下你的实际数据?否则我们在这里猜测…事实上,原始数据是“长而宽”这里是列名称为()4952(经度)6470636(纬度)32(区域)的数据示例目标格式看起来像:例如:13.665768(经度)59.739838(纬度)我对所有这些格式都不稳定:p这些格式看起来像UTM坐标,而不是WGS84。有没有可能将几行数据粘贴到问题的编辑中?谢谢您的回复!我编辑了主要帖子:)非常感谢!,这确实解决了我的问题!:)更新:现在看起来有些UTM/lat长Cordinate在地图上对应(即),而另一些有明显的不匹配。。对可能的原因有什么建议吗?