0

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も新たにダウンロードしました。

4

2 に答える 2

3

コードには少なくとも2つの問題があるようです。

  • Lucasが指摘しているように、PROJ4文字列には引数の間にスペースが必要なので、。ではなくsep = " "(のデフォルト)を使用してください。paste()sep = ""

  • さらに、spおよびrgdalパッケージの関数は、proj4stringsがCRS()ユーティリティ関数の呼び出しでラップされることを想定しています。

これがあなたの状況に適応できるはずの実際の例です:

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-02-28T17:32:14.617 に答える
2

使用している投影情報の形式が正しくないようです。これにより、関数が射影文字列の引数を認識しない可能性があります。rgdalで指定されているように、射影情報はPROJ.4のドキュメントに準拠している必要があります(つまり、+ =と引数を区切るスペースの間にスペースを入れないでください。例: "+ proj = lcc + lat_1 = 48 + lat_2 = 33 + lon_0 = -100 「貼り付け関数の引数をsep="に変更すると、これが修正される場合があります。

于 2013-02-28T17:09:23.997 に答える