将坐标从英国国家电网(Easting,Northing)转换为WGS84 Lat Lon

时间:2018-05-11 16:58:45

标签: r coordinates coordinate-transformation wgs84

我正在努力将英国国家电网(BNG)的R坐标转换为WGS84 Lat Lon。

这是一个数据示例:

df = read.table(text = 'Easting Northing 
 320875 116975     
 320975 116975     
 320975 116925     
 321175 116925    
 321175 116875     
 321275 116875', header = TRUE)

如何将Easting和Northing转换为WGS84 Lat Lon?

spTransform包中有一个名为rgdal的函数,但文档非常混乱。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

以下是使用R中的sf包进行此操作的方法。我们将表转换为点几何,指定这些值在BNG坐标参考系中。然后我们转换为WGS84,将坐标提取为矩阵,并返回一个数据框。

我相信快速谷歌英国国家网格有EPSG代码27700,但如果这不是正确的预测,那么你可以修改crs =中的st_as_sf参数。给出的要点似乎是在汤顿以南的布莱克当丘陵AONB的某些领域;我会亲自检查地理配准。

df = read.table(text = 'Easting Northing 
 320875 116975     
                320975 116975     
                320975 116925     
                321175 116925    
                321175 116875     
                321275 116875', header = TRUE)

library(tidyverse)
library(sf)
#> Linking to GEOS 3.6.1, GDAL 2.2.3, proj.4 4.9.3
df %>%
  st_as_sf(coords = c("Easting", "Northing"), crs = 27700) %>%
  st_transform(4326) %>%
  st_coordinates() %>%
  as_tibble()
#> # A tibble: 6 x 2
#>       X     Y
#>   <dbl> <dbl>
#> 1 -3.13  50.9
#> 2 -3.13  50.9
#> 3 -3.13  50.9
#> 4 -3.12  50.9
#> 5 -3.12  50.9
#> 6 -3.12  50.9

reprex package(v0.2.0)创建于2018-05-11。