簡體   English   中英

R - 使用 rgdal 包轉換 UTM 坐標的問題

[英]R - Problems with converting UTM coordinates with the rgdal package

我的任務是將大量 UTM 坐標(33 區)轉換為經緯度(WGS84)坐標。 這些陣地應該位於挪威邊境附近。 我嘗試使用 rgdal 包轉換 R 中的坐標

#extracting some examples from data set

lat <- c(7790281, 7726438, 7266202, 7259480, 7271802)
long <- c(1053817, 1054025, 451754, 475228, 462235)
df <- data.frame(lat, long)

#converting from UTM33 to WGS84

library(rgdal)
tmp <- data.frame(coords.x = df$lat, coords.y = df$long)
coordinates(tmp) <-c("coords.x","coords.y")
proj4string(tmp) <- CRS("+proj=utm +zone=33 ellps=WGS84") #UTM zone 33
CRS.new <- CRS("+init=epsg:4326") # WGS84
coords <- spTransform(tmp,CRS.new)

#making a dataframe out of coordinates
coords <- data.frame(lat=coords@coords[,1], long=coords@coords[,2])

這產生

       lat     long
1 69.19936 5.840162
2 68.92219 5.857922
3 66.55129 2.585804
4 66.52160 2.721701
5 66.58242 2.644578

但是,當使用在線轉換工具( http://www.rcn.montana.edu/resources/converter.aspx )轉換坐標時,我得到以下不同的結果

  lat.corr long.corr
1 69.63112  29.37223
2 69.07562  29.00514
3 65.51455  13.95675
4 65.45688  14.46554
5 65.56618  14.18178

在同一地圖中繪制兩個數據集時,可以清楚地看到用 rgdal 轉換的點錯位了。

地圖

如果試圖了解問題所在,但經過數小時的考慮和研究,我仍然無法找到它。 一些幫助找出問題所在將非常感謝!

編輯:它可能與跨越 UTM 區域邊界的東坐標有關。 是不是 rgdal 有問題?

我猜你把經緯度混在了

tmp <- data.frame(coords.x = df$lat, coords.y = df$long)

它應該是 :

tmp <- data.frame(coords.x = df$lon, coords.y = df$lat)

你得到:

> (coords <- data.frame(lon=coords@coords[,1], lat=coords@coords[,2]))
   lon     lat
1 29.37172 69.63114
2 29.00472 69.07564
3 13.95675 65.51455
4 14.46554 65.45688
5 14.18178 65.56618

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM