Lat/Long преобразование в UTM Loop (код R)
Я заранее прошу прощения за мой вопрос для начинающих, но R пространственный анализ для меня совершенно новый.
Я пытаюсь преобразовать весь набор данных (широта, длина) в UTM для Эквадора (зона =17). Мой код ниже конвертирует только первые координаты широты / долготы. Любой совет будет принята с благодарностью!
require(proj4)
require(rgdal)
require(sp)
require(proj4)
## Load dataset, total h7_x length = 327463
h7 <- read.csv('h7.csv', header=T)
h7 <- data.frame(x=h7$h7_x, y=h7$h7_y)
## Convert Lat/Long to UTM
proj4string <- "+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"
## Transformed data
pj.h7 <- project(h7, proj4string, inverse=TRUE)
latlon.h7 <- data.frame(lat=pj.h7$y, lon=pj.h7$x)
1 ответ
Вы можете сделать это:
library(rgdal)
## Load dataset, total h7_x length = 327463
h7 <- read.csv('h7.csv')
coordinates(h7) <- ~ h7_x + h7_y
proj4string(h7) <- CRS("+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
latlon.h7 <- spTransform(h7, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84"))
А теперь воспроизводимый пример (именно так вы должны задать вопрос, бесполезно ссылаться на файлы, которых нет у других).
# example data
d <- data.frame(x=c(830816, 848933, 773072), y=c(9933229, 9861005, 9755835), id=1:3)
# create a SpatialPoints object
coordinates(d) <- ~ x + y
proj4string(d) <- CRS("+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
# transform
latlon <- spTransform(d, CRS("+proj=longlat +datum=WGS84 +ellps=WGS84"))
coords <- coordinates(latlon)