У меня есть кадр данных, который я хочу продвигать к пространственным данным, но он имеет две пары координат в нем - прохождение маршрута Охотничьи координаты сетки и места назначения поездки Рекомендации .Функция R-координат - укажите две пары пространственных координат
Так что я хочу продвинуть структуру данных в пространстве, а затем перепроектировать в WGS84. Я могу сделать это с помощью одной пары координат:
# promote data frame to spatial
coordinates(myvar) = ~Easting + Northing
# give it the OS projection
proj4string(myvar)=CRS("+init=epsg:27700")
# convert projection to WGS84 as used by osm
myvar.WGS84 <- spTransform(myvar, CRS("+init=epsg:4326"))
Но как я могу это сделать с двумя парами?
Edit - я достиг этого путь разделения кадра данных и воссоединиться согласно коду ниже, но, безусловно, должна быть более эффективным и элегантным способом сделать это:
#create separate object for destination and Dest grid refs
destgridrefs <- mydata %>% select(-Origin_Easting, -Origin_Northing)
origingridrefs <- mydata %>% select(rowID, Origin_Easting, Origin_Northing)
#rename the columns
destgridrefs <- destgridrefs %>% rename(lat=Dest_Easting, long=Dest_Northing)
origingridrefs <- origingridrefs %>% rename(lat=Origin_Easting, long=Origin_Northing)
# make data frame
destgridrefs <- as.data.frame(destgridrefs)
origingridrefs <- as.data.frame(na.omit(origingridrefs))
# promote data frame to spatial
coordinates(destgridrefs) = ~lat+long
coordinates(origingridrefs) = ~lat+long
# give them the OS projection
proj4string(destgridrefs)=CRS("+init=epsg:27700")
proj4string(origingridrefs)=CRS("+init=epsg:27700")
# convert projection to WGS84
destgridrefs.WGS84 <- spTransform(destgridrefs, CRS("+init=epsg:4326"))
origingridrefs.WGS84 <- spTransform(origingridrefs, CRS("+init=epsg:4326"))
# then convert spatial points to a data frame so they can be used by ggplot
destgridrefs.WGS84.df <- as.data.frame(destgridrefs.WGS84)
origingridrefs.WGS84.df <- as.data.frame(origingridrefs.WGS84)
# join them together
allgridrefs <- inner_join(destgridrefs.WGS84.df, origingridrefs.WGS84.df, by="rowID")
Просьба привести воспроизводимый пример. Ваше объяснение довольно неясно. –