我正在尝试使用 R 将包含北距和东距数据的向量转换为十进制度。到目前为止,我已经能够使用 rgdal 包来执行投影,但我遇到了问题。UTM 区域的参数必须是单个字符串,但我的数据中有多个 UTM 区域。有没有办法使用 rgdal::SpatialPoints() 函数来设置多个 UTM 区域?我尝试在 CRS() 函数中输入设置字符串并使用向量,但我收到一条警告消息,指出仅使用了第一个区域。
df<- data.frame(X = c(774869, 771437, 1051883, 524468),
Y = c(414498, 403790, 184967, 779682),
WGS.1984.UTM.Zone = c("57N", "57N", "54N", "59N"))
library(rgdal)
sputm <- SpatialPoints(df[c("X", "Y")], proj4string=CRS("+proj=utm +zone=57N +datum=WGS84"))
spgeo <- spTransform(sputm, CRS("+proj=longlat +datum=WGS84"))
#resultant coordinates are all transformed relative to UTM zone 57N
df$projargs<- paste("+proj=utm +zone=", df$WGS.1984.UTM.Zone, " +datum=WGS84", sep = "")
#trying again with set projargs character strings
spUTM<- SpatialPoints(df[c("X", "Y")], proj4string=CRS(df$projargs))
警告信息:
1: 在 if (!is.na(projargs)) { : 条件长度 > 1 并且只使用第一个元素
2: 在 if (!is.na(projargs)) { : 条件长度 > 1 并且只使用第一个元素
3:在 if (is.na(projargs)) uprojargs <- projargs else uprojargs <- paste(unique(unlist(strsplit(projargs, : 条件长度 > 1 并且只使用第一个元素