绘制UTM/坐标

问题描述 投票:0回答:2

我是 R 编程新手,我有一个国家 20 个城镇的 csv/excel 文件,其中包含以下格式,

城镇 UTM 坐标 UTM Cordinaetes
xxxxxxxx 1377777 249514
yyyyyyyy 142145 228942

我无法将它们绘制成地图,有谁知道如何绘制这些 UTM 坐标。 是否可以使用 UTM 在 R 编程中绘制城镇图?如果是这样,任何人都可以在这里帮助我。 我也有该国家/地区的形状文件。但我不知道如何处理。

myfilepath <- file.choose()
Cordinates<-read.csv(myfilepath,header=TRUE)
Cordinates
str(Cordinates)
library(rgdal)
library(sp)
library(data.table)
library(ggplot2)
library(tibble)
myfilepath <- file.choose()
Shapefile<-readOGR(myfilepath)
plot(Shapefile)
ggmap(Shapefile)+geom_point(aes(x=Easting,y=Northing,col=Cordinates))

如有任何帮助,我们将不胜感激。

r gis geospatial rgdal
2个回答
2
投票

这是一个

sf
解决方案,利用@Dave2e的所有辛勤工作来找到所使用的正确坐标系...

#convert to simple feature
library( sf )
mysf <- sf::st_as_sf( mydata, coords = c("Easting", "Northing"), crs = 29902)

#plot for visual inspection
mapview::mapview(mysf)

enter image description here


1
投票

诀窍是确定所使用的网格系统。经过大量搜索,标准爱尔兰共和国网格的代码是epsg:29902

第一步是将爱尔兰网格坐标转换为标准纬度和经度。 这是通过“rgdal”库完成的。

library(rgdal)    

points <- read.table(header=TRUE, text = "Towns Easting Northing 
                      Belclare 137777 249514
                      Carnmore 142145 228942")

#Pull out the location columns and rename
point <- points[,2:3]
names(point) <-c('x', 'y')

#convert to corrdinates and define initial coordinates systems
coordinates(point) <- c('x', 'y')
proj4string(point)=CRS("+init=epsg:29902")  #29902 is the grid for Ireland

#Transform the Ireland's grid to longitude & latitude
coord<-spTransform(point,CRS("+init=epsg:4326"))
coord

这将改变您的坐标列表,请搜索此网站以了解如何绘制地图。 有很多选择。

© www.soinside.com 2019 - 2024. All rights reserved.