Конвертировать координаты Британской национальной сети (Восток, Север) в WGS84 Lat Lon - PullRequest
0 голосов
/ 11 мая 2018

Я изо всех сил пытаюсь преобразовать координаты R из British National Grid (BNG) в WGS84 Lat Lon.

Вот пример данных:

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

Как преобразовать Eastingи на север к WGS84 Lat Lon?

Существует функция, называемая spTransform из rgdal пакета, но документация очень запутанная.

Любое предложение?

1 Ответ

0 голосов
/ 11 мая 2018

Вот способ сделать это с пакетом sf в R. Мы берем таблицу и конвертируем в геометрические точки, указывая, что эти значения находятся в системе координат BNG.Затем мы преобразовываемся в WGS84, извлекаем координаты в виде матрицы и возвращаем фрейм данных.

Я полагаю, что из быстрого Google, Британская национальная сеть имеет код EPSG 27700, хотя, если это неправильная проекция, тоВы можете изменить аргумент crs = в st_as_sf.Представленные точки находятся в некоторых полях на Блэкдаун Хиллз, к югу от Тонтона;Я бы сам проверил географическую привязку.

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

Создано в 2018-05-11 пакетом представить (v0.2.0).

...