我有来自UTM北纬33区的大量纬度经度信息。
我尝试使用以下命令将此地理信息转换为UTM坐标(我的数据集对象最初称为S3km):
library(rgdal)
UTM33N<-"+proj=utm+zone=33+north"
UTM33N<-paste(UTM33N,"+ellps=WGS84",sep="")
UTM33N<-paste(UTM33N,"+datum=WGS84",sep="")
UTM33N<-paste(UTM33N,"+units=m+no_defs",sep="")
coord.UTM33N<-project(as.matrix(S3km[,c("Longitude","Latitude")]),UTM33N)我收到以下错误消息:
Error in project(as.matrix(S3km[,c("Longitude","Latitude")]),UTM33N):
no arguments in initialization list.有人知道问题出在哪里吗?我已经下载了最新的R版本(即R 2.15.2),并且rgdal-package也是新下载的。
发布于 2013-03-01 01:32:15
看起来你的代码至少有几个问题:
sep = " " (paste()的默认值)而不是sep = ""。下面是一个工作示例,您应该能够适应您的情况:
library(rgdal)
## Create an example SpatialPoints object
pts <- SpatialPoints(cbind(-120:-121, 39:40),
proj4string = CRS("+proj=longlat +datum=NAD27"))
## Construct a proper proj4string
UTM11N <- "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs"
UTM11N <- paste(UTM11N, "+ellps=GRS80 +towgs84=0,0,0")
UTM11N <- CRS(UTM11N)
## Project your points
ptsUTM <- spTransform(pts, UTM11N)
## Check that it worked
ptsUTM
# SpatialPoints:
# coords.x1 coords.x2
# [1,] 240111.6 4321052
# [2,] 158420.9 4435418
# Coordinate Reference System (CRS) arguments: +proj=utm +zone=11
# +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0 发布于 2013-03-01 01:09:24
您正在使用的投影信息似乎格式不正确。这可能会导致函数无法识别投影字符串中的参数。正如rgdal中指定的,投影信息必须符合PROJ.4文档(即,+=和分隔参数的空格之间没有空格。例如:"+proj=lcc +lat_1=48 +lat_2=33 +lon_0=-100“将粘贴函数参数更改为sep=”“可能会解决此问题。
https://stackoverflow.com/questions/15139791
复制相似问题