如何匹配这个 df/sp 对象的坐标(UTM 和几何)?
How to match the coordinates (UTM and geometry) of this df/sp objects?
如果你能帮我解决这个问题,我会很高兴。我想geom_point
df“daa_84”到shp文件“shp_5”。在 Whosebug 上查看了多个相关问题并测试了他们的答案(如从“daa_84”创建一个 sp 对象并转换 UTM 坐标以使其与“shp_5”的坐标相匹配),我只得到类似剧情。另外,我知道坐标系统 (WGS84) 的 UTM 带 (19S) 和与我国相关的 EPSG 代码 (32719) 是“某物”所必需的哈哈。有什么想法吗?
> head(daa_84)
# A tibble: 6 x 2
utm_este utm_norte
<dbl> <dbl>
1 201787 6364077
2 244958 6247258
3 245947 6246281
4 246100 6247804
5 246358 6242918
6 246470 6332356
> head(shp_5)
Simple feature collection with 6 features and 1 field
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -7973587 ymin: -3976507 xmax: -7838155 ymax: -3766040
projected CRS: WGS 84 / Pseudo-Mercator
Comuna geometry
1 Rinconada MULTIPOLYGON (((-7871440 -3...
2 Cabildo MULTIPOLYGON (((-7842610 -3...
3 Petorca MULTIPOLYGON (((-7873622 -3...
4 Panquehue MULTIPOLYGON (((-7874932 -3...
5 Olmué MULTIPOLYGON (((-7916865 -3...
6 Cartagena MULTIPOLYGON (((-7973501 -3...
ggplot() + geom_sf(data = shp_5, aes()) +
geom_point(data = daa_84, aes(x= "utm_este", "utm_norte"),
alpha = 0.05, size = 0.5) +
labs(x = "Latitude", y = "Longitude")+
theme_bw()
my progress so far
编辑
除了william3031的答案,这段代码也可以
library(sf)
daa_84 = tribble(~utm_este, ~utm_norte,
201787, 6364077,
244958, 6247258,
245947, 6246281,
246100, 6247804,
246358, 6242918,
246470, 6332356)
daa_84 = st_as_sf(daa_84,
coords=c('utm_este', 'utm_norte'),
crs=st_crs(32719)) %>%
st_transform(st_crs(shp_5))
这对你有用。我对南美洲使用了不同的数据集,因为您没有提供 reproducible example.
library(tidyverse)
library(sf)
library(spData) # just for the 'world' dataset
# original
daa_84 <- data.frame(
utm_este = c(201787L, 244958L, 245947L, 246100L, 246358L, 246470L),
utm_norte = c(6364077L, 6247258L, 6246281L, 6247804L, 6242918L, 6332356L)
)
# converted
daa_84_sf <- st_as_sf(daa_84, coords = c("utm_este", "utm_norte"), crs = 32719)
# load world to get South America
data("world")
sam <- world %>%
filter(continent == "South America")
# plot
ggplot() +
geom_sf(data = sam) +
geom_sf(data = daa_84_sf)
如果你能帮我解决这个问题,我会很高兴。我想geom_point
df“daa_84”到shp文件“shp_5”。在 Whosebug 上查看了多个相关问题并测试了他们的答案(如从“daa_84”创建一个 sp 对象并转换 UTM 坐标以使其与“shp_5”的坐标相匹配),我只得到类似剧情。另外,我知道坐标系统 (WGS84) 的 UTM 带 (19S) 和与我国相关的 EPSG 代码 (32719) 是“某物”所必需的哈哈。有什么想法吗?
> head(daa_84)
# A tibble: 6 x 2
utm_este utm_norte
<dbl> <dbl>
1 201787 6364077
2 244958 6247258
3 245947 6246281
4 246100 6247804
5 246358 6242918
6 246470 6332356
> head(shp_5)
Simple feature collection with 6 features and 1 field
geometry type: MULTIPOLYGON
dimension: XY
bbox: xmin: -7973587 ymin: -3976507 xmax: -7838155 ymax: -3766040
projected CRS: WGS 84 / Pseudo-Mercator
Comuna geometry
1 Rinconada MULTIPOLYGON (((-7871440 -3...
2 Cabildo MULTIPOLYGON (((-7842610 -3...
3 Petorca MULTIPOLYGON (((-7873622 -3...
4 Panquehue MULTIPOLYGON (((-7874932 -3...
5 Olmué MULTIPOLYGON (((-7916865 -3...
6 Cartagena MULTIPOLYGON (((-7973501 -3...
ggplot() + geom_sf(data = shp_5, aes()) +
geom_point(data = daa_84, aes(x= "utm_este", "utm_norte"),
alpha = 0.05, size = 0.5) +
labs(x = "Latitude", y = "Longitude")+
theme_bw()
my progress so far
编辑
除了william3031的答案,这段代码也可以
library(sf)
daa_84 = tribble(~utm_este, ~utm_norte,
201787, 6364077,
244958, 6247258,
245947, 6246281,
246100, 6247804,
246358, 6242918,
246470, 6332356)
daa_84 = st_as_sf(daa_84,
coords=c('utm_este', 'utm_norte'),
crs=st_crs(32719)) %>%
st_transform(st_crs(shp_5))
这对你有用。我对南美洲使用了不同的数据集,因为您没有提供 reproducible example.
library(tidyverse)
library(sf)
library(spData) # just for the 'world' dataset
# original
daa_84 <- data.frame(
utm_este = c(201787L, 244958L, 245947L, 246100L, 246358L, 246470L),
utm_norte = c(6364077L, 6247258L, 6246281L, 6247804L, 6242918L, 6332356L)
)
# converted
daa_84_sf <- st_as_sf(daa_84, coords = c("utm_este", "utm_norte"), crs = 32719)
# load world to get South America
data("world")
sam <- world %>%
filter(continent == "South America")
# plot
ggplot() +
geom_sf(data = sam) +
geom_sf(data = daa_84_sf)